Chain Agnostic Improvement Proposals
Cross-chain standards for wallet interaction, account addressing, and chain identification.
54 specs indexed from ChainAgnostic/CAIPs
CAIP Purpose and Guidelines
CAIP stands for Chain Agnostic Improvement Proposal. A CAIP is a design document providing information to the community or describing a standard to be used across multiple chains. To be more precise, a CAIP may describe capabilities applicable to any sequential orderings of cryptographically hashed commitments, including non-blockchain systems that can interoperate with blockchains productively, s
No reviews#1
Blockchain ID Specification
CAIP-2 defines a way to identify a blockchain (e.g. Ethereum Mainnet, Görli, Bitcoin, Cosmos Hub) in a human-readable, developer-friendly and transaction-friendly way.
No reviews#2
Blockchain Reference for the EIP155 Namespace
This document is about the details of the EIP155 namespace and reference for CAIP-2.
No reviews#3
Blockchain Reference for the BIP122 Namespace
This document is about the details of the BIP122 namespace and reference for CAIP-2.
No reviews#4
Blockchain Reference for the Cosmos Namespace
This document is about the details of the Cosmos namespaces and references for CAIP-2.
No reviews#5
Blockchain Reference for the LIP9 Namespace
This document is about the details of the LIP9 namespace and reference for CAIP-2.
No reviews#6
Blockchain Reference for the EOSIO Namespace
This document is about the details of the EOSIO namespaces and references for CAIP-2.
No reviews#7
Account ID Specification
CAIP-10 defines a way to identify an account in any blockchain specified by CAIP-2 blockchain id.
No reviews#10
Blockchain Reference for the Polkadot Namespace
This document is about the details of the Polkadot namespace and reference for CAIP-2.
No reviews#13
Asset Type and Asset ID Specification
CAIP-19 defines a way to identify a type of asset (e.g. Bitcoin, Ether, ATOM) with an optional asset identifier suffix (for individually-addressable tokens like NFTs) in a human-readable, developer- and transaction-friendly way.
No reviews#19
Asset Reference for the SLIP44 Asset Namespace
This document is about the details of the SLIP44 asset namespace and reference for CAIP-19.
No reviews#20
Asset Reference for the ERC20 Asset Namespace
This document is about the details of the ERC20 asset namespace and reference for CAIP-19.
No reviews#21
Asset Reference for the ERC721 Asset Namespace
This document is about the details of the ERC721 asset namespace and reference for CAIP-19.
No reviews#22
Blockchain Reference for Filecoin Namespace
This document is about the details of the Filecoin network namespace and reference for CAIP-2.
No reviews#23
Wallet Create Session JSON-RPC Method
CAIP-25 defines an authorization procedure for a chain agnostic provider to interface with a wallet as part of their initialization and/or "handshake" protocol.
No reviews#25
Blockchain Reference for the Tezos Namespace
This document is about the details of the Tezos namespaces and references for CAIP-2.
No reviews#26
Wallet Invoke Method JSON-RPC Method
CAIP-27 defines a JSON-RPC method for a decentralized application to invoke a targeted JSON-RPC method, marked for a specified target previously authorized by a valid [scopeObject][CAIP-217], and tagged with a [sessionId][CAIP-171] for maintaining session continuity if applicable.
No reviews#27
Blockchain Reference for Stellar Namespace
This CAIP defines the Stellar network namespace and reference for CAIP-2.
No reviews#28
Asset Reference for the ERC1155 Asset Namespace
This document is about the details of the ERC1155 asset namespace and reference for CAIP-19. This specification is derived from the work done for [CAIP-19](https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-19.md) by Antoine Herzog (@antoineherzog), Pedro Gomes (@pedrouid), Joel Thorstensson (@oed).
No reviews#29
Blockchain Reference for the Solana Namespace
This document is about the details of the Solana namespace and reference for CAIP-2.
No reviews#30
Multi-Chain Account ID Specification
CAIP-50 defines a way to identify blockchain account addresses uniquely across multiple blockchains
No reviews#50
CACAO - Chain Agnostic CApability Object
Represent a chain-agnostic Object Capability (OCAP), created using [CAIP-122], as an [IPLD](https://ipld.io) object.
No reviews#74
Account Address for the Hedera namespace
This document is about the details of the Hedera account address for CAIP-10.
No reviews#76
Namespace Reference Purpose and Guidelines
Previously, the specifics of blockchain ecosystems and namespaces were defined in single stand-alone CAIPs alongside cross-chain CAIPs. Now, as the system has matured and expanded, it has become clear that namespaces are more complex and multi-dimensional than can be efficiently governed over time in the current CAIP single-document structure; instead, a Namespace Reference is proposed that splits
No reviews#104
Sign in With X (SIWx)
Sign in With X describes how blockchain accounts should authenticate and authorize with off-chain services by signing a chain-agnostic message parameterized by scope, session details, and security mechanisms (e.g. a nonce). The goal of this specification is to define a chain-agnostic data model. When accompanied with chain-specific message forms and signing algorithms, along with chain-agnostic s
No reviews#122
Restrict Web3 Provider API Injection
Historically the web platform has had a notion of “powerful” APIs like [geolocation][w3c-geolocation] and [camera and microphone usage][w3c-mediastreams], which are subject to additional security restrictions such as those defined by [secure contexts][w3c-secure-contexts]. Since the Web3 Provider APIs allow dApp websites to request access to sensitive user data and to request use of user funds, ne
No reviews#154
IPLD Timestamp Proof
Create and verify IPLD based blockchain timestamp proofs.
No reviews#168
Simple Credential Interface Provider
<!--"If you can't explain it simply, you don't understand it well enough." Provide a simplified and layman-accessible explanation of the EIP.--> A common interface for decentralized applications and cryptocurrency wallets (or other key management applications described in future CASA namespaces and CAIPs) to communicate about and pass Verifiable Credentials and Verifiable Presentations is needed
No reviews#169
Session Identifiers
This CAIP defines an common identifier for representing an open session with a wallet, including both in-browser session tokens and API-based connection IDs.
No reviews#171
CACAO - Chain Agnostic CApability Object
A Chain Agnostic CApability Object, or CACAO, is an [IPLD](https://ipld.io) representation of an object-capability.
No reviews#196
BlockExplorer API Routes
Standard API Routes for Blockchain explorers
No reviews#200
JSON-RPC Authority Negotiation
The establishment of a connection between a decentralized application (web-based or otherwise) and a wallet or other authenticator (browser-based or otherwise) requires a shared understanding of capabilities and target networks as well as mutual trust. This specification gives wallets and decentralized applications a way of signalling to one another, in CAIP-25 or in other session-initiation cerem
No reviews#211
Authorization Scopes
This CAIP defines a simple syntax for scopes of authorization between applications (e.g. dapps) and user-agents (e.g. "wallets" or signers). These are expressed as JSON objects as a building block across multiple protocols and mechanisms, for example: - A JSON-RPC protocol for persisting and synchronizing authorized sessions ([CAIP-25][]) - Routing individual RPC commands to an authorized networ
No reviews#217
Wallet Authenticate JSON-RPC Method
This CAIP defines a JSON-RPC method to authenticate wallet ownership/control of one or more blockchain account(s), on one or more specific chains.
No reviews#222
Web of Trust Primitives
This specification introduces a data framework to explicitly represent trust assertions among peers, facilitating the development of a scalable and interoperable web of trust.
No reviews#261
Domain Wallet Authentication
The Domain Wallet Authentication describes a method for linking a crypto domain with authentication methods or providers by adding an authenticator: JSON/URL field to the metadata of a crypto domain NFT. The standard also describes a method for application developers and web3 login modal providers to enable users to login with their domain name.
No reviews#275
Browser Wallet Discovery Interface
CAIP-282 defines a standardized interface for browser wallet discovery
No reviews#282
JSON-RPC Method for Revoking Session Authorizations
CAIP-285 introduces the `wallet_revokeSession` method for fully revoking the authorizations and properties of an active [CAIP-25][] session.
No reviews#285
Best Practices for using CAIP 2 - Blockchain ID Specification
Since being finalized, [CAIP-2] usage has expanded and has new caveats worth specifying publicly.
No reviews#288
Browser Wallet Messaging for Extensions
CAIP-294 defines a standardized messaging transport for browser extension wallets.
No reviews#294
Browser Wallet Messaging for Iframes
CAIP-295 defines a standardized messaging transport for browser iframe wallets.
No reviews#295
JSON-RPC Event for Session Authorization Updates
CAIP-311 introduces the `wallet_sessionChanged` event for notifying callers party to an active [CAIP-25][] session of updates to session authorizations made by users directly in the wallet.
No reviews#311
JSON-RPC Method for Retrieving Session Authorizations
CAIP-312 introduces the `wallet_getSession` method for retrieving authorizations from an active [CAIP-25][] initiated session.
No reviews#312
JSON-RPC Provider Session Lifecycle Management with CAIP-25 Sessions BCP
This overview compares new and old forms of [CAIP-25][] connection flow to ensure safe and well-informed implementation of either or both. [CAIP-311][] and [CAIP-312][] extended [CAIP-25][] by defining new JSON-RPC methods for managing the lifecycle of authorizations within a session. These methods allow dapps and wallets to dynamically adjust authorizations, providing more granular control and be
No reviews#316
Wallet Notification JSON-RPC Method
CAIP-319 defines a JSON-RPC method for a wallet to send notifications to a caller in a context authorized by or in a valid [scopeObject][CAIP-217] and, optionally, tagged with a [sessionId][CAIP-171] for maintaining session continuity if applicable.
No reviews#319
Extension ID Target Type Specification
CAIP-341 defines the Extension ID type as a valid target type for establishing connections with browser extension wallets via the [CAIP-294] `wallet_announce` wallet discovery event.
No reviews#341
Wallet Service URL property
<!--"If you can't explain it simply, you don't understand it well enough." Provide a simplified and layman-accessible explanation of the CAIP.--> Handling of wallet JSON-RPC requests by wallet-provided HTTP endpoint.
No reviews#345
Binary Serialization of Blockchain IDs and Addresses
This standard, when profiled down for each namespace, describes a unified and general purpose method for serializing chain-specified addresses into the Interoperable Address format specified in [ERC-7930].
No reviews#350
Universal Payment Request Method
A standard for enabling one-interaction cryptocurrency payment flows across wallets and dapps, allowing all payment information to be transmitted in a single round-trip.
No reviews#358
Chain ID Wildcard
This CAIP extends CAIP-2 and CAIP-10 by reserving the `_` character as a wildcard reference for "all chain IDs" within a CAIP-2 namespace. This enables wallets and applications to represent account identity across all chains of a given namespace. This CAIP makes no assumptions about how the address is derived or whether it is valid across all chains in the namespace. The use of `_` simply denotes
No reviews#363