What CAIP-380 Defines
A standardized, chain-agnostic, wallet-signed envelope that applications validate once off-chain and reference anywhere via a deterministic proof receipt ID. In protocol terms, that receipt ID is carried asqHash.
- Identities: CAIP-10 (
did:pkh:<chainRef>:<address>) - Chains: CAIP-2 (e.g.
eip155:1,solana:mainnet) - Anchor:
qHash= SHAKE-256 over the Standard Subset. Reader-facing docs call this the proof receipt ID.
Envelope Structure
The Standard Subset includes:did— CAIP-10 account identifierverifierIds— Array of verifier IDsdata— Application payload (deterministic JSON)signedTimestamp— Unix epoch millisecondschainId(EVM) orchain(CAIP-2 for non-EVM)
Six-Line Signing Format
For manual or server-side signing, the message format is:POST /api/v1/verification/standardize and sign the returned signerString. Do not hand-author the message.
EVM vs Non-EVM
| Profile | Chain field | Signature |
|---|---|---|
| EVM | chainId (integer) | EIP-191, EIP-1271, EIP-6492 |
| Solana | chain (e.g. solana:mainnet) | Ed25519 |
| Other | chain (CAIP-2) | Profile-specific |
Freshness
Verifiers reject ifsignedTimestamp is older than 5 minutes or more than 60 seconds in the future.