-
Notifications
You must be signed in to change notification settings - Fork 66
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
initial namespace outline - needs testcases and additional considerat…
…ions
- Loading branch information
1 parent
427eb1b
commit 58ee5b5
Showing
2 changed files
with
78 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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/). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
--- | ||
namespace-identifier: wallet-caip2 | ||
title: Wallet Namespace - RPC namespaces | ||
author: ["Vandan Parikh (@vandan)", "bumblefudge (@bumblefudge)"] | ||
discussions-to: <URL of PR, mailing list, etc> | ||
status: Draft | ||
type: <Standard | Meta | Informational> | ||
created: <date created on, in ISO 8601 (yyyy-mm-dd) format> | ||
requires (*optional): <["CAIP-X", "CAIP-Y"]> | ||
replaces (*optional): <CAIP-Z> | ||
--- | ||
|
||
*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/) |