Chain-Agnostic Standards
Give networks, accounts and assets their full names.
CAIPs define common identifiers and interfaces across blockchain ecosystems. CAIP-2 identifies a chain; related specifications build account, asset and session models around that context. Their precision helps software distinguish objects that a ticker or familiar address alone cannot identify.
Checking this browser’s read-aloud support…
A shared engineering vocabulary
Chain Agnostic Improvement Proposals are community design documents for problems that cross blockchain boundaries. CAIP-1 describes a proposal process in which authors explain a specification, build support and document dissent. Editors handle the publication workflow rather than certify the commercial merit or security of every implementation. This is a different institutional setting from an ISO standard or W3C Recommendation. The status of an individual CAIP matters more than the presence of a number in its title.
Reading a proposal therefore begins with its header, requirements and discussion record. A common format makes competing implementations easier to compare, but it does not create a single governing authority over all the chains named by that format.
CAIP-2 gives a chain a namespace and a reference separated by a colon. The namespace explains how to interpret the reference. For example, eip155:1 denotes Ethereum mainnet under the EVM chain-ID scheme. Other ecosystems use other reference rules. The identifier is case-sensitive and deliberately compact enough for practical displays and storage. It identifies a network context, not its native coin or its security quality. CAIP-2 is marked Final in the reviewed record; that status does not automatically carry over to every related proposal or namespace profile.
An address needs its chain
CAIP-10 extends the chain identifier with an account address. The same apparent address on two networks can therefore be represented as two distinct account identifiers. This is useful wherever a portfolio, permission or sign-in record must preserve network context. The specification deliberately does not impose one universal canonicalization rule for all address families. Namespace-specific casing, checksums and deduplication remain relevant. A service that lowercases every identifier indiscriminately can discard information that a particular namespace considers significant.
CAIP-10 is Final, but integrations must still pay attention to its history: earlier versions used a different account-at-chain arrangement. The complete current string, rather than a visual resemblance to an old example, determines which object the application has received.
Ethereum's ERC-55 checksum adds information through letter casing in a hexadecimal address. The casing is computed from a hash of the lowercase address, giving software a way to detect many transcription mistakes without adding extra address characters. This solves a narrower problem than CAIP-10. A correctly checksummed address still lacks a network identifier, and the checksum says nothing about the recipient's honesty or the safety of sending funds. In a user interface, preserving a readable address and preserving its network context are complementary tasks.
One catches a class of copying errors; the other prevents an application from treating accounts on different chains as the same destination.
A ticker is a label, not an asset identifier
CAIP-19 describes asset types using a chain identifier followed by an asset namespace and reference. An optional additional token identifier can distinguish an individual non-fungible token. Native assets, contract tokens and particular collectibles therefore need different forms of reference. Two tokens can display the same symbol without having the same identifier, and two representations of an asset on different networks retain different network contexts. The reviewed proposal remains in Review. Its design also leaves canonicalization decisions to relevant namespace rules.
A parser that accepts a syntactically valid identifier has established its shape, not the credibility of an issuer, the quality of a bridge or the authenticity of a marketplace listing.
The EIP-155 asset profile makes that structure concrete for EVM networks. An ERC-20 reference points to the token contract within the selected chain. An ERC-721 asset type names the collection contract, while the token identifier selects the particular item. Those coordinates are more informative than a logo copied from a website. They also show why a token catalog should retain its exact source identity when joining prices or histories: matching a symbol alone throws away the contract and chain distinctions the format was designed to express.
This namespace document is a Draft profile, so implementers should record the profile and canonicalization behavior they actually support rather than assume every wallet interprets every spelling identically.
Different networks need different references
For the EIP-155 namespace, the CAIP-2 profile uses the decimal chain ID and describes obtaining it through eth_chainId. The RPC response and the identifier representation use different numerical encodings, so software must convert deliberately rather than compare arbitrary display strings. The number describes the selected chain context. It is not the name of the wallet, its current account or a claim about a token contract. This distinction is especially useful when a wallet supports many EVM networks with similar address formats.
The namespace profile documents an interpretation rule; the application still needs to ensure that its actual connected provider is the network it intends to use.
The Cosmos profile uses the chain's string identifier, with a prescribed hashing representation for identifiers too long for the general format. Case and revision details matter. The profile discusses networks that change their chain ID while maintaining continuity of state, demonstrating why a chain label is not a permanent substitute for migration records. An application must distinguish the exact reference needed for a transaction from a broader historical name used by people. Treating every version as interchangeable can break signing or replay expectations.
Conversely, treating every changed identifier as an entirely unrelated community would lose legitimate network history. The profile provides machine rules, while historical continuity needs its own evidence.
The BIP-122 namespace identifies Bitcoin-family networks through block-hash references rather than EVM chain numbers. Its examples include Bitcoin mainnet and distinct fork contexts. That is why a single numeric registry cannot be casually imposed on every ecosystem. The profile's job is to specify which chain reference is intended under its rules, with enough detail for independent software to produce the same value. A wallet handling both EVM and Bitcoin-family accounts consequently needs multiple namespace implementations even when its outer interface looks uniform.
Chain-agnostic design means carrying those differences through a common envelope, not pretending the underlying networks have identical consensus, addresses or transaction formats.
Authentication with explicit context
Sign-In with Ethereum binds an authentication message to an account, domain, chain and nonce. The relying service must validate the expected fields and signature, rather than accept any signed text. Wallet origin checks help resist phishing. Sessions bind to the address, while mutable contract-signature rules can require invalidation. SIWE authenticates an interaction; it does not make a website trustworthy.
CAIP-122 generalizes the sign-in model across namespaces as Sign-In with X. Its abstract data model includes the requesting domain, account address, resource URI, version, chain identifier and signature information. The namespace must supply signing and verification rules, including how the message is formed. Important details differ from a casual assumption that every field follows SIWE verbatim: the abstract table marks fields such as nonce and issued-at optional, while particular profiles can impose stronger requirements. The reviewed CAIP remains in Review.
A secure implementation therefore needs a complete selected profile, appropriate replay protection and exact verification behavior, rather than only a generic data object with a signature attached to it.
Accounts do not all prove control the same way
ERC-191 prefixes signed data so it cannot be confused with an ordinary encoded Ethereum transaction. Its versioned formats distinguish signing contexts; software must interpret the selected version correctly.
ERC-1271 lets a contract validate a signature through its own rules. Validity can depend on current state, rather than a single permanently authorized private key.
The EIP-155 SIWx profile describes how the common data model becomes an Ethereum sign-in message and identifies signature mechanisms for externally owned and contract accounts. This is where an abstract cross-chain idea becomes an implementable chain-specific procedure. A verifier must use the profile's message construction and signature interpretation, not invent an equivalent-looking sentence and hope its bytes match. The distinction also matters for smart wallets whose authorization depends on contract logic. The profile is marked Draft, independently of SIWE's Final status.
Recording both references makes compatibility claims more precise: a system can implement a finalized Ethereum sign-in format while still participating in a developing cross-namespace abstraction.
Negotiating what a wallet may do
CAIP-25 defines a session negotiation between a caller and a wallet or other user agent. Requested scopes name chains or namespaces and describe the interaction being sought. The response records the granted session rather than leaving both parties to guess which capabilities are available. The current document includes session updates, querying and revocation, and explains behavior when a session identifier is not returned. It remains in Review despite a long implementation-oriented history. This layer should be distinguished from proof that a particular account signed a challenge.
Connecting a wallet, discovering its supported methods and authenticating a person are related product steps, but they are not the same protocol event or the same consent decision.
Keeping a signed authorization interpretable
CAIP-74 proposes CACAO, an IPLD-based representation of a signed capability. The container separates header, payload and signature, retaining metadata needed to reconstruct and verify the signed message. Its issuer reference includes account and network information, and the signature type points to the appropriate namespace mechanism. This allows an authorization receipt to remain interpretable outside the immediate login screen. The proposal describes compatibility with an older Ethereum-specific header as well as the newer CAIP-122 form.
That history matters when exchanging stored objects: a newer application should not silently reinterpret an older signature under different message rules. CACAO is in Review, and the permissions conveyed depend on the actual signed fields and the system interpreting them.
Uniform interfaces still need maintained profiles
CAIP-104 explains why namespace references were separated into their own documents. Low-level identifiers can remain stable while asset rules, RPC interfaces and signing profiles evolve independently. Authors are expected to document authoritative references, build consensus and record dissent. The proposal also addresses maintenance and transfer of ownership when an author can no longer continue. This is a practical recognition that interoperability is sustained work. A single global identifier format does not keep every ecosystem's surrounding rules current.
Before depending on a profile, an implementer can examine its status, referenced specifications and active maintenance record. A proposal that names a blockchain is not automatically a complete wallet integration for that blockchain.
How we got here.
- 2019-08-31
CAIP process proposal is created
CAIP-1 records the start of the community proposal framework.
- 2019-12-05
CAIP-2 is created
The chain-identifier proposal receives its dated creation record.
- 2020-03-13
CAIP-10 is created
The account-identifier proposal builds explicit network context into account references.
- 2020-06-23
CAIP-19 is created
The asset-type and asset-identifier proposal is recorded.
- 2021-10-11
SIWE proposal is created
ERC-4361 records its creation date.
- 2022-06-23
SIWx proposal is created
CAIP-122 extends the sign-in design across cryptographic namespaces.
Beliefs, ambitions & unanswered questions.
These are attributed narratives, not endorsements. Open each evidence file to see the supporting record and the limits of what it establishes.
Documented beliefNames should reveal what software must know
Open evidence file
Micah Zoltu, ligi and Pedro Gomes disagreed about how chain references should balance names and technical families.
Where the story comes from
The original CAIP-2 discussion on Ethereum Magicians, including its 2021 exchanges.
What the record supports
- Zoltu pressed for meaningful distinctions between networks. Ligi defended namespace grouping, while Gomes explained the EIP-155 label as a reference scheme rather than Ethereum branding. The disagreement exposes real tradeoffs in a compact identifier.
What it does not prove
- The thread contains design arguments across time, not a current universal registry or proof that every displayed network label is correct.
What to watch
- Check whether a user-facing name resolves to the intended full identifier and whether a namespace change actually changes the machine rules.
Documented beliefReadable signing versus structured machinery
Open evidence file
SIWE contributors wanted a sign-in format that existing wallets could display, while reviewers questioned its parsing and hardware-wallet tradeoffs.
Where the story comes from
Wayne Chang, rmeissner and holiman in the original 2021 Ethereum Magicians discussion.
What the record supports
- Chang emphasized adoption without requiring every wallet vendor to change first. Rmeissner favored structured-data advantages for hardware interfaces, and holiman raised parser concerns. Their exchange shows usability and exact serialization pulling on the same design.
What it does not prove
- These are historical proposal discussions. A concern raised in a thread is not evidence that the finalized specification still has that vulnerability.
What to watch
- Compare current conformance tests, wallet displays and parser behavior against the final format rather than relying on a screenshot of a signing prompt.
Documented beliefA universal sign-in needs real maintainers
Open evidence file
Developer joelamouche wanted sign-in coverage across chains; Haardik described the practical limits of the available implementation work.
Where the story comes from
Their March 4, 2024 exchange on the original CAIP-122 pull request.
What the record supports
- The maintainer described recent Starknet support and welcomed contributions, while saying additional chain work was not then planned in the short term. The exchange turns a broad interoperability ambition into a concrete question about supported code.
What it does not prove
- That dated reply is not a current inventory of every SIWx library. Specification coverage and active implementation coverage can diverge.
What to watch
- Look for maintained namespace adapters, test vectors and wallet interoperability before treating a general sign-in label as support for a particular chain.
Documented beliefConnection is not authentication
Open evidence file
Ligi challenged calling a provider handshake authentication, and Pedro Gomes agreed that the original exchange did not prove account ownership.
Where the story comes from
Their October 2020 discussion on CAIP pull request 25.
What the record supports
- The conversation led to a naming change and debated whether wallets should grant all requested methods or a subset. Gomes also argued for explicit methods rather than broad wildcards that hide unsupported signing behavior.
What it does not prove
- This records the design motivation of the original proposal. The current CAIP has evolved and must be read for present session semantics.
What to watch
- Watch whether a wallet explains the exact requested permissions and whether an application separately verifies any claimed account ownership.
The source library.
Primary documents explain mechanics and decisions. Community records show what participants believed. Dates below indicate when these links were reviewed; external pages may change.
- CAIP-1 proposal process ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- CAIP-2 chain identifiers ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- CAIP-10 account identifiers ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- CAIP-19 asset identifiers ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- CAIP-122 Sign-In with X ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- ERC-55 address checksum ↗Ethereum contributors · primary · Reviewed 2026-10-02
- EIP-155 asset profile ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- EIP-155 chain profile ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- Cosmos chain profile ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- BIP-122 chain profile ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- ERC-4361 SIWE ↗Ethereum contributors · primary · Reviewed 2026-10-02
- ERC-191 signed data ↗Ethereum contributors · primary · Reviewed 2026-10-02
- ERC-1271 contract signatures ↗Ethereum contributors · primary · Reviewed 2026-10-02
- EIP-155 sign-in profile ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- CAIP-25 wallet sessions ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- CAIP-74 CACAO ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- CAIP-104 namespace references ↗Chain Agnostic Standards · primary · Reviewed 2026-10-02
- CAIP-2 blockchain reference discussion ↗Ethereum Magicians · community · Reviewed 2026-10-02
- Original SIWE discussion ↗Ethereum Magicians · community · Reviewed 2026-10-02
- Original SIWx proposal discussion ↗Chain Agnostic contributors · community · Reviewed 2026-10-02
- Original provider handshake discussion ↗Chain Agnostic contributors · community · Reviewed 2026-10-02