Repository: multiformats/multicodec Branch: master Commit: 45c88b89ab90 Files: 8 Total size: 70.6 KB Directory structure: gitextract_tg4co21u/ ├── .github/ │ └── workflows/ │ ├── generated-pr.yml │ ├── stale.yml │ └── validate.yml ├── CODEOWNERS ├── LICENSE ├── README.md ├── table.csv └── validate.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/workflows/generated-pr.yml ================================================ name: Close Generated PRs on: schedule: - cron: '0 0 * * *' workflow_dispatch: permissions: issues: write pull-requests: write jobs: stale: uses: ipdxco/unified-github-workflows/.github/workflows/reusable-generated-pr.yml@v1 ================================================ FILE: .github/workflows/stale.yml ================================================ name: Close Stale Issues on: schedule: - cron: '0 0 * * *' workflow_dispatch: permissions: issues: write pull-requests: write jobs: stale: uses: ipdxco/unified-github-workflows/.github/workflows/reusable-stale-issue.yml@v1 ================================================ FILE: .github/workflows/validate.yml ================================================ name: Validate on: [push, pull_request] jobs: validate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: '3.x' - run: python validate.py ================================================ FILE: CODEOWNERS ================================================ * @darobin @rvagg @vmx @aschmahmann ================================================ FILE: LICENSE ================================================ The MIT License (MIT) Copyright (c) 2016 Protocol Labs Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ # multicodec [![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io) [![](https://img.shields.io/badge/project-multiformats-blue.svg?style=flat-square)](https://github.com/multiformats/multiformats) [![](https://img.shields.io/badge/freenode-%23ipfs-blue.svg?style=flat-square)](https://webchat.freenode.net/?channels=%23ipfs) [![](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme) > Canonical table of of codecs used by various multiformats ## Table of Contents - [Motivation](#motivation) - [Description](#description) - [Examples](#examples) - [Multicodec table](#multicodec-table) - [Adding new multicodecs to the table](#adding-new-multicodecs-to-the-table) - [Implementations](#implementations) - [Reserved Code Ranges](#reserved-code-ranges) - [FAQ](#faq) - [Contribute](#contribute) - [License](#license) ## Motivation Multicodec is an agreed-upon codec table. It is designed for use in binary representations, such as keys or identifiers (i.e [CID](https://github.com/ipld/cid)). ## Description The code of a multicodec is usually encoded as unsigned varint as defined by [multiformats/unsigned-varint](https://github.com/multiformats/unsigned-varint). It is then used as a prefix to identify the data that follows. ## Examples Multicodec is used in various [Multiformats](https://github.com/multiformats/multiformats). In [Multihash](https://github.com/multiformats/multihash) it is used to identify the hashes, in the machine-readable [Multiaddr](https://github.com/multiformats/multiaddr) to identify components such as IP addresses, domain names, identities, etc. ## Multicodec table Find the canonical table of multicodecs at [table.csv](/table.csv). ### Status Each multicodec is marked with a status: * draft - this codec has been reserved but may be reassigned if it doesn't gain wide adoption. * permanent - this codec has been widely adopted and may not reassigned. * deprecated - this codec has been deprecated. NOTE: Just because a codec is marked draft, don't assume that it can be re-assigned. Check to see if it ever gained wide adoption and, if so, mark it as permanent. ### Tag Categories Each multicodec entry in the table.csv has a "tag" column that helps categorize the entry type. When adding a new multicodec, it's important to assign the correct tag. Here are descriptions of the most common tags: * **multihash**: Entries for cryptographic hash functions as described in [multihash](https://github.com/multiformats/multihash). Multihash is a protocol for differentiating outputs from various well-established cryptographic hash functions, addressing size and encoding considerations. * **hash**: Non-cryptographic hash functions, which are not suitable for content addressing systems but may have other uses. As noted in the [multihash documentation](https://github.com/multiformats/multihash#non-cryptographic-hash-functions), these have specialized use-cases where identifying non-cryptographic hash functions by multihash may be desirable. * **key**: Cryptographic key types, including public and private keys for various cryptographic algorithms. * **multiaddr**: Network address formats as defined in [multiaddr](https://github.com/multiformats/multiaddr). Multiaddr aims to make network addresses future-proof, composable, and efficient. * **ipld**: [InterPlanetary Linked Data](https://ipld.io/) formats. These codecs are suitable for use as a codec in a [CID](https://github.com/multiformats/cid) and will deserialize linked data that may contain links to other data. * **serialization**: Similar to "ipld" but does not materialize links. For example, JSON and CBOR have the "serialization" tag, while DAG-JSON and DAG-CBOR have the "ipld" tag because they handle links. * **varsig**: Signature formats as described in [varsig](https://github.com/ChainAgnostic/varsig). Varsig is a multiformat for describing signatures over IPLD data and raw bytes in a way that preserves information about the payload and canonicalization information. * **namespace**: Namespace identifiers for various protocols and systems. Selecting the appropriate tag helps maintain organization in the table and provides context for how a codec is expected to be used. ### Adding new multicodecs to the table The process to add a new multicodec to the table is the following: 1. Fork this repo 2. Add your codecs to the table. Each newly proposed codec must have: 1. A unique codec. 2. A unique name. 3. A category. 4. A status of "draft". 3. Submit a Pull Request This ["first come, first assign"](https://github.com/multiformats/multicodec/pull/16#issuecomment-260146609) policy is a way to assign codes as they are most needed, without increasing the size of the table (and therefore the size of the multicodecs) too rapidly. The first 127 values are encoded as a single-byte varint, hence they are reserved for the most widely used multicodecs. So if you are adding your own codec to the table, you most likely would want to ask for a codec bigger than `0x80`. Codec names should be easily convertible to constants in common programming languages using basic transformation rules (e.g. upper-case, conversion of `-` to `_`, etc.). Therefore they should contain alphanumeric characters, with the first character being alphabetic. The primary delimiter for multi-part names should be `-`, with `_` reserved for cases where a secondary delimiter is required. For example: `bls12_381-g1-pub` contains 3 parts: `bls12_381`, `g1` and `pub`, where `bls12_381` is "BLS12 381" which is not commonly written as "BLS12381" and therefore requires a secondary separator. The `validate.py` script can be used to validate the table once it's edited. ## Implementations - [go](https://github.com/multiformats/go-multicodec/) - [JavaScript](https://github.com/multiformats/js-multicodec) - Python - [py-multicodec](https://github.com/multiformats/py-multicodec) - `multicodec` sub-module of Python module [multiformats](https://github.com/hashberg-io/multiformats) - [Haskell](https://github.com/multiformats/haskell-multicodec) - [Elixir](https://github.com/nocursor/ex-multicodec) - [Scala](https://github.com/fluency03/scala-multicodec) - [Ruby](https://github.com/sleeplessbyte/ruby-multicodec) - Java - [java-multicodec](https://github.com/richardbergquist/java-multicodec) - [copper-multicodec](https://github.com/filip26/copper-multicodec) - Kotlin - `multicodec` part of Kotlin project [multiformat](https://github.com/erwin-kok/multiformat) - Zig - `multicodec` part of Zig project [multiformats-zig](https://github.com/zen-eth/multiformats-zig) - Swift - `Multicodec` part of [MultiformatsKit](https://github.com/ATProtoKit/MultiformatsKit) - [Add yours today!](https://github.com/multiformats/multicodec/edit/master/table.csv) ## Reserved Code Ranges The following code ranges have special meaning and may only have meanings assigned to as specified in their description: ### Private Use Area *Range*: `0x300000 – 0x3FFFFF` Codes in this range are reserved for internal use by applications and will never be assigned any meaning as part of the Multicodec specification. ## FAQ > Why varints? So that we have no limitation on protocols. > What kind of varints? An Most Significant Bit unsigned varint, as defined by the [multiformats/unsigned-varint](https://github.com/multiformats/unsigned-varint). > Don't we have to agree on a table of protocols? Yes, but we already have to agree on what protocols themselves are, so this is not so hard. The table even leaves some room for custom protocol paths, or you can use your own tables. The standard table is only for common things. > Where did multibase go? For a period of time, the [multibase](https://github.com/multiformats/multibase) prefixes lived in this table. However, multibase prefixes are *symbols* that may map to *multiple* underlying byte representations (that may overlap with byte sequences used for other multicodecs). Including them in a table for binary/byte identifiers lead to more confusion than it solved. You can still find the table in [multibase.csv](https://github.com/multiformats/multibase/blob/master/multibase.csv). > Can I use multicodec for my own purpose? Sure, you can use multicodec whenever you have the need for self-identifiable data. Just prefix your own data with the corresponding varint encoded multicodec. ## Contribute Contributions welcome. Please check out [the issues](https://github.com/multiformats/multicodec/issues). Check out our [contributing document](https://github.com/multiformats/multiformats/blob/master/contributing.md) for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md). Small note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification. ## License This repository is only for documents. All of these are licensed under the [CC-BY-SA 3.0](https://ipfs.io/ipfs/QmVreNvKsQmQZ83T86cWSjPu2vR3yZHGPm5jnxFuunEB9u) license © 2016 Protocol Labs Inc. Any code is under a [MIT](LICENSE) © 2016 Protocol Labs Inc. ================================================ FILE: table.csv ================================================ name, tag, code, status, description identity, multihash, 0x00, permanent, raw binary cidv1, cid, 0x01, permanent, CIDv1 cidv2, cid, 0x02, draft, CIDv2 cidv3, cid, 0x03, draft, CIDv3 ip4, multiaddr, 0x04, permanent, tcp, multiaddr, 0x06, permanent, sha1, multihash, 0x11, permanent, sha2-256, multihash, 0x12, permanent, sha2-512, multihash, 0x13, permanent, sha3-512, multihash, 0x14, permanent, sha3-384, multihash, 0x15, permanent, sha3-256, multihash, 0x16, permanent, sha3-224, multihash, 0x17, permanent, shake-128, multihash, 0x18, draft, shake-256, multihash, 0x19, draft, keccak-224, multihash, 0x1a, draft, keccak has variable output length. The number specifies the core length keccak-256, multihash, 0x1b, draft, keccak-384, multihash, 0x1c, draft, keccak-512, multihash, 0x1d, draft, blake3, multihash, 0x1e, draft, BLAKE3 has a default 32 byte output length. The maximum length is (2^64)-1 bytes. sha2-384, multihash, 0x20, permanent, aka SHA-384; as specified by FIPS 180-4. dccp, multiaddr, 0x21, draft, murmur3-x64-64, hash, 0x22, permanent, The first 64-bits of a murmur3-x64-128 - used for UnixFS directory sharding. murmur3-32, hash, 0x23, draft, ip6, multiaddr, 0x29, permanent, ip6zone, multiaddr, 0x2a, draft, ipcidr, multiaddr, 0x2b, draft, CIDR mask for IP addresses path, namespace, 0x2f, permanent, Namespace for string paths. Corresponds to `/` in ASCII. multicodec, multiformat, 0x30, draft, multihash, multiformat, 0x31, draft, multiaddr, multiformat, 0x32, draft, multibase, multiformat, 0x33, draft, varsig, multiformat, 0x34, draft, Variable signature (varsig) multiformat dns, multiaddr, 0x35, permanent, dns4, multiaddr, 0x36, permanent, dns6, multiaddr, 0x37, permanent, dnsaddr, multiaddr, 0x38, permanent, protobuf, serialization, 0x50, draft, Protocol Buffers cbor, ipld, 0x51, permanent, CBOR raw, ipld, 0x55, permanent, raw binary dbl-sha2-256, multihash, 0x56, draft, rlp, serialization, 0x60, draft, recursive length prefix bencode, serialization, 0x63, draft, bencode dag-pb, ipld, 0x70, permanent, MerkleDAG protobuf dag-cbor, ipld, 0x71, permanent, MerkleDAG cbor libp2p-key, ipld, 0x72, permanent, Libp2p Public Key git-raw, ipld, 0x78, permanent, Raw Git object torrent-info, ipld, 0x7b, draft, Torrent file info field (bencoded) torrent-file, ipld, 0x7c, draft, Torrent file (bencoded) blake3-hashseq, ipld, 0x80, draft, BLAKE3 hash sequence - per Iroh collections spec leofcoin-block, ipld, 0x81, draft, Leofcoin Block leofcoin-tx, ipld, 0x82, draft, Leofcoin Transaction leofcoin-pr, ipld, 0x83, draft, Leofcoin Peer Reputation sctp, multiaddr, 0x84, draft, dag-jose, ipld, 0x85, draft, MerkleDAG JOSE dag-cose, ipld, 0x86, draft, MerkleDAG COSE lbry, namespace, 0x8c, draft, LBRY Address eth-block, ipld, 0x90, permanent, Ethereum Header (RLP) eth-block-list, ipld, 0x91, permanent, Ethereum Header List (RLP) eth-tx-trie, ipld, 0x92, permanent, Ethereum Transaction Trie (Eth-Trie) eth-tx, ipld, 0x93, permanent, Ethereum Transaction (MarshalBinary) eth-tx-receipt-trie, ipld, 0x94, permanent, Ethereum Transaction Receipt Trie (Eth-Trie) eth-tx-receipt, ipld, 0x95, permanent, Ethereum Transaction Receipt (MarshalBinary) eth-state-trie, ipld, 0x96, permanent, Ethereum State Trie (Eth-Secure-Trie) eth-account-snapshot, ipld, 0x97, permanent, Ethereum Account Snapshot (RLP) eth-storage-trie, ipld, 0x98, permanent, Ethereum Contract Storage Trie (Eth-Secure-Trie) eth-receipt-log-trie, ipld, 0x99, draft, Ethereum Transaction Receipt Log Trie (Eth-Trie) eth-receipt-log, ipld, 0x9a, draft, Ethereum Transaction Receipt Log (RLP) aes-128, key, 0xa0, draft, 128-bit AES symmetric key aes-192, key, 0xa1, draft, 192-bit AES symmetric key aes-256, key, 0xa2, draft, 256-bit AES symmetric key chacha-128, key, 0xa3, draft, 128-bit ChaCha symmetric key chacha-256, key, 0xa4, draft, 256-bit ChaCha symmetric key bitcoin-block, ipld, 0xb0, permanent, Bitcoin Block bitcoin-tx, ipld, 0xb1, permanent, Bitcoin Tx bitcoin-witness-commitment, ipld, 0xb2, permanent, Bitcoin Witness Commitment zcash-block, ipld, 0xc0, permanent, Zcash Block zcash-tx, ipld, 0xc1, permanent, Zcash Tx caip-50, multiformat, 0xca, draft, CAIP-50 multi-chain account ID streamid, namespace, 0xce, draft, Ceramic Stream ID stellar-block, ipld, 0xd0, draft, Stellar Block stellar-tx, ipld, 0xd1, draft, Stellar Tx md4, multihash, 0xd4, draft, md5, multihash, 0xd5, draft, decred-block, ipld, 0xe0, draft, Decred Block decred-tx, ipld, 0xe1, draft, Decred Tx ipld, namespace, 0xe2, draft, IPLD path ipfs, namespace, 0xe3, draft, IPFS path swarm, namespace, 0xe4, draft, Swarm path ipns, namespace, 0xe5, draft, IPNS path zeronet, namespace, 0xe6, draft, ZeroNet site address secp256k1-pub, key, 0xe7, draft, Secp256k1 public key (compressed) dnslink, namespace, 0xe8, permanent, DNSLink path bls12_381-g1-pub, key, 0xea, draft, BLS12-381 public key in the G1 field bls12_381-g2-pub, key, 0xeb, draft, BLS12-381 public key in the G2 field x25519-pub, key, 0xec, draft, Curve25519 public key ed25519-pub, key, 0xed, draft, Ed25519 public key bls12_381-g1g2-pub, key, 0xee, draft, BLS12-381 concatenated public keys in both the G1 and G2 fields sr25519-pub, key, 0xef, draft, Sr25519 public key dash-block, ipld, 0xf0, draft, Dash Block dash-tx, ipld, 0xf1, draft, Dash Tx swarm-manifest, ipld, 0xfa, draft, Swarm Manifest swarm-feed, ipld, 0xfb, draft, Swarm Feed beeson, ipld, 0xfc, draft, Swarm BeeSon udp, multiaddr, 0x0111, draft, p2p-webrtc-star, multiaddr, 0x0113, deprecated, Use webrtc or webrtc-direct instead p2p-webrtc-direct, multiaddr, 0x0114, deprecated, Use webrtc or webrtc-direct instead p2p-stardust, multiaddr, 0x0115, deprecated, webrtc-direct, multiaddr, 0x0118, draft, ICE-lite webrtc transport with SDP munging during connection establishment and without use of a STUN server webrtc, multiaddr, 0x0119, draft, webrtc transport where connection establishment is according to w3c spec p2p-circuit, multiaddr, 0x0122, permanent, dag-json, ipld, 0x0129, permanent, MerkleDAG json udt, multiaddr, 0x012d, draft, utp, multiaddr, 0x012e, draft, crc32, hash, 0x0132, draft, CRC-32 non-cryptographic hash algorithm (IEEE 802.3) crc64-ecma, hash, 0x0164, draft, CRC-64 non-cryptographic hash algorithm (ECMA-182 - Annex B) crc64-nvme, hash, 0x0165, draft, CRC-64 checksum based on the NVME polynomial as specified in the NVM Express® NVM Command Set Specification unix, multiaddr, 0x0190, permanent, thread, multiaddr, 0x0196, draft, Textile Thread p2p, multiaddr, 0x01a5, permanent, libp2p https, multiaddr, 0x01bb, draft, onion, multiaddr, 0x01bc, draft, onion3, multiaddr, 0x01bd, draft, garlic64, multiaddr, 0x01be, draft, I2P base64 (raw public key) garlic32, multiaddr, 0x01bf, draft, I2P base32 (hashed public key or encoded public key/checksum+optional secret) tls, multiaddr, 0x01c0, draft, sni, multiaddr, 0x01c1, draft, Server Name Indication RFC 6066 § 3 noise, multiaddr, 0x01c6, draft, shs, multiaddr, 0x01c8, draft, Secure Scuttlebutt - Secret Handshake Stream quic, multiaddr, 0x01cc, permanent, quic-v1, multiaddr, 0x01cd, permanent, webtransport, multiaddr, 0x01d1, draft, certhash, multiaddr, 0x01d2, draft, TLS certificate's fingerprint as a multihash ws, multiaddr, 0x01dd, permanent, wss, multiaddr, 0x01de, permanent, p2p-websocket-star, multiaddr, 0x01df, permanent, http, multiaddr, 0x01e0, draft, http-path, multiaddr, 0x01e1, draft, Percent-encoded path to an HTTP resource swhid-1-snp, ipld, 0x01f0, draft, SoftWare Heritage persistent IDentifier version 1 snapshot json, ipld, 0x0200, permanent, JSON (UTF-8-encoded) messagepack, serialization, 0x0201, draft, MessagePack car, serialization, 0x0202, draft, Content Addressable aRchive (CAR) x509-certificate, serialization, 0x0210, draft, DER-encoded X.509 (PKIX) certificate per RFC 5280; single certificate only (no chain); raw DER bytes (not PEM) ipns-record, serialization, 0x0300, permanent, Signed IPNS Record libp2p-peer-record, libp2p, 0x0301, permanent, libp2p peer record type libp2p-relay-rsvp, libp2p, 0x0302, permanent, libp2p relay reservation voucher memorytransport, libp2p, 0x0309, permanent, in memory transport for self-dialing and testing; arbitrary car-index-sorted, serialization, 0x0400, draft, CARv2 IndexSorted index format car-multihash-index-sorted, serialization, 0x0401, draft, CARv2 MultihashIndexSorted index format transport-bitswap, transport, 0x0900, draft, Bitswap datatransfer transport-graphsync-filecoinv1, transport, 0x0910, draft, Filecoin graphsync datatransfer transport-ipfs-gateway-http, transport, 0x0920, draft, HTTP IPFS Gateway trustless datatransfer transport-filecoin-piece-http, transport, 0x0930, draft, HTTP piece retrieval from Filecoin storage provider; https://github.com/filecoin-project/FIPs/blob/master/FRCs/frc-0066.md multidid, multiformat, 0x0d1d, draft, Compact encoding for Decentralized Identifers fr32-sha256-trunc254-padbintree,multihash, 0x1011, draft, A balanced binary tree hash used in Filecoin Piece Commitments as described in FRC-0069 sha2-256-trunc254-padded, multihash, 0x1012, permanent, SHA2-256 with the two most significant bits from the last byte zeroed (as via a mask with 0b00111111) - used for proving trees as in Filecoin sha2-224, multihash, 0x1013, permanent, aka SHA-224; as specified by FIPS 180-4. sha2-512-224, multihash, 0x1014, permanent, aka SHA-512/224; as specified by FIPS 180-4. sha2-512-256, multihash, 0x1015, permanent, aka SHA-512/256; as specified by FIPS 180-4. murmur3-x64-128, hash, 0x1022, draft, ripemd-128, multihash, 0x1052, draft, ripemd-160, multihash, 0x1053, draft, ripemd-256, multihash, 0x1054, draft, ripemd-320, multihash, 0x1055, draft, x11, multihash, 0x1100, draft, p256-pub, key, 0x1200, draft, P-256 public Key (compressed) p384-pub, key, 0x1201, draft, P-384 public Key (compressed) p521-pub, key, 0x1202, draft, P-521 public Key (compressed) ed448-pub, key, 0x1203, draft, Ed448 public Key x448-pub, key, 0x1204, draft, X448 public Key rsa-pub, key, 0x1205, draft, RSA public key. DER-encoded ASN.1 type RSAPublicKey according to IETF RFC 8017 (PKCS #1) sm2-pub, key, 0x1206, draft, SM2 public key (compressed) vlad, vlad, 0x1207, draft, Verifiable Long-lived ADdress provenance-log, serialization, 0x1208, draft, Verifiable and permissioned append-only log provenance-log-entry, serialization, 0x1209, draft, Verifiable and permissioned append-only log entry provenance-log-script, serialization, 0x120a, draft, Verifiable and permissioned append-only log script mlkem-512-pub, key, 0x120b, draft, ML-KEM 512 public key; as specified by FIPS 203 mlkem-768-pub, key, 0x120c, draft, ML-KEM 768 public key; as specified by FIPS 203 mlkem-1024-pub, key, 0x120d, draft, ML-KEM 1024 public key; as specified by FIPS 203 mldsa-44-pub, key, 0x1210, draft, ML-DSA 44 public key; as specified by FIPS 204 mldsa-65-pub, key, 0x1211, draft, ML-DSA 65 public key; as specified by FIPS 204 mldsa-87-pub, key, 0x1212, draft, ML-DSA 87 public key; as specified by FIPS 204 slhdsa-sha2-128s-pub, key, 0x1220, draft, SLH-DSA-SHA2-128s public key; as specified by FIPS 205 slhdsa-shake-128s-pub, key, 0x1221, draft, SLH-DSA-SHAKE-128s public key; as specified by FIPS 205 slhdsa-sha2-128f-pub, key, 0x1222, draft, SLH-DSA-SHA2-128f public key; as specified by FIPS 205 slhdsa-shake-128f-pub, key, 0x1223, draft, SLH-DSA-SHAKE-128f public key; as specified by FIPS 205 slhdsa-sha2-192s-pub, key, 0x1224, draft, SLH-DSA-SHA2-192s public key; as specified by FIPS 205 slhdsa-shake-192s-pub, key, 0x1225, draft, SLH-DSA-SHAKE-192s public key; as specified by FIPS 205 slhdsa-sha2-192f-pub, key, 0x1226, draft, SLH-DSA-SHA2-192f public key; as specified by FIPS 205 slhdsa-shake-192f-pub, key, 0x1227, draft, SLH-DSA-SHAKE-192f public key; as specified by FIPS 205 slhdsa-sha2-256s-pub, key, 0x1228, draft, SLH-DSA-SHA2-256s public key; as specified by FIPS 205 slhdsa-shake-256s-pub, key, 0x1229, draft, SLH-DSA-SHAKE-256s public key; as specified by FIPS 205 slhdsa-sha2-256f-pub, key, 0x122a, draft, SLH-DSA-SHA2-256f public key; as specified by FIPS 205 slhdsa-shake-256f-pub, key, 0x122b, draft, SLH-DSA-SHAKE-256f public key; as specified by FIPS 205 multisig, multiformat, 0x1239, draft, Digital signature multiformat multikey, multiformat, 0x123a, draft, Encryption key multiformat nonce, nonce, 0x123b, draft, Nonce random value ed25519-priv, key, 0x1300, draft, Ed25519 private key secp256k1-priv, key, 0x1301, draft, Secp256k1 private key x25519-priv, key, 0x1302, draft, Curve25519 private key sr25519-priv, key, 0x1303, draft, Sr25519 private key rsa-priv, key, 0x1305, draft, RSA private key p256-priv, key, 0x1306, draft, P-256 private key p384-priv, key, 0x1307, draft, P-384 private key p521-priv, key, 0x1308, draft, P-521 private key bls12_381-g1-priv, key, 0x1309, draft, BLS12-381 G1 private key bls12_381-g2-priv, key, 0x130a, draft, BLS12-381 G2 private key bls12_381-g1g2-priv, key, 0x130b, draft, BLS12-381 G1 and G2 private key bls12_381-g1-pub-share, key, 0x130c, draft, BLS12-381 G1 public key share bls12_381-g2-pub-share, key, 0x130d, draft, BLS12-381 G2 public key share bls12_381-g1-priv-share, key, 0x130e, draft, BLS12-381 G1 private key share bls12_381-g2-priv-share, key, 0x130f, draft, BLS12-381 G2 private key share sm2-priv, key, 0x1310, draft, SM2 private key ed448-priv, key, 0x1311, draft, Ed448 private key x448-priv, key, 0x1312, draft, X448 private key mlkem-512-priv, key, 0x1313, draft, ML-KEM 512 private key; as specified by FIPS 203 mlkem-768-priv, key, 0x1314, draft, ML-KEM 768 public key; as specified by FIPS 203 mlkem-1024-priv, key, 0x1315, draft, ML-KEM 1024 public key; as specified by FIPS 203 jwk_jcs-priv, key, 0x1316, draft, JSON object containing only the required members of a JWK (RFC 7518 and RFC 7517) representing the private key. Serialisation based on JCS (RFC 8785) mldsa-44-priv, key, 0x1317, draft, ML-DSA 44 private key; expanded key format (2560 bytes) as specified by FIPS 204 mldsa-65-priv, key, 0x1318, draft, ML-DSA 65 private key; expanded key format (4032 bytes) as specified by FIPS 204 mldsa-87-priv, key, 0x1319, draft, ML-DSA 87 private key; expanded key format (4896 bytes) as specified by FIPS 204 mldsa-44-priv-seed, key, 0x131a, draft, ML-DSA 44 private key seed; (32 bytes) as specified by FIPS 204 mldsa-65-priv-seed, key, 0x131b, draft, ML-DSA 65 private key seed; (32 bytes) as specified by FIPS 204 mldsa-87-priv-seed, key, 0x131c, draft, ML-DSA 87 private key seed; (32 bytes) as specified by FIPS 204 bip340-pub, key, 0x1340, draft, BIP340 public key bip340-priv, key, 0x1341, draft, BIP340 private key lamport-sha3-512-pub, key, 0x1a14, draft, Lamport public key based on SHA3-512 lamport-sha3-384-pub, key, 0x1a15, draft, Lamport public key based on SHA3-384 lamport-sha3-256-pub, key, 0x1a16, draft, Lamport public key based on SHA3-256 lamport-sha3-512-priv, key, 0x1a24, draft, Lamport private key based on SHA3-512 lamport-sha3-384-priv, key, 0x1a25, draft, Lamport private key based on SHA3-384 lamport-sha3-256-priv, key, 0x1a26, draft, Lamport private key based on SHA3-256 lamport-sha3-512-priv-share, key, 0x1a34, draft, Lamport private key share based on SHA3-512 and split with Shamir gf256 lamport-sha3-384-priv-share, key, 0x1a35, draft, Lamport private key share based on SHA3-384 and split with Shamir gf256 lamport-sha3-256-priv-share, key, 0x1a36, draft, Lamport private key share based on SHA3-256 and split with Shamir gf256 lamport-sha3-512-sig, multisig, 0x1a44, draft, Lamport signature based on SHA3-512 lamport-sha3-384-sig, multisig, 0x1a45, draft, Lamport signature based on SHA3-384 lamport-sha3-256-sig, multisig, 0x1a46, draft, Lamport signature based on SHA3-256 lamport-sha3-512-sig-share, multisig, 0x1a54, draft, Lamport signature share based on SHA3-512 and split with Shamir gf256 lamport-sha3-384-sig-share, multisig, 0x1a55, draft, Lamport signature share based on SHA3-384 and split with Shamir gf256 lamport-sha3-256-sig-share, multisig, 0x1a56, draft, Lamport signature share based on SHA3-256 and split with Shamir gf256 kt-128, multihash, 0x1d01, draft, KangarooTwelve KT128 extendable-output hash function (XOF) as defined in RFC 9861 kt-256, multihash, 0x1d02, draft, KangarooTwelve KT256 extendable-output hash function (XOF) as defined in RFC 9861 aes-gcm-256, encryption, 0x2000, draft, AES Galois/Counter Mode with 256-bit key and 12-byte IV silverpine, multiaddr, 0x3f42, draft, Experimental QUIC over yggdrasil and ironwood routing protocol sm3-256, multihash, 0x534d, draft, sha256a, hash, 0x7012, draft, The sum of multiple sha2-256 hashes; as specified by Ceramic CIP-124. chacha20-poly1305, multikey, 0xa000, draft, ChaCha20_Poly1305 encryption scheme blake2b-8, multihash, 0xb201, draft, Blake2b consists of 64 output lengths that give different hashes blake2b-16, multihash, 0xb202, draft, blake2b-24, multihash, 0xb203, draft, blake2b-32, multihash, 0xb204, draft, blake2b-40, multihash, 0xb205, draft, blake2b-48, multihash, 0xb206, draft, blake2b-56, multihash, 0xb207, draft, blake2b-64, multihash, 0xb208, draft, blake2b-72, multihash, 0xb209, draft, blake2b-80, multihash, 0xb20a, draft, blake2b-88, multihash, 0xb20b, draft, blake2b-96, multihash, 0xb20c, draft, blake2b-104, multihash, 0xb20d, draft, blake2b-112, multihash, 0xb20e, draft, blake2b-120, multihash, 0xb20f, draft, blake2b-128, multihash, 0xb210, draft, blake2b-136, multihash, 0xb211, draft, blake2b-144, multihash, 0xb212, draft, blake2b-152, multihash, 0xb213, draft, blake2b-160, multihash, 0xb214, draft, blake2b-168, multihash, 0xb215, draft, blake2b-176, multihash, 0xb216, draft, blake2b-184, multihash, 0xb217, draft, blake2b-192, multihash, 0xb218, draft, blake2b-200, multihash, 0xb219, draft, blake2b-208, multihash, 0xb21a, draft, blake2b-216, multihash, 0xb21b, draft, blake2b-224, multihash, 0xb21c, draft, blake2b-232, multihash, 0xb21d, draft, blake2b-240, multihash, 0xb21e, draft, blake2b-248, multihash, 0xb21f, draft, blake2b-256, multihash, 0xb220, permanent, blake2b-264, multihash, 0xb221, draft, blake2b-272, multihash, 0xb222, draft, blake2b-280, multihash, 0xb223, draft, blake2b-288, multihash, 0xb224, draft, blake2b-296, multihash, 0xb225, draft, blake2b-304, multihash, 0xb226, draft, blake2b-312, multihash, 0xb227, draft, blake2b-320, multihash, 0xb228, draft, blake2b-328, multihash, 0xb229, draft, blake2b-336, multihash, 0xb22a, draft, blake2b-344, multihash, 0xb22b, draft, blake2b-352, multihash, 0xb22c, draft, blake2b-360, multihash, 0xb22d, draft, blake2b-368, multihash, 0xb22e, draft, blake2b-376, multihash, 0xb22f, draft, blake2b-384, multihash, 0xb230, draft, blake2b-392, multihash, 0xb231, draft, blake2b-400, multihash, 0xb232, draft, blake2b-408, multihash, 0xb233, draft, blake2b-416, multihash, 0xb234, draft, blake2b-424, multihash, 0xb235, draft, blake2b-432, multihash, 0xb236, draft, blake2b-440, multihash, 0xb237, draft, blake2b-448, multihash, 0xb238, draft, blake2b-456, multihash, 0xb239, draft, blake2b-464, multihash, 0xb23a, draft, blake2b-472, multihash, 0xb23b, draft, blake2b-480, multihash, 0xb23c, draft, blake2b-488, multihash, 0xb23d, draft, blake2b-496, multihash, 0xb23e, draft, blake2b-504, multihash, 0xb23f, draft, blake2b-512, multihash, 0xb240, draft, blake2s-8, multihash, 0xb241, draft, Blake2s consists of 32 output lengths that give different hashes blake2s-16, multihash, 0xb242, draft, blake2s-24, multihash, 0xb243, draft, blake2s-32, multihash, 0xb244, draft, blake2s-40, multihash, 0xb245, draft, blake2s-48, multihash, 0xb246, draft, blake2s-56, multihash, 0xb247, draft, blake2s-64, multihash, 0xb248, draft, blake2s-72, multihash, 0xb249, draft, blake2s-80, multihash, 0xb24a, draft, blake2s-88, multihash, 0xb24b, draft, blake2s-96, multihash, 0xb24c, draft, blake2s-104, multihash, 0xb24d, draft, blake2s-112, multihash, 0xb24e, draft, blake2s-120, multihash, 0xb24f, draft, blake2s-128, multihash, 0xb250, draft, blake2s-136, multihash, 0xb251, draft, blake2s-144, multihash, 0xb252, draft, blake2s-152, multihash, 0xb253, draft, blake2s-160, multihash, 0xb254, draft, blake2s-168, multihash, 0xb255, draft, blake2s-176, multihash, 0xb256, draft, blake2s-184, multihash, 0xb257, draft, blake2s-192, multihash, 0xb258, draft, blake2s-200, multihash, 0xb259, draft, blake2s-208, multihash, 0xb25a, draft, blake2s-216, multihash, 0xb25b, draft, blake2s-224, multihash, 0xb25c, draft, blake2s-232, multihash, 0xb25d, draft, blake2s-240, multihash, 0xb25e, draft, blake2s-248, multihash, 0xb25f, draft, blake2s-256, multihash, 0xb260, draft, skein256-8, multihash, 0xb301, draft, Skein256 consists of 32 output lengths that give different hashes skein256-16, multihash, 0xb302, draft, skein256-24, multihash, 0xb303, draft, skein256-32, multihash, 0xb304, draft, skein256-40, multihash, 0xb305, draft, skein256-48, multihash, 0xb306, draft, skein256-56, multihash, 0xb307, draft, skein256-64, multihash, 0xb308, draft, skein256-72, multihash, 0xb309, draft, skein256-80, multihash, 0xb30a, draft, skein256-88, multihash, 0xb30b, draft, skein256-96, multihash, 0xb30c, draft, skein256-104, multihash, 0xb30d, draft, skein256-112, multihash, 0xb30e, draft, skein256-120, multihash, 0xb30f, draft, skein256-128, multihash, 0xb310, draft, skein256-136, multihash, 0xb311, draft, skein256-144, multihash, 0xb312, draft, skein256-152, multihash, 0xb313, draft, skein256-160, multihash, 0xb314, draft, skein256-168, multihash, 0xb315, draft, skein256-176, multihash, 0xb316, draft, skein256-184, multihash, 0xb317, draft, skein256-192, multihash, 0xb318, draft, skein256-200, multihash, 0xb319, draft, skein256-208, multihash, 0xb31a, draft, skein256-216, multihash, 0xb31b, draft, skein256-224, multihash, 0xb31c, draft, skein256-232, multihash, 0xb31d, draft, skein256-240, multihash, 0xb31e, draft, skein256-248, multihash, 0xb31f, draft, skein256-256, multihash, 0xb320, draft, skein512-8, multihash, 0xb321, draft, Skein512 consists of 64 output lengths that give different hashes skein512-16, multihash, 0xb322, draft, skein512-24, multihash, 0xb323, draft, skein512-32, multihash, 0xb324, draft, skein512-40, multihash, 0xb325, draft, skein512-48, multihash, 0xb326, draft, skein512-56, multihash, 0xb327, draft, skein512-64, multihash, 0xb328, draft, skein512-72, multihash, 0xb329, draft, skein512-80, multihash, 0xb32a, draft, skein512-88, multihash, 0xb32b, draft, skein512-96, multihash, 0xb32c, draft, skein512-104, multihash, 0xb32d, draft, skein512-112, multihash, 0xb32e, draft, skein512-120, multihash, 0xb32f, draft, skein512-128, multihash, 0xb330, draft, skein512-136, multihash, 0xb331, draft, skein512-144, multihash, 0xb332, draft, skein512-152, multihash, 0xb333, draft, skein512-160, multihash, 0xb334, draft, skein512-168, multihash, 0xb335, draft, skein512-176, multihash, 0xb336, draft, skein512-184, multihash, 0xb337, draft, skein512-192, multihash, 0xb338, draft, skein512-200, multihash, 0xb339, draft, skein512-208, multihash, 0xb33a, draft, skein512-216, multihash, 0xb33b, draft, skein512-224, multihash, 0xb33c, draft, skein512-232, multihash, 0xb33d, draft, skein512-240, multihash, 0xb33e, draft, skein512-248, multihash, 0xb33f, draft, skein512-256, multihash, 0xb340, draft, skein512-264, multihash, 0xb341, draft, skein512-272, multihash, 0xb342, draft, skein512-280, multihash, 0xb343, draft, skein512-288, multihash, 0xb344, draft, skein512-296, multihash, 0xb345, draft, skein512-304, multihash, 0xb346, draft, skein512-312, multihash, 0xb347, draft, skein512-320, multihash, 0xb348, draft, skein512-328, multihash, 0xb349, draft, skein512-336, multihash, 0xb34a, draft, skein512-344, multihash, 0xb34b, draft, skein512-352, multihash, 0xb34c, draft, skein512-360, multihash, 0xb34d, draft, skein512-368, multihash, 0xb34e, draft, skein512-376, multihash, 0xb34f, draft, skein512-384, multihash, 0xb350, draft, skein512-392, multihash, 0xb351, draft, skein512-400, multihash, 0xb352, draft, skein512-408, multihash, 0xb353, draft, skein512-416, multihash, 0xb354, draft, skein512-424, multihash, 0xb355, draft, skein512-432, multihash, 0xb356, draft, skein512-440, multihash, 0xb357, draft, skein512-448, multihash, 0xb358, draft, skein512-456, multihash, 0xb359, draft, skein512-464, multihash, 0xb35a, draft, skein512-472, multihash, 0xb35b, draft, skein512-480, multihash, 0xb35c, draft, skein512-488, multihash, 0xb35d, draft, skein512-496, multihash, 0xb35e, draft, skein512-504, multihash, 0xb35f, draft, skein512-512, multihash, 0xb360, draft, skein1024-8, multihash, 0xb361, draft, Skein1024 consists of 128 output lengths that give different hashes skein1024-16, multihash, 0xb362, draft, skein1024-24, multihash, 0xb363, draft, skein1024-32, multihash, 0xb364, draft, skein1024-40, multihash, 0xb365, draft, skein1024-48, multihash, 0xb366, draft, skein1024-56, multihash, 0xb367, draft, skein1024-64, multihash, 0xb368, draft, skein1024-72, multihash, 0xb369, draft, skein1024-80, multihash, 0xb36a, draft, skein1024-88, multihash, 0xb36b, draft, skein1024-96, multihash, 0xb36c, draft, skein1024-104, multihash, 0xb36d, draft, skein1024-112, multihash, 0xb36e, draft, skein1024-120, multihash, 0xb36f, draft, skein1024-128, multihash, 0xb370, draft, skein1024-136, multihash, 0xb371, draft, skein1024-144, multihash, 0xb372, draft, skein1024-152, multihash, 0xb373, draft, skein1024-160, multihash, 0xb374, draft, skein1024-168, multihash, 0xb375, draft, skein1024-176, multihash, 0xb376, draft, skein1024-184, multihash, 0xb377, draft, skein1024-192, multihash, 0xb378, draft, skein1024-200, multihash, 0xb379, draft, skein1024-208, multihash, 0xb37a, draft, skein1024-216, multihash, 0xb37b, draft, skein1024-224, multihash, 0xb37c, draft, skein1024-232, multihash, 0xb37d, draft, skein1024-240, multihash, 0xb37e, draft, skein1024-248, multihash, 0xb37f, draft, skein1024-256, multihash, 0xb380, draft, skein1024-264, multihash, 0xb381, draft, skein1024-272, multihash, 0xb382, draft, skein1024-280, multihash, 0xb383, draft, skein1024-288, multihash, 0xb384, draft, skein1024-296, multihash, 0xb385, draft, skein1024-304, multihash, 0xb386, draft, skein1024-312, multihash, 0xb387, draft, skein1024-320, multihash, 0xb388, draft, skein1024-328, multihash, 0xb389, draft, skein1024-336, multihash, 0xb38a, draft, skein1024-344, multihash, 0xb38b, draft, skein1024-352, multihash, 0xb38c, draft, skein1024-360, multihash, 0xb38d, draft, skein1024-368, multihash, 0xb38e, draft, skein1024-376, multihash, 0xb38f, draft, skein1024-384, multihash, 0xb390, draft, skein1024-392, multihash, 0xb391, draft, skein1024-400, multihash, 0xb392, draft, skein1024-408, multihash, 0xb393, draft, skein1024-416, multihash, 0xb394, draft, skein1024-424, multihash, 0xb395, draft, skein1024-432, multihash, 0xb396, draft, skein1024-440, multihash, 0xb397, draft, skein1024-448, multihash, 0xb398, draft, skein1024-456, multihash, 0xb399, draft, skein1024-464, multihash, 0xb39a, draft, skein1024-472, multihash, 0xb39b, draft, skein1024-480, multihash, 0xb39c, draft, skein1024-488, multihash, 0xb39d, draft, skein1024-496, multihash, 0xb39e, draft, skein1024-504, multihash, 0xb39f, draft, skein1024-512, multihash, 0xb3a0, draft, skein1024-520, multihash, 0xb3a1, draft, skein1024-528, multihash, 0xb3a2, draft, skein1024-536, multihash, 0xb3a3, draft, skein1024-544, multihash, 0xb3a4, draft, skein1024-552, multihash, 0xb3a5, draft, skein1024-560, multihash, 0xb3a6, draft, skein1024-568, multihash, 0xb3a7, draft, skein1024-576, multihash, 0xb3a8, draft, skein1024-584, multihash, 0xb3a9, draft, skein1024-592, multihash, 0xb3aa, draft, skein1024-600, multihash, 0xb3ab, draft, skein1024-608, multihash, 0xb3ac, draft, skein1024-616, multihash, 0xb3ad, draft, skein1024-624, multihash, 0xb3ae, draft, skein1024-632, multihash, 0xb3af, draft, skein1024-640, multihash, 0xb3b0, draft, skein1024-648, multihash, 0xb3b1, draft, skein1024-656, multihash, 0xb3b2, draft, skein1024-664, multihash, 0xb3b3, draft, skein1024-672, multihash, 0xb3b4, draft, skein1024-680, multihash, 0xb3b5, draft, skein1024-688, multihash, 0xb3b6, draft, skein1024-696, multihash, 0xb3b7, draft, skein1024-704, multihash, 0xb3b8, draft, skein1024-712, multihash, 0xb3b9, draft, skein1024-720, multihash, 0xb3ba, draft, skein1024-728, multihash, 0xb3bb, draft, skein1024-736, multihash, 0xb3bc, draft, skein1024-744, multihash, 0xb3bd, draft, skein1024-752, multihash, 0xb3be, draft, skein1024-760, multihash, 0xb3bf, draft, skein1024-768, multihash, 0xb3c0, draft, skein1024-776, multihash, 0xb3c1, draft, skein1024-784, multihash, 0xb3c2, draft, skein1024-792, multihash, 0xb3c3, draft, skein1024-800, multihash, 0xb3c4, draft, skein1024-808, multihash, 0xb3c5, draft, skein1024-816, multihash, 0xb3c6, draft, skein1024-824, multihash, 0xb3c7, draft, skein1024-832, multihash, 0xb3c8, draft, skein1024-840, multihash, 0xb3c9, draft, skein1024-848, multihash, 0xb3ca, draft, skein1024-856, multihash, 0xb3cb, draft, skein1024-864, multihash, 0xb3cc, draft, skein1024-872, multihash, 0xb3cd, draft, skein1024-880, multihash, 0xb3ce, draft, skein1024-888, multihash, 0xb3cf, draft, skein1024-896, multihash, 0xb3d0, draft, skein1024-904, multihash, 0xb3d1, draft, skein1024-912, multihash, 0xb3d2, draft, skein1024-920, multihash, 0xb3d3, draft, skein1024-928, multihash, 0xb3d4, draft, skein1024-936, multihash, 0xb3d5, draft, skein1024-944, multihash, 0xb3d6, draft, skein1024-952, multihash, 0xb3d7, draft, skein1024-960, multihash, 0xb3d8, draft, skein1024-968, multihash, 0xb3d9, draft, skein1024-976, multihash, 0xb3da, draft, skein1024-984, multihash, 0xb3db, draft, skein1024-992, multihash, 0xb3dc, draft, skein1024-1000, multihash, 0xb3dd, draft, skein1024-1008, multihash, 0xb3de, draft, skein1024-1016, multihash, 0xb3df, draft, skein1024-1024, multihash, 0xb3e0, draft, xxh-32, hash, 0xb3e1, draft, Extremely fast non-cryptographic hash algorithm xxh-64, hash, 0xb3e2, draft, Extremely fast non-cryptographic hash algorithm xxh3-64, hash, 0xb3e3, draft, Extremely fast non-cryptographic hash algorithm xxh3-128, hash, 0xb3e4, draft, Extremely fast non-cryptographic hash algorithm poseidon-bls12_381-a2-fc1, multihash, 0xb401, permanent, Poseidon using BLS12-381 and arity of 2 with Filecoin parameters poseidon-bls12_381-a2-fc1-sc, multihash, 0xb402, draft, Poseidon using BLS12-381 and arity of 2 with Filecoin parameters - high-security variant rdfc-1, ipld, 0xb403, draft, The result of canonicalizing an input according to RDFC-1.0 and then expressing its hash value as a multihash value. ssz, serialization, 0xb501, draft, SimpleSerialize (SSZ) serialization ssz-sha2-256-bmt, multihash, 0xb502, draft, SSZ Merkle tree root using SHA2-256 as the hashing function and SSZ serialization for the block binary sha2-256-chunked, multihash, 0xb510, draft, Hash of concatenated SHA2-256 digests of 8*2^n MiB source chunks; n = ceil(log2(source_size/(10^4 * 8MiB))) json-jcs, ipld, 0xb601, draft, The result of canonicalizing an input according to JCS - JSON Canonicalisation Scheme (RFC 8785) bittorrent-pieces-root, multihash, 0xb702, draft, BitTorrent v2 pieces root hash. iscc, softhash, 0xcc01, draft, ISCC (International Standard Content Code) - similarity preserving hash zeroxcert-imprint-256, zeroxcert, 0xce11, draft, 0xcert Asset Imprint (root hash) nonstandard-sig, varsig, 0xd000, deprecated, Namespace for all not yet standard signature algorithms bcrypt-pbkdf, multihash, 0xd00d, draft, Bcrypt-PBKDF key derivation function es256k, varsig, 0xd0e7, draft, ES256K Signature Algorithm (secp256k1) bls12_381-g1-sig, varsig, 0xd0ea, draft, G1 signature for BLS12-381 bls12_381-g2-sig, varsig, 0xd0eb, draft, G2 signature for BLS12-381 eddsa, varsig, 0xd0ed, draft, Edwards-Curve Digital Signature Algorithm eip-191, varsig, 0xd191, draft, EIP-191 Ethereum Signed Data Standard jwk_jcs-pub, key, 0xeb51, draft, JSON object containing only the required members of a JWK (RFC 7518 and RFC 7517) representing the public key. Serialisation based on JCS (RFC 8785) ed2k, multihash, 0xed20, draft, eDonkey2000 hash. fil-commitment-unsealed, filecoin, 0xf101, permanent, Filecoin piece or sector data commitment merkle node/root (CommP & CommD) fil-commitment-sealed, filecoin, 0xf102, permanent, Filecoin sector data commitment merkle node/root - sealed and replicated (CommR) shelter-contract-manifest, shelter, 0x511e00, draft, Shelter protocol contract manifest shelter-contract-text, shelter, 0x511e01, draft, Shelter protocol contract text shelter-contract-data, shelter, 0x511e02, draft, Shelter protocol contract data (contract chain) shelter-file-manifest, shelter, 0x511e03, draft, Shelter protocol file manifest shelter-file-chunk, shelter, 0x511e04, draft, Shelter protocol file chunk plaintextv2, multiaddr, 0x706c61, draft, holochain-adr-v0, holochain, 0x807124, draft, Holochain v0 address + 8 R-S (63 x Base-32) holochain-adr-v1, holochain, 0x817124, draft, Holochain v1 address + 8 R-S (63 x Base-32) holochain-key-v0, holochain, 0x947124, draft, Holochain v0 public key + 8 R-S (63 x Base-32) holochain-key-v1, holochain, 0x957124, draft, Holochain v1 public key + 8 R-S (63 x Base-32) holochain-sig-v0, holochain, 0xa27124, draft, Holochain v0 signature + 8 R-S (63 x Base-32) holochain-sig-v1, holochain, 0xa37124, draft, Holochain v1 signature + 8 R-S (63 x Base-32) skynet-ns, namespace, 0xb19910, draft, Skynet Namespace arweave-ns, namespace, 0xb29910, draft, Arweave Namespace subspace-ns, namespace, 0xb39910, draft, Subspace Network Namespace kumandra-ns, namespace, 0xb49910, draft, Kumandra Network Namespace massa, namespace, 0xb59910, draft, Massa blockchain ecosystem massa-mainnet, namespace, 0xb59911, draft, Massa mainnet network massa-buildnet, namespace, 0xb59912, draft, Massa buildnet network massa-deweb, namespace, 0xb59913, draft, Massa DeWeb decentralized web massa-gossip, namespace, 0xb59914, draft, Massa Gossip decentralized messaging massa-mns, namespace, 0xb59915, draft, Massa Name Service target massa-sc, namespace, 0xb59916, draft, Massa smart-contract address target massa-gossip-id, namespace, 0xb59917, draft, Massa Gossip ID target adnl, namespace, 0xb69910, draft, TON ADNL address: 32-byte SHA-256(0x4813b4c6_LE || Ed25519-pubkey) es256, varsig, 0xd01200, draft, ES256 Signature Algorithm es384, varsig, 0xd01201, draft, ES384 Signature Algorithm es512, varsig, 0xd01202, draft, ES512 Signature Algorithm rs256, varsig, 0xd01205, draft, RS256 Signature Algorithm bip340, varsig, 0xd01206, draft, BIP340 Signature Algorithm es256k-msig, multisig, 0xd01300, draft, ES256K (secp256k1) Signature as Multisig bls12_381-g1-msig, multisig, 0xd01301, draft, G1 signature for BLS-12381-G2 as Multisig bls12_381-g2-msig, multisig, 0xd01302, draft, G2 signature for BLS-12381-G1 as Multisig eddsa-msig, multisig, 0xd01303, draft, Edwards-Curve Digital Signature as Multisig bls12_381-g1-share-msig, multisig, 0xd01304, draft, G1 threshold signature share for BLS-12381-G2 as Multisig bls12_381-g2-share-msig, multisig, 0xd01305, draft, G2 threshold signature share for BLS-12381-G1 as Multisig lamport-msig, multisig, 0xd01306, draft, Lamport signature as Multisig lamport-share-msig, multisig, 0xd01307, draft, Lamport threshold signature share as Multisig es256-msig, multisig, 0xd01308, draft, ECDSA P-256 Signature as Multisig es384-msig, multisig, 0xd01309, draft, ECDSA P-384 Signature as Multisig es521-msig, multisig, 0xd0130a, draft, ECDSA P-521 Signature as Multisig rs256-msig, multisig, 0xd0130b, draft, RS256 Signature as Multisig scion, multiaddr, 0xd02000, draft, SCION Internet architecture ================================================ FILE: validate.py ================================================ #!/usr/bin/env python3 import csv import sys import re def check(fname='table.csv'): class CheckError(Exception): pass success = True with open(fname) as table: tablereader = csv.reader(table, strict=True, skipinitialspace=False) codes = {} names = {} headerOffsets = [] lastCode = -1 for line, row in enumerate(tablereader): try: # Check the padding of each column offset = 0 for col, item in enumerate(row): le = len(item) if col == 0: # first column 0 has no padding offset = le continue offset = offset + le thisOffset = offset - len(item.lstrip()) if line == 0: # header line sets the standard headerOffsets.append(thisOffset) elif col < len(headerOffsets) or le != 0: if thisOffset != headerOffsets[col - 1]: raise CheckError(f"bad spacing at column {col}") # Skip the header if line == 0: continue # Check for invalid rows if len(row) != 5: raise CheckError(f"expected 4 items, got {len(row)}") [name, _, code, _, _] = row # Check for a name if not name: raise CheckError(f"empty protocol name for code '{code}'") # Check code format if not re.match(r"^\s*0x([0-9a-f][0-9a-f])+$", code): raise CheckError(f"code for '{name}' does not look like a byte sequence: '{code}'") # Check name format if not re.match(r"^[a-z][a-z0-9_-]+$", name): raise CheckError(f"name '{name}' violates naming restrictions") # Parse the code try: code = int(code, 16) except Exception as e: raise CheckError(f"failed to parse code '{code}' for '{name}': {e}") # Check codes are ascending ooo = code < lastCode lastCode = code if ooo: raise CheckError(f"code {code} is out of order, previous code was {lastCode}") # Finally, check for duplicates if name in names: raise CheckError(f"found duplicate {name}: {code} and {names[name]}") else: names[name] = code if code in codes: raise CheckError( f"found duplicate for code {hex(code)} " f"for '{codes[code]}' and '{name}'" ) else: codes[code] = name # Reserved Code Range: Private Use Area – Do not permit any codes in this range if code in range(0x300000, 0x400000): raise CheckError( f"found code in Private Use Area: {hex(code)} with name '{name}'" ) except CheckError as e: success = False print(f"row {line}: {e}", file=sys.stderr) return success if __name__ == "__main__": if not check(): sys.exit(1)