Skip to content

Commit

Permalink
initial namespace outline - needs testcases and additional considerat…
Browse files Browse the repository at this point in the history
…ions
  • Loading branch information
bumblefudge committed Jul 16, 2024
1 parent 427eb1b commit 58ee5b5
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
24 changes: 24 additions & 0 deletions wallet/README.md
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/).
54 changes: 54 additions & 0 deletions wallet/caip2.md
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/)

0 comments on commit 58ee5b5

Please sign in to comment.