Skip to content

Commit 8703b01

Browse files
author
bumblefudge
committed
More explicit semantics & pPrivacy consid cc @kdenhartog
1 parent 2016fa6 commit 8703b01

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

CAIPs/caip-211.md

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,22 @@ respondents agree to them already), others are specific to chains or even to
3232
subsets of wallets and dapps on a given chain. This requires scope objects in
3333
CAIP-25 requests to negotation semantic anchors and/or network routing
3434
**before** authorization can occur in the confidence that both parties agree to
35-
the syntax and semantics of a given chain or notification.
35+
the syntax and semantics of a given method or notification, which may only be
36+
available on certain RPC endpoints.
37+
38+
The concept of a custom RPC endpoint or definition presumes the existence of
39+
"default" or universal endpoints and definitions, which can be hard to anchor in
40+
explicit specifications unless a namespace profile of this CAIP has been
41+
published. (This may be unnecessary in the case of younger namespaces without
42+
customization built in at the per-chain or per-dapp layer). An empty array of
43+
`rpcEndpoints` or `rpcDocuments` sent in either direction should be interpreted
44+
differently than the absence of the array. Namely, either array being present
45+
but empty in a request signals that a caller is requesting that custom endpoints
46+
or definitions NOT be considered in CAIP-25 authorizations. Present but empty
47+
arrays in a response confirms this behavior, while its absence can be taken to
48+
mean the wallet either does not support custom endpoints/definitions or the user
49+
has opted out of that degree of trust, which for privacy/fingerprinting reasons,
50+
should not be handled by distinct codepaths (See Privacy Considerations).
3651

3752
## Specification
3853

@@ -164,10 +179,12 @@ Possible error messages (to be discussed with WG):
164179
- rpcDocuments not conformant syntactically (not openRPC, not served as mime type JSON, etc)
165180
166181
Are these error messages required at protocol level or are they implementation-specific?
167-
- rpcDocuments rejected by user input
182+
- ~~rpcDocuments rejected by user input OR wallet does not support custom RPC documents~~
183+
- ^ no response in either case
168184
- rpcDocuments rejected by policy/in principle
169185
- rpcDocuments unreachable/404
170-
- rpcEndpoints rejected by user input
186+
- ~~rpcEndpoints rejected by user input OR wallet does not support custom RPC documents~~
187+
- ^ no response in either case
171188
- rpcEndpoints rejected by policy/in principle
172189
- rpcEndpoints unreachable/404
173190
- rpcEndpoints URL malformed
@@ -212,6 +229,16 @@ Are these error messages required at protocol level or are they implementation-s
212229
213230
## Privacy Considerations
214231
232+
The trust model of custom RPC endpoints and/or definition documents is complex
233+
and reputation/discovery systems are still emerging on a per-chain basis in many
234+
ecosystems. For this reason, iterations of CAIP-25 should be considered a
235+
delicate negotiation best done progressively to avoid malicious dapps partially
236+
deanonymizing wallets by profiling their support for custom RPCs (i.e.
237+
overasking). For this reason, as with the initial CAIP-25 exchange, discovery
238+
requests rejected due to user input, due to security policy, and due to
239+
non-support at the wallet software level should not be distinguished as the RPC
240+
level.
241+
215242
##### TODO
216243
217244
## Changelog

0 commit comments

Comments
 (0)