Full Code of multiformats/multicodec for AI

master 45c88b89ab90 cached
8 files
70.6 KB
20.0k tokens
1 symbols
1 requests
Download .txt
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)
Download .txt
gitextract_tg4co21u/

├── .github/
│   └── workflows/
│       ├── generated-pr.yml
│       ├── stale.yml
│       └── validate.yml
├── CODEOWNERS
├── LICENSE
├── README.md
├── table.csv
└── validate.py
Download .txt
SYMBOL INDEX (1 symbols across 1 files)

FILE: validate.py
  function check (line 7) | def check(fname='table.csv'):
Condensed preview — 8 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (74K chars).
[
  {
    "path": ".github/workflows/generated-pr.yml",
    "chars": 246,
    "preview": "name: Close Generated PRs\n\non:\n  schedule:\n    - cron: '0 0 * * *'\n  workflow_dispatch:\n\npermissions:\n  issues: write\n  "
  },
  {
    "path": ".github/workflows/stale.yml",
    "chars": 244,
    "preview": "name: Close Stale Issues\n\non:\n  schedule:\n    - cron: '0 0 * * *'\n  workflow_dispatch:\n\npermissions:\n  issues: write\n  p"
  },
  {
    "path": ".github/workflows/validate.yml",
    "chars": 246,
    "preview": "name: Validate\non: [push, pull_request]\njobs:\n  validate:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/ch"
  },
  {
    "path": "CODEOWNERS",
    "chars": 36,
    "preview": "* @darobin @rvagg @vmx @aschmahmann\n"
  },
  {
    "path": "LICENSE",
    "chars": 1085,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2016 Protocol Labs Inc.\n\nPermission is hereby granted, free of charge, to any perso"
  },
  {
    "path": "README.md",
    "chars": 9406,
    "preview": "# multicodec\n\n[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://ipn.io)\n[!"
  },
  {
    "path": "table.csv",
    "chars": 57567,
    "preview": "name,                           tag,            code,           status,     description\nidentity,                       "
  },
  {
    "path": "validate.py",
    "chars": 3462,
    "preview": "#!/usr/bin/env python3\n\nimport csv\nimport sys\nimport re\n\ndef check(fname='table.csv'):\n    class CheckError(Exception):\n"
  }
]

About this extraction

This page contains the full source code of the multiformats/multicodec GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 8 files (70.6 KB), approximately 20.0k tokens, and a symbol index with 1 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!