diff --git a/wallet/README.md b/wallet/README.md new file mode 100644 index 0000000..5919e33 --- /dev/null +++ b/wallet/README.md @@ -0,0 +1,24 @@ +--- +namespace-identifier: wallet +title: Wallet Namespace +author: ["Vandan Parikh (@vandan)", "bumblefudge (@bumblefudge)"] +status: Draft +type: Informational +created: 2024-07-16 +--- + +## Rationale + +The handling of direct communications channels between cryptographic user-agents (i.e., wallets) and applications vary widely across cryptographic systems. +Rather than being a true namespace defined outside of CASA, this "meta-namespace" informationally groups together the wallet sub-namespaces of other namespaces specified at CASA. +This "meta-namespace" is intended to facilitate an explicit segregation of connection mechanics, methods, and notifications for these channels from the very different mechanics, methods, and notifications used for application <> node purposes in each namespace. + +## Governance + +This namespace is purely formal and governed in CASA, and as such should only be used as a kind of "alias" or "passthrough" to each other namespace's application<>wallet mechanisms, governed accordingly in each namespace's native governance. +Contributors are discouraged from making any claims or specifying any behaviors not already specified in the referenced namespaces; +furthermore, contributers are encouraged to provide normative references when adding to the profiles for a given CAIP. + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). diff --git a/wallet/caip2.md b/wallet/caip2.md new file mode 100644 index 0000000..9b5f95e --- /dev/null +++ b/wallet/caip2.md @@ -0,0 +1,54 @@ +--- +namespace-identifier: wallet-caip2 +title: Wallet Namespace - RPC namespaces +author: ["Vandan Parikh (@vandan)", "bumblefudge (@bumblefudge)"] +discussions-to: +status: Draft +type: +created: +requires (*optional): <["CAIP-X", "CAIP-Y"]> +replaces (*optional): +--- + +*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 + +[CAIP-2]: https://chainagnostic.org/CAIPs/caip-2 +[CAIP-25]: https://chainagnostic.org/CAIPs/caip-25 +[namespaces]: https://namespaces.chainagnostic.org/ + +## Copyright + +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/)