CAIP-311 primary sources

Collected: 2026-05-10 UTC

Primary sources reviewed

  • https://standards.chainagnostic.org/CAIPs/caip-311
    • Official CAIP draft page for wallet_sessionChanged
    • Key points used: status Draft; requires CAIP-25 / CAIP-217; defines a wallet-published notification for updated sessionScopes; recommends callers use wallet_getSession after missed events or severed connections; recommends domain-bound or other 1:1 transports plus optional sessionId binding
  • https://raw.githubusercontent.com/ChainAgnostic/CAIPs/master/CAIPs/caip-311.md
    • Raw source text from the canonical CAIPs repository
    • Used to confirm the exact notification name, optional sessionId, full-payload sessionScopes semantics, and the guidance to reconcile with wallet_getSession after interruption
  • https://raw.githubusercontent.com/ChainAgnostic/CAIPs/master/CAIPs/caip-25.md
    • Base wallet-session authorization standard that now explicitly references CAIP-311, CAIP-312, and CAIP-285 in its session lifecycle
    • Used to verify that wallet-side session updates are now part of the CAIP-25 lifecycle model rather than an implementation-specific add-on
  • https://standards.chainagnostic.org/CAIPs/caip-312
    • Companion retrieval method for current session state
    • Useful for understanding CAIP-311 as the push-based side of the same lifecycle, especially after reconnects or missed notifications
  • https://standards.chainagnostic.org/CAIPs/caip-316
    • Informational lifecycle-equivalence page comparing session flows with and without sessionId
    • Used to anchor CAIP-311 in the broader create / update / get / revoke lifecycle and to confirm the intended role of wallet_sessionChanged in single-session and sessionId-based flows
  • https://standards.chainagnostic.org/CAIPs/caip-217
    • Authorization-scope syntax standard used by CAIP-311 payloads
    • Used to confirm that the event’s sessionScopes object inherits the shared scope-object structure rather than inventing a new payload model
  • https://github.com/ChainAgnostic/CAIPs/pull/285/files
    • Lifecycle-method proposal diff thread linked from the draft as Discussions-To
    • Used as provenance showing CAIP-311 was introduced together with adjacent lifecycle management changes to CAIP-25

Notes

  • CAIP-311 is best framed as the wallet-driven update channel in the CAIP-25 session stack, not merely as another provider event.
  • The important control surface is who stays authoritative after connection establishment: the dapp’s cached session view, or the wallet’s live permission state.
  • CAIP-311 and CAIP-312 are analytically strongest as a pair: push updates when possible, then pull canonical state when connectivity or ordering becomes uncertain.