Skip to content

Multiformats

A multiformat (directly inspired by the concept of the same name by Protocol Labs) is an interface consisting of typed functions associated with a table of multiple implementations of that interface, each associated with a unique natural number (non-negative integer), such that the numerical code can be included to indicate which implementation should be used to interpret/process some data. Conceptually, multiformats can also be understood as an implementation of runtime-updateable typeclasses (in the Haskell sense), where new instances can be added associated with new codes.

An example table for an encoding scheme multiformat could look like:

Code Encoding scheme
0x01 SSZ
0x02 JSON
0x03 Borsh