Wallet Namespace - RPC namespaces

Author Vandan Parikh, Bumblefudge
Discussions-To https://github.com/ChainAgnostic/namespaces/pull/119
Status Draft
Type Informational
Created 2024-07-16

For context, see the CAIP-2 specification.

Each chainId reference in the wallet: namespace is defined as the namespace identifier for another namespace.

This combination (i.e. wallet:eip155) refers not to an eip155 network but specifically to an application<>wallet connection defined according to the wallet and RPC conventions of the eip155 namespace.

Rationale

Implementers of CAIP-25 and other multichain application<>wallet connections have long struggled with how to map offchain or direct-to-wallet methods, notifications, and metadata to one another across namespaces, and how to safely and ergonomically segregate them from node-dependent/network-dependent functions. For this reason, an abstraction (in the form of a “meta-namespace” routing to the other namespaces) is here proposed.

Semantics

wallet:{namespace} is functionally an alias for {namespace}:wallet, where :wallet refers to a special-case of a wallet connection, not a proper network (as required by the CAIP-2 profile for eip155).

Syntax

The only valid values for a chainId reference in the wallet namespace are the namespace identifiers of other namespaces. For a current list of these, see namespaces.

Resolution Mechanics

All resolution is defined in the namespace referred to, and ideally specified in its /README.md file here. As resolution depends entirely on transport and connection mechanism, no uniform resolution mechanics should be assumed.

Test Cases

< TODO >

Additional Considerations

< TODO >

References

Copyright and related rights waived via CC0

Citation

Please cite this document as:

Vandan Parikh, Bumblefudge, "namespaces/wallet-caip2: Wallet Namespace - RPC namespaces [DRAFT]," Chain Agnostic Namespaces, wallet-caip2, July 2024 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/wallet-caip2.md