From c3b3762adbc76597e7d1d1df149985955734bc6e Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Sun, 22 Oct 2023 16:43:33 +0100 Subject: [PATCH 01/37] Init cps wallet connectors --- cps-wallet-connector/README.md | 159 +++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 cps-wallet-connector/README.md diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md new file mode 100644 index 0000000000..970ffc1377 --- /dev/null +++ b/cps-wallet-connector/README.md @@ -0,0 +1,159 @@ +--- +CPS: ? +Title: Cardano Wallet Connectors +Status: Open +Category: Wallets +Authors: + - Ryan Williams +Proposed Solutions: [] +Discussions: + - https://github.com/cardano-foundation/cips/pulls/? +Created: 2023-07-28 +--- + +## Abstract + +Wallets are a foundational element of web 3, being the primary interface between users and blockchains. +Wallet-web bridges allow users to connect their wallet to web-based stacks, allowing a wide range of specialized experiences. + +Wallet web-bridge standards consist of two parts; connection standard and API. +With the connection standard defining how the wallet and dApp initiate communication, this could be over injected Javascript object, WebRTC, WebTorrent, etc. +The API defines what communications look like between the dApp and wallet post connection. + +This problem statement is concerned with the issues surrounding Cardano's current and future wallet-web bridges. +These interfaces are difficult to define and historically have been even harder to iterate upon. +We wish to provide a comprehensive catalog of the current offerings; and their drawbacks to be able to make suggestions on future standards. + +## Problem + + +The core motivation of this document is to catalog the current state of Cardano's wallet connectors, discuss their flaws and identify keys concerns for future connector authors to be aware of. +We hope that by discussing the issues we will inspire the next generation of Cardano wallet connectors so that the ecosystem can grow beyond it's first iterations. + +Ineffective dApp-connectors can cause a range of issues for wallets, dApp developers and thus users. +Due to the nature of these connections there can often be unforeseen impacts of small design decisions. + +For users, connectors should be widely supported across platforms, secure and decentralized. +For dApps, connectors should be expressive and extendable. +For wallets, connectors should be secure, extendable and should not expect wallet's to go beyond their standard activities. + +### Core Concerns + +#### 1. Secure connection +Security should remain of paramount concern within web 3. +Connection standards must strive to above all not compromise the security of wallets or dApps. +Connection standards should be aware of potential impacts of standard security vunrabilities, such as man-in-middle attacks. +Furthermore, standards should seek to be censorship resistant, by an ecosystem offering multiple connection standards we move in this direction. + +#### 2. Secure API +The security of the API itself should again remain paramount. +This means that no secret information should ever be allowed to leave the wallet. +Furthermore if an operation requires the wallet to use a secret, the user should always be made aware. + +#### 3. Range of supported connection +Connection standards should ideally support a wide range of wallets and dApp platforms. +For example, connection which are accessible via desktop or mobile devices should be prioritized more so than those which only support one platform. + +#### 4. Expressive API +APIs should allow for an expressive range of information to be exchanged. +Generally communication should be allowed two ways. + +#### 5. Versioned +Connection standards and APIs should be explicitly versioned. +Furthermore, ideally APIs should allow for optional extendability to facilitate specialization. +Clear scope of versions / extensions. + +#### 6. Preserve role of wallet +APIs should be written to have a clear scope, understanding the potential strains placed on wallet providers. +APIs, at a base level, should focus on preserving the base role of the wallet of controlling cryptographic operations. + +### Context +// todo + +Here we will add context to the current state of Cardano's wallet connectors. + +#### Cardano Wallet-Web Bridge history +- Lack of ecosystem cohesion around Role of the Wallet +- Reactive standard following other ecosystems +- Combination of connection and API in one standard +- CIP-30 +- CIP-13 URI schemes +- CIP-45 +- CIP-90 +- CIP-95 +- CIP-103 +- CIP-104 -- impact of sharing account public key? + +#### Historical Issues +- CIP-30 - Limited scope +- CIP-30 - Lack of versioning +- CIP-30 - injected object limiting +- Lack of ecosystem focus, wallet expected to do a lot +- Look at the issues on Github + +#### Solutions +- CIP-30 - extendibility mechanism +- CIP-30 - not changing anymore + +## Use cases + + +### NFT Marketplace +Alice wishes to buy a NFT from an smart contract based NFT marketplace for an agreed price because she wishes to support the artist. +Alice wants to be able to use a familiar website interface where she can browse rendered NFTs then select and buy on the same site. + +Without the dApp and her wallet communicating it is very difficult to construct the needed transaction to buy the NFT Alice wants. + +### Simple Wallet Login +Bob wants to use his wallet to login to a website. +The website requires that Bob presents both; his public credentials and also prove his ownership of them. + +It is difficult for Bob to produce and share proof of ownership for public credentials in a secure way without the dApp and wallet communicating. + +### dApp Developer +Carol is a dApp developer, who wants many users to be able interact with her dApp via web interface. +She wants to be able to support a wide range of wallets and platforms to maximize potential user base. +Whilst she wants the API standards to be expressive so that her dApp is able to offer a range of functionality. + +### Wallet provider +Dave has created a wallet, he wants to minimize the cost of running his wallet. + +Without clear role of the wallet, and optional API extension scoping Dave's infrastructure may be asked to do many operations incurring cost. + +## Goals + +### Clear Role of Wallet +Whilst most wallet softwares generally offer a users a range of features, at their core all wallets are primarily concerned with the management of cryptographic operations. +The majority of wallets build on this by using a chain indexer, so information related to the wallets crypto credentials can be gathered and presented to users. +Any operation beyond core cryptographic functions should be considered to be optionally extra by wallets and thus not included in base connector standards. + +### Strive for interoperable and extensible APIs +Design APIs which are interoperable between connection standards and wallet types. +Design APIs which are optionally extensible, allowing for creation of specialized connections. +Aim to use the CIP process. + +### Prioritize Security +Clearly identify and articulate known potential security concerns. +Utilize the collective knowledge of CIPs and open source development. + +## Open Questions + + +// todo + +### Can a universal connector be pursued? +- many types of wallet +- many types of platform +- Should / can a universal connector be pursued whilst maintaining other properties + +### Can a universal API be pursued? +- should we pursue fully connection standard agnostic APIs? +- or should some connection types only support some APIs? + +### How interoperable can standards be with those of other ecosystems? +- What are the priorities for this ecosystem? +- other than Cardano crypto \ No newline at end of file From b705f181dc6fb56727125090dc43e5e16bebed6f Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Thu, 16 Nov 2023 23:11:12 +0000 Subject: [PATCH 02/37] planned conext section --- cps-wallet-connector/README.md | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index 970ffc1377..dccabd714a 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -7,7 +7,7 @@ Authors: - Ryan Williams Proposed Solutions: [] Discussions: - - https://github.com/cardano-foundation/cips/pulls/? + - https://github.com/cardano-foundation/cips/pulls/619 Created: 2023-07-28 --- @@ -42,7 +42,7 @@ For wallets, connectors should be secure, extendable and should not expect walle #### 1. Secure connection Security should remain of paramount concern within web 3. Connection standards must strive to above all not compromise the security of wallets or dApps. -Connection standards should be aware of potential impacts of standard security vunrabilities, such as man-in-middle attacks. +Connection standards should be aware of potential impacts of standard security vulnerabilities, such as man-in-middle attacks. Furthermore, standards should seek to be censorship resistant, by an ecosystem offering multiple connection standards we move in this direction. #### 2. Secure API @@ -59,7 +59,7 @@ APIs should allow for an expressive range of information to be exchanged. Generally communication should be allowed two ways. #### 5. Versioned -Connection standards and APIs should be explicitly versioned. +Connection standards and APIs should be explicitly versioned to clearly allow upgrades. Furthermore, ideally APIs should allow for optional extendability to facilitate specialization. Clear scope of versions / extensions. @@ -72,19 +72,32 @@ APIs, at a base level, should focus on preserving the base role of the wallet of Here we will add context to the current state of Cardano's wallet connectors. -#### Cardano Wallet-Web Bridge history -- Lack of ecosystem cohesion around Role of the Wallet -- Reactive standard following other ecosystems -- Combination of connection and API in one standard -- CIP-30 -- CIP-13 URI schemes +#### Cardano Wallet-Web Bridge History +[CIP-30](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md) is *the* fundamental wallet connector standard for Cardano. +This standard has facilitated the emergence of dApp development on Cardano by defining both a connection standard and an API. +It is, to date, the only wallet connector standard to see wide adoption in the ecosystem. +Using an injected Javascript object for communication between wallets and web-based stacks. + +Since its' authoring CIP-30 has seen continued iteration, with changes to its API common. + +- CIP-13 +- CIP-45 +- CIP-90 + +##### CIP-30 Alternatives - CIP-45 - CIP-90 + +##### CIP-30 Extensions +- CIP-62 - CIP-95 - CIP-103 - CIP-104 -- impact of sharing account public key? #### Historical Issues +- Lack of ecosystem cohesion around Role of the Wallet +- Reactive standard following other ecosystems +- Combination of connection and API in one standard - CIP-30 - Limited scope - CIP-30 - Lack of versioning - CIP-30 - injected object limiting From 74318339dc630dd59239c401264e00926c8a7f9d Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Wed, 22 Nov 2023 15:25:40 +0000 Subject: [PATCH 03/37] edits --- cps-wallet-connector/README.md | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index dccabd714a..25472fff46 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -12,7 +12,6 @@ Created: 2023-07-28 --- ## Abstract - Wallets are a foundational element of web 3, being the primary interface between users and blockchains. Wallet-web bridges allow users to connect their wallet to web-based stacks, allowing a wide range of specialized experiences. @@ -63,13 +62,11 @@ Connection standards and APIs should be explicitly versioned to clearly allow up Furthermore, ideally APIs should allow for optional extendability to facilitate specialization. Clear scope of versions / extensions. -#### 6. Preserve role of wallet +#### 6. Respect the role of wallet APIs should be written to have a clear scope, understanding the potential strains placed on wallet providers. -APIs, at a base level, should focus on preserving the base role of the wallet of controlling cryptographic operations. +APIs, at a base level, should focus on preserving the base [role of the wallet](#clear-role-of-wallet). ### Context -// todo - Here we will add context to the current state of Cardano's wallet connectors. #### Cardano Wallet-Web Bridge History @@ -77,16 +74,14 @@ Here we will add context to the current state of Cardano's wallet connectors. This standard has facilitated the emergence of dApp development on Cardano by defining both a connection standard and an API. It is, to date, the only wallet connector standard to see wide adoption in the ecosystem. Using an injected Javascript object for communication between wallets and web-based stacks. - -Since its' authoring CIP-30 has seen continued iteration, with changes to its API common. - -- CIP-13 -- CIP-45 -- CIP-90 +Since its' authoring CIP-30 has seen continued iteration, with changes to its API. ##### CIP-30 Alternatives -- CIP-45 -- CIP-90 +Since CIP-30's authoring there have only been two other competing standards, in CIP-45 | Decentralized WebRTC dApp-Wallet Communication ([#395](https://github.com/cardano-foundation/CIPs/pull/395)) and CIP-90 | Extendable dApp-Wallet Web Bridge ([#462](https://github.com/cardano-foundation/CIPs/pull/462/)). +Although neither of of this standards have seen wide adoption. + +Although not a direct competitor, CIP-13 could be seen as an alternative standard. +This standard ##### CIP-30 Extensions - CIP-62 From 2cb8d426e28c64c9fc932d99c4233b40064aa5ac Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Mon, 27 Nov 2023 23:18:37 +0000 Subject: [PATCH 04/37] Add in achknowledgements section from first workshop --- cps-wallet-connector/README.md | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index 25472fff46..445f09c11e 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -23,6 +23,41 @@ This problem statement is concerned with the issues surrounding Cardano's curren These interfaces are difficult to define and historically have been even harder to iterate upon. We wish to provide a comprehensive catalog of the current offerings; and their drawbacks to be able to make suggestions on future standards. +### Acknowledgments + +
+ First workshop - 2023-11-27 + + I would like to thank those that contributed to the first workshop hosted by Adam Dean and Ryan Williams. + - George Flerovsky + - Beatrice Anihiri + - Denis Kalinin + - Evgenii Lisitskii + - George APEX Pool + - George Humphreys + - Hernán Rajchert + - Jack Rousian + - Joshua Marchand + - Ken Fritschy + - Ken-Erik Ølmheim + - Leo H + - Marcel Baumberg + - Martynas Kazlaukas + - Michael Chappell + - Mircea Hasegan + - Nicolas Ayotte + - Rhys Bartels-Wallet + - Robert Phair + - Rodolpho Ribeiro + - Steven Johnson + - Teodora Sevastru Lunn + - Thomas Lindseth + - Thomas Upfield + - Vladimir Kalnitsky + +
+ + ## Problem From 44ac6c4546c694ba7be74c9633695bf1043ceac0 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Tue, 28 Nov 2023 09:30:13 +0000 Subject: [PATCH 05/37] Update cps-wallet-connector/README.md Co-authored-by: Robert Phair --- cps-wallet-connector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index 445f09c11e..f9b7ace2a2 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -46,7 +46,7 @@ We wish to provide a comprehensive catalog of the current offerings; and their d - Michael Chappell - Mircea Hasegan - Nicolas Ayotte - - Rhys Bartels-Wallet + - Rhys Bartels-Waller - Robert Phair - Rodolpho Ribeiro - Steven Johnson From 7f4ac49cea9432bb5bf92ee8609baa75b5938752 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Tue, 28 Nov 2023 14:25:13 +0000 Subject: [PATCH 06/37] add notes from first workshop --- cps-wallet-connector/README.md | 35 ++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index f9b7ace2a2..d5aa9d10a5 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -28,12 +28,12 @@ We wish to provide a comprehensive catalog of the current offerings; and their d
First workshop - 2023-11-27 - I would like to thank those that contributed to the first workshop hosted by Adam Dean and Ryan Williams. - - George Flerovsky + I would like to thank those that contributed to the first workshop hosted by Adam Dean and Ryan Williams ([see presentation slides with notes](https://docs.google.com/presentation/d/1lXw1yMf-Hyp1eVfaFnbTV9897r6pZEd6zpvLNMqT3cI/)). - Beatrice Anihiri - Denis Kalinin - Evgenii Lisitskii - George APEX Pool + - George Flerovsky - George Humphreys - Hernán Rajchert - Jack Rousian @@ -96,6 +96,7 @@ Generally communication should be allowed two ways. Connection standards and APIs should be explicitly versioned to clearly allow upgrades. Furthermore, ideally APIs should allow for optional extendability to facilitate specialization. Clear scope of versions / extensions. +- Should consider tiers of wallet - can be tricky to see adoption for dApps, dApss prefer lowest denominator. #### 6. Respect the role of wallet APIs should be written to have a clear scope, understanding the potential strains placed on wallet providers. @@ -126,13 +127,11 @@ This standard #### Historical Issues - Lack of ecosystem cohesion around Role of the Wallet -- Reactive standard following other ecosystems - Combination of connection and API in one standard -- CIP-30 - Limited scope -- CIP-30 - Lack of versioning -- CIP-30 - injected object limiting -- Lack of ecosystem focus, wallet expected to do a lot -- Look at the issues on Github +- Lack of ecosystem focus, wallet expected to do a lot -> not clearly defined what the role is +- Encouraged emulated wallets +- Typescript APIs limiting +- No way for dApp to subscribe to wallet events #### Solutions - CIP-30 - extendibility mechanism @@ -174,6 +173,26 @@ Whilst most wallet softwares generally offer a users a range of features, at the The majority of wallets build on this by using a chain indexer, so information related to the wallets crypto credentials can be gathered and presented to users. Any operation beyond core cryptographic functions should be considered to be optionally extra by wallets and thus not included in base connector standards. +#### Types of Wallet +No-data - just base crypto (i.e. HWWs) +- places all management of UTxOs on dApps (could be applied for Voltaire - just approve votes, not care about UTxOs) +- Could just share root public key -> so dApp discovers addresses +- All wallets! - the most inclusive. Is interesting for future applications. +- Embedded wallets? +- script wallets? +- Can just be library +Own-data - knows about it’s own data (used addresses, utxos, etc.) +- Two sources of truth problem (CIP30) +- Hard to draw the lines between these +Full-data - can index chain for any information +- (Could add expense to wallet providers) +- dApps can ask wallet for any chain info +- Single source of truth +- Gives users the ability to choose source of truth +- Adam; User able to bring their own data - running local node etc. +- Data API to be out of scope for this CPS. +- Probably not historical state, but certainly ledger state + ### Strive for interoperable and extensible APIs Design APIs which are interoperable between connection standards and wallet types. Design APIs which are optionally extensible, allowing for creation of specialized connections. From a1f03fbcaca52a1ee52dd3b8b5abcfbf6c769c49 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Wed, 29 Nov 2023 08:31:17 +0000 Subject: [PATCH 07/37] Update cps-wallet-connector/README.md Co-authored-by: Robert Phair --- cps-wallet-connector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index d5aa9d10a5..7e12aaf5e8 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -1,6 +1,6 @@ --- CPS: ? -Title: Cardano Wallet Connectors +Title: Wallet Connectors Status: Open Category: Wallets Authors: From 9d961b64e889a75442edec0bcba262357af0afe1 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Wed, 29 Nov 2023 08:31:24 +0000 Subject: [PATCH 08/37] Update cps-wallet-connector/README.md Co-authored-by: Robert Phair --- cps-wallet-connector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index 7e12aaf5e8..dad6520eee 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -1,5 +1,5 @@ --- -CPS: ? +CPS: 10 Title: Wallet Connectors Status: Open Category: Wallets From 1ef2a339d59bbce473e4c16d8677aa66eca4d09d Mon Sep 17 00:00:00 2001 From: Vladimir Kalnitsky Date: Wed, 29 Nov 2023 23:38:42 +0400 Subject: [PATCH 09/37] Expand definitions of three wallet types --- cps-wallet-connector/README.md | 48 ++++++++++++++---- .../full-data-wallet.drawio.png | Bin 0 -> 103600 bytes .../no-data-wallet.drawio.png | Bin 0 -> 110037 bytes .../own-data-wallet.drawio.png | Bin 0 -> 120296 bytes 4 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 cps-wallet-connector/full-data-wallet.drawio.png create mode 100644 cps-wallet-connector/no-data-wallet.drawio.png create mode 100644 cps-wallet-connector/own-data-wallet.drawio.png diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index dad6520eee..0b62329e88 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -173,23 +173,53 @@ Whilst most wallet softwares generally offer a users a range of features, at the The majority of wallets build on this by using a chain indexer, so information related to the wallets crypto credentials can be gathered and presented to users. Any operation beyond core cryptographic functions should be considered to be optionally extra by wallets and thus not included in base connector standards. -#### Types of Wallet -No-data - just base crypto (i.e. HWWs) -- places all management of UTxOs on dApps (could be applied for Voltaire - just approve votes, not care about UTxOs) +#### Types of Wallet by Query Layer configuration + +All wallet standards can be divided into three groups based on a single criterion: what data they provide to dApps via the API endpoint. + +This division is important because each of the groups allows for different dApp architectures. + +Note that the groups are nested: every wallet is a no-data wallet and every full-data wallet is also an own-data wallet. + +##### No-data wallets + +No-data wallets do not provide data queries and are only concerned with cryptographic operations (e.g. hardware wallets). +All management of UTxOs is placed on dApps side. +No-data wallets can use multiple addresses, but they do not allow to query for available UTxOs and do not indicate which of the addresses are actually used on-chain. + +This design ensures that they can function without a query layer and thus without runtime infrastructure needed. + +![diagram showing wallet and dApp architecture for no-data wallets](./no-data-wallet.drawio.png) + - Could just share root public key -> so dApp discovers addresses - All wallets! - the most inclusive. Is interesting for future applications. - Embedded wallets? - script wallets? - Can just be library -Own-data - knows about it’s own data (used addresses, utxos, etc.) + +##### Own-data wallets + +Own-data wallets provide chain queries related to users' own data and wallet state (users' addresses and utxos). +CIP-30 falls into this category. + +![diagram showing possible wallet and dApp architecture for own-data wallets](./own-data-wallet.drawio.png) + - Two sources of truth problem (CIP30) - Hard to draw the lines between these -Full-data - can index chain for any information + +##### Full-data wallets + +Full-data wallets allow to query blockchain data outside of user's scope (i.e. anything not covered by own-data wallets). + +Depending on dApp needs, full-data wallets open a way to implement fully-functional dApps that use non-local blockchain data without the need for the developer to maintain dApp backend infrastructure. + +![diagram showing possible wallet and dApp architecture for full-data wallets](./full-data-wallet.drawio.png) + - (Could add expense to wallet providers) -- dApps can ask wallet for any chain info -- Single source of truth -- Gives users the ability to choose source of truth -- Adam; User able to bring their own data - running local node etc. +- dApps can ask wallet for chain info outside of scope of user's addresses +- Enables "single source of truth" architecture: no need to work around data inconsistency between two query layers +- Gives dApp developers the ability to choose source of truth +- May allow users to bring their own data - e.g. running local node, thus alleviating the need to trust the wallet backend - Data API to be out of scope for this CPS. - Probably not historical state, but certainly ledger state diff --git a/cps-wallet-connector/full-data-wallet.drawio.png b/cps-wallet-connector/full-data-wallet.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d8e116e3291ac053041098d0dc6e4605b06f2c GIT binary patch literal 103600 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

=S;i?-2ENF4~ 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

PLmpiid&V#9bX??z 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 literal 0 HcmV?d00001 From 6fdf519fb2bb2015cbf153679eac92e717997a34 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 1 Dec 2023 18:00:16 +0000 Subject: [PATCH 10/37] Update cps-wallet-connector/README.md Co-authored-by: Vladimir Kalnitsky --- cps-wallet-connector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index dad6520eee..27985fbbcb 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -68,7 +68,7 @@ Ineffective dApp-connectors can cause a range of issues for wallets, dApp develo Due to the nature of these connections there can often be unforeseen impacts of small design decisions. For users, connectors should be widely supported across platforms, secure and decentralized. -For dApps, connectors should be expressive and extendable. +For dApps, connectors should be reliable, provide stable and rich APIs. For wallets, connectors should be secure, extendable and should not expect wallet's to go beyond their standard activities. ### Core Concerns From 376448e467385e1878278c68b95cae6cd1abbea7 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 1 Dec 2023 18:00:30 +0000 Subject: [PATCH 11/37] Update cps-wallet-connector/README.md Co-authored-by: Vladimir Kalnitsky --- cps-wallet-connector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index 27985fbbcb..6e17e23529 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -12,7 +12,7 @@ Created: 2023-07-28 --- ## Abstract -Wallets are a foundational element of web 3, being the primary interface between users and blockchains. +Wallets are a foundational element of Web3, being the primary interface between users and blockchains. Wallet-web bridges allow users to connect their wallet to web-based stacks, allowing a wide range of specialized experiences. Wallet web-bridge standards consist of two parts; connection standard and API. From 1a5a445f41bfed05c76169c366638a1356772197 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 1 Dec 2023 18:01:51 +0000 Subject: [PATCH 12/37] Update cps-wallet-connector/README.md Co-authored-by: Vladimir Kalnitsky --- cps-wallet-connector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index 6e17e23529..f062b3dd9e 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -16,7 +16,7 @@ Wallets are a foundational element of Web3, being the primary interface between Wallet-web bridges allow users to connect their wallet to web-based stacks, allowing a wide range of specialized experiences. Wallet web-bridge standards consist of two parts; connection standard and API. -With the connection standard defining how the wallet and dApp initiate communication, this could be over injected Javascript object, WebRTC, WebTorrent, etc. +With the connection standard defining how the wallet and dApp initiate communication, for example it could be over injected Javascript object. The API defines what communications look like between the dApp and wallet post connection. This problem statement is concerned with the issues surrounding Cardano's current and future wallet-web bridges. From 0115bfa6615be71a48a160aba098d3b2ff9f07e1 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 1 Dec 2023 18:02:03 +0000 Subject: [PATCH 13/37] Update cps-wallet-connector/README.md Co-authored-by: Vladimir Kalnitsky --- cps-wallet-connector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index f062b3dd9e..584bb5ccb0 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -74,7 +74,7 @@ For wallets, connectors should be secure, extendable and should not expect walle ### Core Concerns #### 1. Secure connection -Security should remain of paramount concern within web 3. +Security should remain of paramount concern within Web3. Connection standards must strive to above all not compromise the security of wallets or dApps. Connection standards should be aware of potential impacts of standard security vulnerabilities, such as man-in-middle attacks. Furthermore, standards should seek to be censorship resistant, by an ecosystem offering multiple connection standards we move in this direction. From d31c47a59cf1234dcdc6c4d611945b64906db370 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Sat, 2 Dec 2023 12:05:46 +0000 Subject: [PATCH 14/37] Update cps-wallet-connector/README.md Co-authored-by: Vladimir Kalnitsky --- cps-wallet-connector/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps-wallet-connector/README.md b/cps-wallet-connector/README.md index 584bb5ccb0..a14c23c795 100644 --- a/cps-wallet-connector/README.md +++ b/cps-wallet-connector/README.md @@ -86,7 +86,7 @@ Furthermore if an operation requires the wallet to use a secret, the user should #### 3. Range of supported connection Connection standards should ideally support a wide range of wallets and dApp platforms. -For example, connection which are accessible via desktop or mobile devices should be prioritized more so than those which only support one platform. +This means we shouldn't assume software environment (e.g. JavaScript in the browser) and define the APIs using schema languages widely used in language-agnostic contexts. #### 4. Expressive API APIs should allow for an expressive range of information to be exchanged. From baca651a170770b9981bb206544eb8e8fd396cc7 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Sun, 3 Dec 2023 18:47:10 +0000 Subject: [PATCH 15/37] rename folder to match CPS-10 naming --- {cps-wallet-connector => CPS-0010}/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {cps-wallet-connector => CPS-0010}/README.md (100%) diff --git a/cps-wallet-connector/README.md b/CPS-0010/README.md similarity index 100% rename from cps-wallet-connector/README.md rename to CPS-0010/README.md From 0e8fb738838b4187269860f37d185395b11f144b Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Sun, 3 Dec 2023 20:05:07 +0000 Subject: [PATCH 16/37] grammar fixes --- CPS-0010/README.md | 47 +++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index a14c23c795..3c2335e663 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -13,15 +13,15 @@ Created: 2023-07-28 ## Abstract Wallets are a foundational element of Web3, being the primary interface between users and blockchains. -Wallet-web bridges allow users to connect their wallet to web-based stacks, allowing a wide range of specialized experiences. +Wallet connectors allow users to connect their wallet to web-based stacks, allowing a wide range of specialized experiences. -Wallet web-bridge standards consist of two parts; connection standard and API. -With the connection standard defining how the wallet and dApp initiate communication, for example it could be over injected Javascript object. +Wallet connector standards consist of two parts; connection standard and API. +With the connection standard defining how the wallet and dApp initiate communication, for example using an injected Javascript object. The API defines what communications look like between the dApp and wallet post connection. -This problem statement is concerned with the issues surrounding Cardano's current and future wallet-web bridges. +This problem statement is concerned with the issues surrounding Cardano's current and future wallet connectors. These interfaces are difficult to define and historically have been even harder to iterate upon. -We wish to provide a comprehensive catalog of the current offerings; and their drawbacks to be able to make suggestions on future standards. +We wish to provide a comprehensive catalogue of the current offerings and their drawbacks to be able to make suggestions on future standards. ### Acknowledgments @@ -61,40 +61,42 @@ We wish to provide a comprehensive catalog of the current offerings; and their d ## Problem -The core motivation of this document is to catalog the current state of Cardano's wallet connectors, discuss their flaws and identify keys concerns for future connector authors to be aware of. -We hope that by discussing the issues we will inspire the next generation of Cardano wallet connectors so that the ecosystem can grow beyond it's first iterations. +The core motivation of this document is to outline the current state of Cardano's wallet connectors, discuss their flaws, and identify key concerns for future connector authors to be aware of. +We hope that by discussing the issues, we will inspire the next generation of Cardano wallet connectors so that the ecosystem can grow beyond its first connector iterations. -Ineffective dApp-connectors can cause a range of issues for wallets, dApp developers and thus users. -Due to the nature of these connections there can often be unforeseen impacts of small design decisions. +Ineffective connectors can cause a range of issues for wallets, dApp developers, and thus users. +Due to the nature of these connections, there can often be unforeseen impacts of small design decisions. -For users, connectors should be widely supported across platforms, secure and decentralized. -For dApps, connectors should be reliable, provide stable and rich APIs. -For wallets, connectors should be secure, extendable and should not expect wallet's to go beyond their standard activities. +For users, connectors should offer secure and reliable compatibility with a wide range of dApps. +For dApps, connectors should be reliable, provide stable and rich APIs +For wallets, connectors should be secure and extendable, and you should not expect wallets to go beyond their standard activities. ### Core Concerns #### 1. Secure connection Security should remain of paramount concern within Web3. -Connection standards must strive to above all not compromise the security of wallets or dApps. -Connection standards should be aware of potential impacts of standard security vulnerabilities, such as man-in-middle attacks. -Furthermore, standards should seek to be censorship resistant, by an ecosystem offering multiple connection standards we move in this direction. +Connection standards must strive to, above all, not compromise the security of wallets or dApps. +Connection standards should be aware of the potential impacts of standard security vulnerabilities, such as man-in-the-middle attacks. +Furthermore, standards should seek to be censorship-resistant, and by offering an ecosystem of multiple connection standards, we move in this direction. #### 2. Secure API The security of the API itself should again remain paramount. This means that no secret information should ever be allowed to leave the wallet. -Furthermore if an operation requires the wallet to use a secret, the user should always be made aware. +Furthermore, if an operation requires the wallet to use a secret, the user should always be made aware. + +// question: telling wallets what to show users the place of the connector? #### 3. Range of supported connection Connection standards should ideally support a wide range of wallets and dApp platforms. -This means we shouldn't assume software environment (e.g. JavaScript in the browser) and define the APIs using schema languages widely used in language-agnostic contexts. +This means we shouldn't assume a software environment (e.g., JavaScript in the browser) and define the APIs using schema languages widely used in language-agnostic contexts. #### 4. Expressive API APIs should allow for an expressive range of information to be exchanged. -Generally communication should be allowed two ways. +Communication should be expressive in both directions. #### 5. Versioned Connection standards and APIs should be explicitly versioned to clearly allow upgrades. -Furthermore, ideally APIs should allow for optional extendability to facilitate specialization. +Furthermore, ideally, APIs should allow for optional extendability to facilitate specialization. Clear scope of versions / extensions. - Should consider tiers of wallet - can be tricky to see adoption for dApps, dApss prefer lowest denominator. @@ -103,14 +105,13 @@ APIs should be written to have a clear scope, understanding the potential strain APIs, at a base level, should focus on preserving the base [role of the wallet](#clear-role-of-wallet). ### Context -Here we will add context to the current state of Cardano's wallet connectors. -#### Cardano Wallet-Web Bridge History +#### Cardano Connector History [CIP-30](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md) is *the* fundamental wallet connector standard for Cardano. This standard has facilitated the emergence of dApp development on Cardano by defining both a connection standard and an API. It is, to date, the only wallet connector standard to see wide adoption in the ecosystem. -Using an injected Javascript object for communication between wallets and web-based stacks. -Since its' authoring CIP-30 has seen continued iteration, with changes to its API. +Using an injected Javascript object for communication between wallets and web-based stacks +Since its' authoring, CIP-30 has seen continued iteration with changes to its API. ##### CIP-30 Alternatives Since CIP-30's authoring there have only been two other competing standards, in CIP-45 | Decentralized WebRTC dApp-Wallet Communication ([#395](https://github.com/cardano-foundation/CIPs/pull/395)) and CIP-90 | Extendable dApp-Wallet Web Bridge ([#462](https://github.com/cardano-foundation/CIPs/pull/462/)). From 7b85a7829102f6cace7c14154964a12ebdfc3a68 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Mon, 4 Dec 2023 10:19:55 +0000 Subject: [PATCH 17/37] detials and responding to comments --- CPS-0010/README.md | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 3c2335e663..59f7feac66 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -77,7 +77,6 @@ For wallets, connectors should be secure and extendable, and you should not expe Security should remain of paramount concern within Web3. Connection standards must strive to, above all, not compromise the security of wallets or dApps. Connection standards should be aware of the potential impacts of standard security vulnerabilities, such as man-in-the-middle attacks. -Furthermore, standards should seek to be censorship-resistant, and by offering an ecosystem of multiple connection standards, we move in this direction. #### 2. Secure API The security of the API itself should again remain paramount. @@ -93,6 +92,7 @@ This means we shouldn't assume a software environment (e.g., JavaScript in the b #### 4. Expressive API APIs should allow for an expressive range of information to be exchanged. Communication should be expressive in both directions. +APIs should be language agnostic. #### 5. Versioned Connection standards and APIs should be explicitly versioned to clearly allow upgrades. @@ -117,8 +117,7 @@ Since its' authoring, CIP-30 has seen continued iteration with changes to its AP Since CIP-30's authoring there have only been two other competing standards, in CIP-45 | Decentralized WebRTC dApp-Wallet Communication ([#395](https://github.com/cardano-foundation/CIPs/pull/395)) and CIP-90 | Extendable dApp-Wallet Web Bridge ([#462](https://github.com/cardano-foundation/CIPs/pull/462/)). Although neither of of this standards have seen wide adoption. -Although not a direct competitor, CIP-13 could be seen as an alternative standard. -This standard +Although not a direct competitor, CIP-13 could be seen as an alternative standard, which fits some wallet connection niches. ##### CIP-30 Extensions - CIP-62 @@ -170,21 +169,43 @@ Goals may also contain requirements for the project. For example, they may inclu Finally, goals may also serve as evaluation metrics to assess how good a proposed solution is. --> ### Clear Role of Wallet -Whilst most wallet softwares generally offer a users a range of features, at their core all wallets are primarily concerned with the management of cryptographic operations. +Whilst most wallet softwares generally offer a users a range of features, at their core all wallets are concerned with the management of cryptographic operations. The majority of wallets build on this by using a chain indexer, so information related to the wallets crypto credentials can be gathered and presented to users. -Any operation beyond core cryptographic functions should be considered to be optionally extra by wallets and thus not included in base connector standards. +Any operation beyond core cryptographic functions should be considered to be optionally extra by wallets. + +By only expecting wallet to support cryptographic operations we define a universal rule for all wallet connectors. +This means at a minimum all dApps can expect from wallets during connection is cryptographic operations. +Although, dApps should be able to request additional functionalities on connection if they wish. + +This does not mean that all connections must support cryptographic operations. + +#### Types of Connection +Forwarding the idea of minimal expected functionality, we define three types of wallet-connection and what is expected to be their roles within connection. + +##### No-Data +A no-data wallet is the bare minimum type of wallet, which is only able to perform basic cryptographic operations i.e. hardware wallets. + +No-data core-cryptographic functions using Ed25519 keys: +- Generate and share public keys +- Sign with secret keys + +These connections would rely on dApps to derive addresses, find UTxOs and build transactions. + +We intend to impose the smallest set of minimum expected functionality. +By keeping the bar to entry low for wallet implementors we aim to be as inclusive as possible. -#### Types of Wallet -No-data - just base crypto (i.e. HWWs) -- places all management of UTxOs on dApps (could be applied for Voltaire - just approve votes, not care about UTxOs) -- Could just share root public key -> so dApp discovers addresses -- All wallets! - the most inclusive. Is interesting for future applications. - Embedded wallets? - script wallets? - Can just be library + +##### Own-Data +A own-data wallet + Own-data - knows about it’s own data (used addresses, utxos, etc.) - Two sources of truth problem (CIP30) - Hard to draw the lines between these + +##### Full-Data Full-data - can index chain for any information - (Could add expense to wallet providers) - dApps can ask wallet for any chain info From 8f6caec2219e26d6107625a7eea1a349772e3f2e Mon Sep 17 00:00:00 2001 From: Vladimir Kalnitsky Date: Tue, 5 Dec 2023 15:06:58 +0400 Subject: [PATCH 18/37] UI is not the concern of the connector --- CPS-0010/README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 0864182cb1..2ff052905f 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -81,9 +81,6 @@ Connection standards should be aware of the potential impacts of standard securi #### 2. Secure API The security of the API itself should again remain paramount. This means that no secret information should ever be allowed to leave the wallet. -Furthermore, if an operation requires the wallet to use a secret, the user should always be made aware. - -// question: telling wallets what to show users the place of the connector? #### 3. Range of supported connection Connection standards should ideally support a wide range of wallets and dApp platforms. From dccbbc47eb43c0e583c778c56f98a61f733a55fc Mon Sep 17 00:00:00 2001 From: Vladimir Kalnitsky Date: Tue, 5 Dec 2023 15:07:14 +0400 Subject: [PATCH 19/37] Add myself to the list of authors --- CPS-0010/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 2ff052905f..6ab2f95c97 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -5,6 +5,7 @@ Status: Open Category: Wallets Authors: - Ryan Williams + - Vladimir Kalnitsky Proposed Solutions: [] Discussions: - https://github.com/cardano-foundation/cips/pulls/619 From d74a50eff5253e8ca0954a11e7c7f4c58c34ef95 Mon Sep 17 00:00:00 2001 From: Vladimir Kalnitsky Date: Tue, 5 Dec 2023 15:38:42 +0400 Subject: [PATCH 20/37] Fix duplication --- CPS-0010/README.md | 57 +++++++++++++--------------------------------- 1 file changed, 16 insertions(+), 41 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 6ab2f95c97..9e09be78f8 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -95,8 +95,7 @@ APIs should be language agnostic. #### 5. Versioned Connection standards and APIs should be explicitly versioned to clearly allow upgrades. Furthermore, ideally, APIs should allow for optional extendability to facilitate specialization. -Clear scope of versions / extensions. -- Should consider tiers of wallet - can be tricky to see adoption for dApps, dApss prefer lowest denominator. +Versions and extensions should have clearly defined scopes. #### 6. Respect the role of wallet APIs should be written to have a clear scope, understanding the potential strains placed on wallet providers. @@ -177,28 +176,13 @@ Although, dApps should be able to request additional functionalities on connecti This does not mean that all connections must support cryptographic operations. -#### Types of Connection -Forwarding the idea of minimal expected functionality, we define three types of wallet-connection and what is expected to be their roles within connection. - -##### No-Data -A no-data wallet is the bare minimum type of wallet, which is only able to perform basic cryptographic operations i.e. hardware wallets. - -No-data core-cryptographic functions using Ed25519 keys: -- Generate and share public keys -- Sign with secret keys - -These connections would rely on dApps to derive addresses, find UTxOs and build transactions. - -We intend to impose the smallest set of minimum expected functionality. -By keeping the bar to entry low for wallet implementors we aim to be as inclusive as possible. - #### Types of Wallet by Query Layer configuration -All wallet standards can be divided into three groups based on a single criterion: what data they provide to dApps via the API endpoint. +All possible wallet standards can be divided into three groups based on a single criterion: what data they provide to dApps via the API endpoint. This division is important because each of the groups allows for different dApp architectures. -Note that the groups are nested: every wallet is a no-data wallet and every full-data wallet is also an own-data wallet. +Note that the groups are nested: every wallet is a no-data wallet and every full-data wallet is also an own-data wallet if we look at the dApp architectures they enable. ##### No-data wallets @@ -206,18 +190,12 @@ No-data wallets do not provide data queries and are only concerned with cryptogr All management of UTxOs is placed on dApps side. No-data wallets can use multiple addresses, but they do not allow to query for available UTxOs and do not indicate which of the addresses are actually used on-chain. -This design ensures that they can function without a query layer and thus without runtime infrastructure needed. - -![diagram showing wallet and dApp architecture for no-data wallets](./no-data-wallet.drawio.png) +These wallets may even rely on dApps to derive addresses, by sharing the root public key. -- Could just share root public key -> so dApp discovers addresses -- All wallets! - the most inclusive. Is interesting for future applications. -TBD: +![diagram showing wallet and dApp architecture for no-data wallets](./no-data-wallet.drawio.png) -- Embedded wallets? -- script wallets? -- Can be just a library? +This design ensures that wallets can function without a query layer and thus without runtime infrastructure needed. ##### Own-data wallets @@ -226,28 +204,25 @@ CIP-30 falls into this category. ![diagram showing possible wallet and dApp architecture for own-data wallets](./own-data-wallet.drawio.png) -TBD: +This architecture has two major issues: + +- **Unclear separation of concerns** - while wallets provide certain functions for dApp developers, they have no means to enforce their use, and naturally some developers opt to using their own query layers when they see fit, with consequences that are hard to predict. For example, the wallet may not allow signing a transaction that consumes an UTxO it considers "locked". -- Two sources of truth problem (CIP30) -- Hard to draw the lines between these +- **Two sources of truth problem** - on Cardano, every running node has its own opinion on the set of currently unspent transaction outputs. Only [eventual consistency](https://en.wikipedia.org/wiki/Eventual_consistency) is guaranteed. Any dApp that interacts with an own-data wallet has to deal with the inconsistency between local `cardano-node`-based query layer and light wallet query layer, especially when dApp workflow involves sending multiple interactions with the wallet in quick succession. For example, a wallet may refuse to sign a transaction containing an UTxO it does not (yet) know about. + +Even if we enforce clear separation of concerns in the standards, e.g. by stating that sending a transaction bypassing the wallet is not allowed, the problem of two sources of truth will remain. ##### Full-data wallets Full-data wallets allow to query blockchain data outside of user's scope (i.e. anything not covered by own-data wallets). -Depending on dApp needs, full-data wallets open a way to implement fully-functional dApps that use non-local blockchain data without the need for the developer to maintain dApp backend infrastructure. - ![diagram showing possible wallet and dApp architecture for full-data wallets](./full-data-wallet.drawio.png) -TBD: +Depending on dApp needs, full-data wallets open a way to implement fully-functional dApps that use non-local blockchain data without the need for the developer to maintain dApp backend infrastructure. As a result, more decentralized and censorship-resistant architectures become possible: a dApp can be distributed as a set of files, and deployed to IPFS or static hosting websites. + +Full-data wallets enable "single source of truth" architecture: no need to work around data inconsistency between two query layers. -- (Could add expense to wallet providers) -- dApps can ask wallet for chain info outside of scope of user's addresses -- Enables "single source of truth" architecture: no need to work around data inconsistency between two query layers -- Gives dApp developers the ability to choose source of truth -- May allow users to bring their own data - e.g. running local node, thus alleviating the need to trust the wallet backend -- Data API to be out of scope for this CPS. -- Probably not historical state, but certainly ledger state +They are more expensive to operate due to higher query layer requirements, but the risks could be lowered by letting query layer providers and wallet developers be separate entities. That would also allow the end users to choose query layer providers they trust more rather than being forced to trust wallet's infrastructure as well as code, and, optionally, use their own query layer deployments, thus alleviating the need to trust any external wallet backend while enjoying the usual interface. ### Strive for interoperable and extensible APIs Design APIs which are interoperable between connection standards and wallet types. From 857afa93cdbc2e578226f03e19e7f316d61622ca Mon Sep 17 00:00:00 2001 From: Vladimir Kalnitsky Date: Tue, 5 Dec 2023 15:38:49 +0400 Subject: [PATCH 21/37] Expand open questions --- CPS-0010/README.md | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 9e09be78f8..8b73565c47 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -236,17 +236,30 @@ Utilize the collective knowledge of CIPs and open source development. ## Open Questions -// todo +### Should we provide historical data in full-data wallets? + +Historical data includes (but is not limited to): + +- metadata and contents of past transactions +- spent transaction outputs +- past epoch metadata +- past stake delegations ### Can a universal connector be pursued? -- many types of wallet -- many types of platform -- Should / can a universal connector be pursued whilst maintaining other properties + +Every wallet connector that simply adds functionality on top of another standard can be considered a valid implementation of the base standard. +If the set of standards is designed in a way that allows for extensions without conflicts, then a superset of all standards can be considered a universal connector. How to make it possible to clearly define a "universal connector" and whether it is useful at all remains to be seen. ### Can a universal API be pursued? -- should we pursue fully connection standard agnostic APIs? -- or should some connection types only support some APIs? + +Platform differences are a concern: by using specifications that do not rely on assumptions about data transfer methods, software environment or programming language, it is possible to create a standard that is truly reusable across platforms. + +There are many types of dApp architectures enabled by different wallet types, but there is no requirement to use the APIs provided by wallets, so dApps that use simpler standards should still remain functional when used with their extensions. + +Does that open a way to define a universal API? ### How interoperable can standards be with those of other ecosystems? -- What are the priorities for this ecosystem? -- other than Cardano crypto + +Cardano is sufficiently different from most of the blockchains that aim to unify their wallet standards. + +What options do we have for integration with Cardano sidechains, rollups, hardforks, private testnets, etc.? From c3ea657da02f21ebd1287ec326f17e3ebbbf78a3 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Sun, 10 Dec 2023 21:16:59 +0000 Subject: [PATCH 22/37] grammar + small notes from second workshop --- CPS-0010/README.md | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 8b73565c47..0f78efdc8c 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -16,8 +16,8 @@ Created: 2023-07-28 Wallets are a foundational element of Web3, being the primary interface between users and blockchains. Wallet connectors allow users to connect their wallet to web-based stacks, allowing a wide range of specialized experiences. -Wallet connector standards consist of two parts; connection standard and API. -With the connection standard defining how the wallet and dApp initiate communication, for example using an injected Javascript object. +Wallet connector standards consist of two parts: the connection standard and the API. +The connection standard defines how the wallet and dApp initiate communication, for example, using an injected Javascript object. The API defines what communications look like between the dApp and wallet post connection. This problem statement is concerned with the issues surrounding Cardano's current and future wallet connectors. @@ -29,7 +29,7 @@ We wish to provide a comprehensive catalogue of the current offerings and their

First workshop - 2023-11-27 - I would like to thank those that contributed to the first workshop hosted by Adam Dean and Ryan Williams ([see presentation slides with notes](https://docs.google.com/presentation/d/1lXw1yMf-Hyp1eVfaFnbTV9897r6pZEd6zpvLNMqT3cI/)). + I would like to thank those that contributed to the first workshop hosted by Adam Dean and Ryan Williams ([see shared drive with resources](https://drive.google.com/drive/folders/1gYGeVJBLmDhCGEp1mTkCrsJYspd5hSoM?usp=drive_link)). - Beatrice Anihiri - Denis Kalinin - Evgenii Lisitskii @@ -58,18 +58,26 @@ We wish to provide a comprehensive catalogue of the current offerings and their
+
+ Second workshop - 2023-12-08 -## Problem - + I would like to thank those that contributed to the second workshop hosted by Adam Dean and Ryan Williams ([see shared drive with resources](https://drive.google.com/drive/folders/1gYGeVJBLmDhCGEp1mTkCrsJYspd5hSoM?usp=drive_link)). + - Alex Dochioiu + - George APEX Pool + - Mark Byers + - Leo H +
+ +## Problem The core motivation of this document is to outline the current state of Cardano's wallet connectors, discuss their flaws, and identify key concerns for future connector authors to be aware of. We hope that by discussing the issues, we will inspire the next generation of Cardano wallet connectors so that the ecosystem can grow beyond its first connector iterations. Ineffective connectors can cause a range of issues for wallets, dApp developers, and thus users. -Due to the nature of these connections, there can often be unforeseen impacts of small design decisions. +Due to the nature of these connections, there can often be unforeseen impacts from small design decisions. For users, connectors should offer secure and reliable compatibility with a wide range of dApps. -For dApps, connectors should be reliable, provide stable and rich APIs +For dApps, connectors should be reliable and provide stable and rich APIs. For wallets, connectors should be secure and extendable, and you should not expect wallets to go beyond their standard activities. ### Core Concerns @@ -80,12 +88,13 @@ Connection standards must strive to, above all, not compromise the security of w Connection standards should be aware of the potential impacts of standard security vulnerabilities, such as man-in-the-middle attacks. #### 2. Secure API -The security of the API itself should again remain paramount. +The security of the API itself should again remain eminent. This means that no secret information should ever be allowed to leave the wallet. #### 3. Range of supported connection -Connection standards should ideally support a wide range of wallets and dApp platforms. +Connection standards should support a wide range of wallets and dApp platforms. This means we shouldn't assume a software environment (e.g., JavaScript in the browser) and define the APIs using schema languages widely used in language-agnostic contexts. +With the base-level connections only offering an indication of supported APIs bidirectionally. #### 4. Expressive API APIs should allow for an expressive range of information to be exchanged. @@ -94,8 +103,7 @@ APIs should be language agnostic. #### 5. Versioned Connection standards and APIs should be explicitly versioned to clearly allow upgrades. -Furthermore, ideally, APIs should allow for optional extendability to facilitate specialization. -Versions and extensions should have clearly defined scopes. +Furthermore, ideally, APIs should allow for optional extendability to facilitate specialization of connection. #### 6. Respect the role of wallet APIs should be written to have a clear scope, understanding the potential strains placed on wallet providers. @@ -115,8 +123,11 @@ Since CIP-30's authoring there have only been two other competing standards, in Although neither of of this standards have seen wide adoption. Although not a direct competitor, CIP-13 could be seen as an alternative standard, which fits some wallet connection niches. +Where information is being transmitted to a wallet, to perform an action, using a novel URI scheme. ##### CIP-30 Extensions +The CIP-30 extendibility mechanism was introduced as a novel versioning scheme. + - CIP-62 - CIP-95 - CIP-103 From ba5b5711c7eaaab6c48322f2d267b7988056d34d Mon Sep 17 00:00:00 2001 From: Vladimir Kalnitsky Date: Sun, 17 Dec 2023 16:45:11 +0300 Subject: [PATCH 23/37] Apply suggestions from code review Co-authored-by: Robert Phair --- CPS-0010/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 0f78efdc8c..61f942a797 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -120,7 +120,7 @@ Since its' authoring, CIP-30 has seen continued iteration with changes to its AP ##### CIP-30 Alternatives Since CIP-30's authoring there have only been two other competing standards, in CIP-45 | Decentralized WebRTC dApp-Wallet Communication ([#395](https://github.com/cardano-foundation/CIPs/pull/395)) and CIP-90 | Extendable dApp-Wallet Web Bridge ([#462](https://github.com/cardano-foundation/CIPs/pull/462/)). -Although neither of of this standards have seen wide adoption. +Neither of these standards have seen wide adoption. Although not a direct competitor, CIP-13 could be seen as an alternative standard, which fits some wallet connection niches. Where information is being transmitted to a wallet, to perform an action, using a novel URI scheme. @@ -177,11 +177,11 @@ Goals may also contain requirements for the project. For example, they may inclu Finally, goals may also serve as evaluation metrics to assess how good a proposed solution is. --> ### Clear Role of Wallet -Whilst most wallet softwares generally offer a users a range of features, at their core all wallets are concerned with the management of cryptographic operations. -The majority of wallets build on this by using a chain indexer, so information related to the wallets crypto credentials can be gathered and presented to users. -Any operation beyond core cryptographic functions should be considered to be optionally extra by wallets. +Whilst most software wallets generally offer users a range of features, at their core all wallets are concerned with the management of cryptographic operations. +The majority of wallets build on this by using a chain indexer, so information related to wallets' crypto credentials can be gathered and presented to users. +Any operation beyond core cryptographic functions should be considered optional by wallets. -By only expecting wallet to support cryptographic operations we define a universal rule for all wallet connectors. +By only expecting wallets to support cryptographic operations we define a universal rule for all wallet connectors. This means at a minimum all dApps can expect from wallets during connection is cryptographic operations. Although, dApps should be able to request additional functionalities on connection if they wish. @@ -225,7 +225,7 @@ Even if we enforce clear separation of concerns in the standards, e.g. by statin ##### Full-data wallets -Full-data wallets allow to query blockchain data outside of user's scope (i.e. anything not covered by own-data wallets). +Full-data wallets allow querying blockchain data outside of user's scope (i.e. anything not covered by own-data wallets). ![diagram showing possible wallet and dApp architecture for full-data wallets](./full-data-wallet.drawio.png) @@ -233,7 +233,7 @@ Depending on dApp needs, full-data wallets open a way to implement fully-functio Full-data wallets enable "single source of truth" architecture: no need to work around data inconsistency between two query layers. -They are more expensive to operate due to higher query layer requirements, but the risks could be lowered by letting query layer providers and wallet developers be separate entities. That would also allow the end users to choose query layer providers they trust more rather than being forced to trust wallet's infrastructure as well as code, and, optionally, use their own query layer deployments, thus alleviating the need to trust any external wallet backend while enjoying the usual interface. +They are more expensive to operate due to higher query layer requirements, but the risks could be lowered by letting query layer providers and wallet developers be separate entities. That would also allow the end users to choose query layer providers they trust more, rather than being forced to trust wallet's infrastructure as well as code, and, optionally, use their own query layer deployments, thus alleviating the need to trust any external wallet backend while enjoying the usual interface. ### Strive for interoperable and extensible APIs Design APIs which are interoperable between connection standards and wallet types. From 0830e4b65ef201d2d7f69ac0949544cfc7f29994 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Sun, 10 Dec 2023 22:54:07 +0000 Subject: [PATCH 24/37] fleshing out missing sections and reorganization --- CPS-0010/README.md | 245 ++++++++++++++++++++++++++++++--------------- 1 file changed, 164 insertions(+), 81 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 61f942a797..6607c3374b 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -4,7 +4,7 @@ Title: Wallet Connectors Status: Open Category: Wallets Authors: - - Ryan Williams + - Ryan Williams - Vladimir Kalnitsky Proposed Solutions: [] Discussions: @@ -13,10 +13,10 @@ Created: 2023-07-28 --- ## Abstract -Wallets are a foundational element of Web3, being the primary interface between users and blockchains. -Wallet connectors allow users to connect their wallet to web-based stacks, allowing a wide range of specialized experiences. +Wallets the foundational element of Web3, being the primary interface between users and blockchains. +Wallet connectors allow users to connect their wallet to client stacks (i.e. dApps), facilitating a wide range of specialized user experiences. -Wallet connector standards consist of two parts: the connection standard and the API. +Wallet connector standards largely consist of two parts: the connection standard and the API. The connection standard defines how the wallet and dApp initiate communication, for example, using an injected Javascript object. The API defines what communications look like between the dApp and wallet post connection. @@ -29,7 +29,7 @@ We wish to provide a comprehensive catalogue of the current offerings and their
First workshop - 2023-11-27 - I would like to thank those that contributed to the first workshop hosted by Adam Dean and Ryan Williams ([see shared drive with resources](https://drive.google.com/drive/folders/1gYGeVJBLmDhCGEp1mTkCrsJYspd5hSoM?usp=drive_link)). + We would like to thank those that contributed to the first workshop hosted by Adam Dean and Ryan Williams ([see shared drive with resources](https://drive.google.com/drive/folders/1gYGeVJBLmDhCGEp1mTkCrsJYspd5hSoM?usp=drive_link)). - Beatrice Anihiri - Denis Kalinin - Evgenii Lisitskii @@ -61,7 +61,7 @@ We wish to provide a comprehensive catalogue of the current offerings and their
Second workshop - 2023-12-08 - I would like to thank those that contributed to the second workshop hosted by Adam Dean and Ryan Williams ([see shared drive with resources](https://drive.google.com/drive/folders/1gYGeVJBLmDhCGEp1mTkCrsJYspd5hSoM?usp=drive_link)). + We would like to thank those that contributed to the second workshop hosted by Adam Dean and Ryan Williams ([see shared drive with resources](https://drive.google.com/drive/folders/1gYGeVJBLmDhCGEp1mTkCrsJYspd5hSoM?usp=drive_link)). - Alex Dochioiu - George APEX Pool - Mark Byers @@ -70,7 +70,7 @@ We wish to provide a comprehensive catalogue of the current offerings and their
## Problem -The core motivation of this document is to outline the current state of Cardano's wallet connectors, discuss their flaws, and identify key concerns for future connector authors to be aware of. +The motivation for this document is to outline the current state of Cardano's wallet connectors, discuss their flaws, and identify key concerns for future connector authors to be aware of. We hope that by discussing the issues, we will inspire the next generation of Cardano wallet connectors so that the ecosystem can grow beyond its first connector iterations. Ineffective connectors can cause a range of issues for wallets, dApp developers, and thus users. @@ -78,76 +78,138 @@ Due to the nature of these connections, there can often be unforeseen impacts fr For users, connectors should offer secure and reliable compatibility with a wide range of dApps. For dApps, connectors should be reliable and provide stable and rich APIs. -For wallets, connectors should be secure and extendable, and you should not expect wallets to go beyond their standard activities. +For wallets, connectors should be secure, optionally extendable, and with APIs which do not expect wallets to go beyond standard expectations. ### Core Concerns +Here we outline what we see as the necessary concerns which connector authors should consider. -#### 1. Secure connection +#### 1. Security Security should remain of paramount concern within Web3. Connection standards must strive to, above all, not compromise the security of wallets or dApps. Connection standards should be aware of the potential impacts of standard security vulnerabilities, such as man-in-the-middle attacks. -#### 2. Secure API -The security of the API itself should again remain eminent. -This means that no secret information should ever be allowed to leave the wallet. +The security of the API should again remain eminent. +An example of this is that no secret information should ever be allowed to leave the wallet. -#### 3. Range of supported connection -Connection standards should support a wide range of wallets and dApp platforms. -This means we shouldn't assume a software environment (e.g., JavaScript in the browser) and define the APIs using schema languages widely used in language-agnostic contexts. +#### 2. Range of supported connection +Connection standards should support a wide range of wallets and client platforms. +This means we shouldn't assume a software environment (e.g. JavaScript in the browser) and define the APIs using schema languages widely used in language-agnostic contexts. With the base-level connections only offering an indication of supported APIs bidirectionally. -#### 4. Expressive API +#### 3. API Expressiveness APIs should allow for an expressive range of information to be exchanged. -Communication should be expressive in both directions. -APIs should be language agnostic. +Information should be able to be passed in both directions. -#### 5. Versioned +#### 4. Versioning Connection standards and APIs should be explicitly versioned to clearly allow upgrades. Furthermore, ideally, APIs should allow for optional extendability to facilitate specialization of connection. -#### 6. Respect the role of wallet +#### 5. Adherence to Expected Roles APIs should be written to have a clear scope, understanding the potential strains placed on wallet providers. -APIs, at a base level, should focus on preserving the base [role of the wallet](#clear-role-of-wallet). ### Context -#### Cardano Connector History -[CIP-30](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md) is *the* fundamental wallet connector standard for Cardano. +#### Cardano's Wallet Connector*s* +[CIP-30](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md) is *the* wallet connector for Cardano. This standard has facilitated the emergence of dApp development on Cardano by defining both a connection standard and an API. -It is, to date, the only wallet connector standard to see wide adoption in the ecosystem. -Using an injected Javascript object for communication between wallets and web-based stacks -Since its' authoring, CIP-30 has seen continued iteration with changes to its API. +It is, to date, the only wallet connector to see wide adoption in the ecosystem. +Using an injected Javascript object for communication between wallets and web-based dApps. +Since its' authoring, CIP-30 has seen continued iteration with many tweaks to its API. ##### CIP-30 Alternatives -Since CIP-30's authoring there have only been two other competing standards, in CIP-45 | Decentralized WebRTC dApp-Wallet Communication ([#395](https://github.com/cardano-foundation/CIPs/pull/395)) and CIP-90 | Extendable dApp-Wallet Web Bridge ([#462](https://github.com/cardano-foundation/CIPs/pull/462/)). -Neither of these standards have seen wide adoption. +Post CIP-30's acceptance there have only been two other competing standards, in CIP-45 | Decentralized WebRTC dApp-Wallet Communication ([#395](https://github.com/cardano-foundation/CIPs/pull/395)) and CIP-90 | Extendable dApp-Wallet Web Bridge ([#462](https://github.com/cardano-foundation/CIPs/pull/462/)). +With neither of these standards gaining significant adoption. -Although not a direct competitor, CIP-13 could be seen as an alternative standard, which fits some wallet connection niches. -Where information is being transmitted to a wallet, to perform an action, using a novel URI scheme. +With CIP-45 offering an alternative connection standard based on initiating a WebRTC connection via WebTorrent tracker, taking a similar to [Wallet Connect](https://walletconnect.com/). +This was motivated by a want to diversify the connection standards in Cardano. +Unlike CIP-30 this proposal does not define any standards for the API shared after connection time, instead it just reuses the [CIP-30 Full API](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md#full-api). + +CIP-90 was created in reaction to the last major changes to CIP-30, within [#446](https://github.com/cardano-foundation/CIPs/pull/446). +This proposal aims to reuse the CIP-30 connection standard, whilst making the CIP-30 API optional, allowing for other CIPs to specify further APIs. +This contrasted the ideas presented within [#446](https://github.com/cardano-foundation/CIPs/pull/446) which stipulated that all connections should include the CIP-30 Full API. + +Although not a direct competitor, [CIP-13 | Cardano URI Scheme](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0013/README.md) could be seen as an alternative standard, fitting some wallet-client niches. +This URI scheme allows a sort-of one way connection, where information can be passed to a wallet to trigger a function. + +#### Historical Issues +CIP-30 is likely the most iterated upon CIP, post merger into the CIPs repository. +These changes have been attempting to remedy issues with the initial proposal. + +##### Versioning +Despite the CIP-30 API including a [versioning mechanism](https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md#cardanowalletnameapiversion-string) it was not utilized. +Alterations to the API were accepted without incrementing the version number. + +These changes resulted in diverging implementations and thus broken compatibility. +At connection time there would be no way to tell which version of CIP-30 the wallet had implemented. +Often resulting in errors during dApp-wallet communication, degrading usability. + +##### Unclear Responsibilities +CIP-30 does not provide rationale to what should be the concern of the wallet and clients. + +The knock-on effects of this are XXX + +##### Language Dependent +CIP-30's connection standard and API is defined using Typescript. +Whilst this is convenient for Javascript-based clients this is not convenient for other stacks. + +Tying the wallet connector to a single language is naturally limiting and will cause friction for potential adopters. + +##### Limited to Web-based Stacks +The CIP-30 connection standard is based upon injecting code into shared web windows. +This is convenient for browser extension wallets and web-based client stacks, but is awkward for all other implementors. + +One consequence of this is that mobile wallets are thus required to reimplement web browsers in their applications, which is wasted effort. +A similar novel solution would be required for the current full node wallets to be able to utilize CIP-30 compatible dApps. +This is not not great as non-web-based wallets (and their users) are unable to utilize the benefits of Cardano's web 3. + +##### Undefined Behavior +The overall the descriptions of CIP-30 behavior are brief leading to many potential cases of undefined behavior. + +For example; should the results of `.getUtxos()` include UTxOs the wallet wishes to reserve/not spend? or include UTxOs the wallet knows are in the process of being spent? how should these reserved/pending UTxOs factor into the result of `.getBalance()`? +Such behavior is unclear and thus different wallets will implement behavior differently, leading to inconsistent experiences for dApps and users. + +##### Combined Standard +CIP-30 defined both a connection standard and an API which must be used on every connection. +This is limiting as it forces all connections using the CIP-30 connect to always use the same endpoints. +This adds unneeded complexity, making iterating on connection or API more difficult. + +##### No event listener +The CIP-30 API and connector is purely based on synchronous and asynchronous calls made by the client dApp. +This prevents useful advantages of event-based design, such as dApps subscribing wallets sharing state update events. + +#### CIP-30 Iteration Improvements +CIP-30 has seen some efforts to address its flaws. ##### CIP-30 Extensions -The CIP-30 extendibility mechanism was introduced as a novel versioning scheme. +The CIP-30 extendibility mechanism was introduced as a novel versioning scheme within [#446](https://github.com/cardano-foundation/CIPs/pull/446) and was further refined in [#577](https://github.com/cardano-foundation/CIPs/pull/577). +The motivation was to provide a safe way to optionally modify the CIP-30 API without breaking existing implementations. +Furthermore these changes were introduced to stop any further modifications to the CIP-30 API, negating the need for versioning. +This has allowed for the creation of further CIPs defining API extensions, to upgrade, specialize and enhance CIP-30 connections. +With extensions also going part way to be able to address undefined behavior. + +At time of writing there are four proposed extensions, with only one being merged into the CIPs repository. + -#### Historical Issues -- Lack of ecosystem cohesion around Role of the Wallet -- Combination of connection and API in one standard -- Lack of ecosystem focus, wallet expected to do a lot -> not clearly defined what the role is -- Encouraged emulated wallets -- Typescript APIs limiting -- No way for dApp to subscribe to wallet events +##### CIP-30 Alteration Freeze +As part of the extension mechanism be added within [#446](https://github.com/cardano-foundation/CIPs/pull/446), a less formal shift in attitude was adopted by the CIP editors. +In that no more alterations to CIP-30 would be allowed, instead all changes must be done through the extension mechanism. +This prevents anymore downstream issues caused by lack of versioning. -#### Solutions -- CIP-30 - extendibility mechanism -- CIP-30 - not changing anymore +##### This Problem Statement +The hopefully final remediation to CIP-30 is this document. +We want to discuss CIP-30's drawbacks, so they can be understood moving one step closer to solving them. ## Use cases +// todo: improve these + ### NFT Marketplace Alice wishes to buy a NFT from an smart contract based NFT marketplace for an agreed price because she wishes to support the artist. Alice wants to be able to use a familiar website interface where she can browse rendered NFTs then select and buy on the same site. @@ -176,41 +238,66 @@ Without clear role of the wallet, and optional API extension scoping Dave's infr Goals may also contain requirements for the project. For example, they may include anything from a deadline to a budget (in terms of complexity or time) to security concerns. Finally, goals may also serve as evaluation metrics to assess how good a proposed solution is. --> -### Clear Role of Wallet -Whilst most software wallets generally offer users a range of features, at their core all wallets are concerned with the management of cryptographic operations. -The majority of wallets build on this by using a chain indexer, so information related to wallets' crypto credentials can be gathered and presented to users. -Any operation beyond core cryptographic functions should be considered optional by wallets. +These goals we outline for future wallet connection and API standards are based upon solving our [Core Concerns](#core-concerns). + +**Wallet connectors should:** + +### 1. Prioritize Security +Potential security concerns of wallet connector designs should be well understood and discussed in accompanying CIPs. +Authors should seek the collective knowledge of the CIP process to obtain wide range of perspectives. + +The impact of any data leaving the wallet should be discussed, especially for the cases of data that is not observable via the chain, such as root public keys. + +Although security tolerances are at an implementors discretion, the potential negative impact on the ecosystem should be taken into account by authors. + +### 2. Interoperable, Optional and Extensible APIs +Future API standards should be connection standard agnostic. +Meaning API CIP-1234 should work if connection has been initiated via CIP-30 connection or CIP-45, or CIP-4321. + +API standards should exist within an extensible framework, whereby specific connections can be permissioned and specialized. +APIs should be developed via the CIP process, whereby CIPs will each define their own set of endpoints. + +Implementing the API support should be fully at the discretion of the wallet providers. +Although at connection time dApps should be free to request as many APIs as they wish, they should not rely on the implementation of optional APIs beyond APIs implemented in [No-data Wallets](#no-data-wallets). + +### 3. Version +Versioning standards should be utilized by connection standard and API authors. +APIs should inherit the novel versioning utilized for CIP-30 extensions. +Connection standards should be free to employ any versioning scheme they wish. + +### 4. Work Within the Role of Wallet +Connection and API authors should understand that there are different types of wallets, each with their own constraints. +Standards should be aware of this and discuss which wallets are applicable in their CIPs. + +Whilst most software wallets generally offer users a range of features, at their *core* all wallets are concerned with the management of cryptographic operations. +The majority of wallets build on this by using a chain indexer, so information related to wallets' cryptographic credentials can be gathered and presented to users. By only expecting wallets to support cryptographic operations we define a universal rule for all wallet connectors. This means at a minimum all dApps can expect from wallets during connection is cryptographic operations. Although, dApps should be able to request additional functionalities on connection if they wish. -This does not mean that all connections must support cryptographic operations. - -#### Types of Wallet by Query Layer configuration +**Building on this we define further divisions:** +#### Types of Wallet All possible wallet standards can be divided into three groups based on a single criterion: what data they provide to dApps via the API endpoint. This division is important because each of the groups allows for different dApp architectures. -Note that the groups are nested: every wallet is a no-data wallet and every full-data wallet is also an own-data wallet if we look at the dApp architectures they enable. - -##### No-data wallets +**Note** The groups are nested: every wallet is a no-data wallet and every full-data wallet is also an own-data wallet if we look at the dApp architectures they enable. +##### No-data Wallets No-data wallets do not provide data queries and are only concerned with cryptographic operations (e.g. hardware wallets). All management of UTxOs is placed on dApps side. No-data wallets can use multiple addresses, but they do not allow to query for available UTxOs and do not indicate which of the addresses are actually used on-chain. These wallets may even rely on dApps to derive addresses, by sharing the root public key. - ![diagram showing wallet and dApp architecture for no-data wallets](./no-data-wallet.drawio.png) This design ensures that wallets can function without a query layer and thus without runtime infrastructure needed. -##### Own-data wallets - -Own-data wallets provide chain queries related to users' own data and wallet state (users' addresses and utxos). +##### Own-data Wallets +Own-data wallets provide chain queries related to users' own data and wallet state (users' addresses and UTxOs). CIP-30 falls into this category. ![diagram showing possible wallet and dApp architecture for own-data wallets](./own-data-wallet.drawio.png) @@ -223,54 +310,50 @@ This architecture has two major issues: Even if we enforce clear separation of concerns in the standards, e.g. by stating that sending a transaction bypassing the wallet is not allowed, the problem of two sources of truth will remain. -##### Full-data wallets - -Full-data wallets allow querying blockchain data outside of user's scope (i.e. anything not covered by own-data wallets). +##### Full-data Wallets +Full-data wallets allow to query blockchain data outside of user's scope (i.e. anything not covered by own-data wallets). ![diagram showing possible wallet and dApp architecture for full-data wallets](./full-data-wallet.drawio.png) -Depending on dApp needs, full-data wallets open a way to implement fully-functional dApps that use non-local blockchain data without the need for the developer to maintain dApp backend infrastructure. As a result, more decentralized and censorship-resistant architectures become possible: a dApp can be distributed as a set of files, and deployed to IPFS or static hosting websites. +Depending on dApp needs, full-data wallets open a way to implement fully-functional dApps that use non-local blockchain data without the need for the developer to maintain dApp backend infrastructure. +As a result, more decentralized and censorship-resistant architectures become possible: a dApp can be distributed as a set of files, and deployed to IPFS or static hosting websites. Full-data wallets enable "single source of truth" architecture: no need to work around data inconsistency between two query layers. -They are more expensive to operate due to higher query layer requirements, but the risks could be lowered by letting query layer providers and wallet developers be separate entities. That would also allow the end users to choose query layer providers they trust more, rather than being forced to trust wallet's infrastructure as well as code, and, optionally, use their own query layer deployments, thus alleviating the need to trust any external wallet backend while enjoying the usual interface. +They are more expensive to operate due to higher query layer requirements, but the risks could be lowered by letting query layer providers and wallet developers be separate entities. +That would also allow the end users to choose query layer providers they trust more rather than being forced to trust wallet's infrastructure as well as code, and, optionally, use their own query layer deployments, thus alleviating the need to trust any external wallet backend while enjoying the usual interface. -### Strive for interoperable and extensible APIs -Design APIs which are interoperable between connection standards and wallet types. -Design APIs which are optionally extensible, allowing for creation of specialized connections. -Aim to use the CIP process. - -### Prioritize Security -Clearly identify and articulate known potential security concerns. -Utilize the collective knowledge of CIPs and open source development. +### 5. Minimize Growing Pains +The pain caused by uprooting all CIP-30 implementations should not be underestimated. +Thus, future standards should work to minimize the potential pain, be it by support CIP-30 implementations in a legacy mode. ## Open Questions -### Should we provide historical data in full-data wallets? - -Historical data includes (but is not limited to): - -- metadata and contents of past transactions -- spent transaction outputs -- past epoch metadata -- past stake delegations - ### Can a universal connector be pursued? - Every wallet connector that simply adds functionality on top of another standard can be considered a valid implementation of the base standard. If the set of standards is designed in a way that allows for extensions without conflicts, then a superset of all standards can be considered a universal connector. How to make it possible to clearly define a "universal connector" and whether it is useful at all remains to be seen. ### Can a universal API be pursued? - Platform differences are a concern: by using specifications that do not rely on assumptions about data transfer methods, software environment or programming language, it is possible to create a standard that is truly reusable across platforms. There are many types of dApp architectures enabled by different wallet types, but there is no requirement to use the APIs provided by wallets, so dApps that use simpler standards should still remain functional when used with their extensions. Does that open a way to define a universal API? +- what language ### How interoperable can standards be with those of other ecosystems? - Cardano is sufficiently different from most of the blockchains that aim to unify their wallet standards. What options do we have for integration with Cardano sidechains, rollups, hardforks, private testnets, etc.? + +### How can we effectively police API scope? +- how can we prevent spams of overlapping APIs + +#### Should we provide historical data in full-data wallets? +Historical data includes (but is not limited to): + +- metadata and contents of past transactions +- spent transaction outputs +- past epoch metadata +- past stake delegations From c80da908dfff1a7f88670d02e8b9f790d4646f08 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:34:35 +0000 Subject: [PATCH 25/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 6607c3374b..c83a1b83e0 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -146,7 +146,7 @@ Often resulting in errors during dApp-wallet communication, degrading usability. ##### Unclear Responsibilities CIP-30 does not provide rationale to what should be the concern of the wallet and clients. -The knock-on effects of this are XXX +The knock-on effect of this is uncertainty regarding the direction future CIP-30 development should follow. ##### Language Dependent CIP-30's connection standard and API is defined using Typescript. From 0f71bd692ad43d1a5f8baba454c2f8737b9956e6 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:34:43 +0000 Subject: [PATCH 26/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index c83a1b83e0..5dea0a2498 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -163,7 +163,7 @@ A similar novel solution would be required for the current full node wallets to This is not not great as non-web-based wallets (and their users) are unable to utilize the benefits of Cardano's web 3. ##### Undefined Behavior -The overall the descriptions of CIP-30 behavior are brief leading to many potential cases of undefined behavior. +The overall descriptions of CIP-30 behavior are brief, leading to many potential cases of undefined behavior. For example; should the results of `.getUtxos()` include UTxOs the wallet wishes to reserve/not spend? or include UTxOs the wallet knows are in the process of being spent? how should these reserved/pending UTxOs factor into the result of `.getBalance()`? Such behavior is unclear and thus different wallets will implement behavior differently, leading to inconsistent experiences for dApps and users. From bfd2c1f22749f89360af28cdfc15a3eb597d37be Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:34:50 +0000 Subject: [PATCH 27/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 5dea0a2498..be32aee6e7 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -175,7 +175,7 @@ This adds unneeded complexity, making iterating on connection or API more diffic ##### No event listener The CIP-30 API and connector is purely based on synchronous and asynchronous calls made by the client dApp. -This prevents useful advantages of event-based design, such as dApps subscribing wallets sharing state update events. +This prevents useful advantages of event-based design, such as dApps subscribing to state update events emitted by wallets. #### CIP-30 Iteration Improvements CIP-30 has seen some efforts to address its flaws. From a5c33ac37bb66937cb6250b4662c4f071f3054a7 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:34:58 +0000 Subject: [PATCH 28/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index be32aee6e7..bb601b65d2 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -250,7 +250,7 @@ The impact of any data leaving the wallet should be discussed, especially for th Although security tolerances are at an implementors discretion, the potential negative impact on the ecosystem should be taken into account by authors. -### 2. Interoperable, Optional and Extensible APIs +### 2. Provide Interoperable, Optional and Extensible APIs Future API standards should be connection standard agnostic. Meaning API CIP-1234 should work if connection has been initiated via CIP-30 connection or CIP-45, or CIP-4321. From f5fbe5e09b6bc91f9da734185d456c96234528f0 Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:35:04 +0000 Subject: [PATCH 29/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index bb601b65d2..50c0b30051 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -260,7 +260,7 @@ APIs should be developed via the CIP process, whereby CIPs will each define thei Implementing the API support should be fully at the discretion of the wallet providers. Although at connection time dApps should be free to request as many APIs as they wish, they should not rely on the implementation of optional APIs beyond APIs implemented in [No-data Wallets](#no-data-wallets). -### 3. Version +### 3. Support Versioning Versioning standards should be utilized by connection standard and API authors. APIs should inherit the novel versioning utilized for CIP-30 extensions. Connection standards should be free to employ any versioning scheme they wish. From 78c73e73a1e475b8cd543a51ccf0df197e29370e Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:35:27 +0000 Subject: [PATCH 30/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 50c0b30051..58810da7ba 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -160,7 +160,7 @@ This is convenient for browser extension wallets and web-based client stacks, bu One consequence of this is that mobile wallets are thus required to reimplement web browsers in their applications, which is wasted effort. A similar novel solution would be required for the current full node wallets to be able to utilize CIP-30 compatible dApps. -This is not not great as non-web-based wallets (and their users) are unable to utilize the benefits of Cardano's web 3. +This is not great as non-web-based wallets (and their users) are unable to utilize the benefits of Cardano's web3. ##### Undefined Behavior The overall descriptions of CIP-30 behavior are brief, leading to many potential cases of undefined behavior. From 7e05b29e5a18b3879ee4c795ab2c2e7a2da486b2 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Fri, 5 Jan 2024 13:51:56 +0000 Subject: [PATCH 31/37] small notes --- CPS-0010/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 58810da7ba..4cf6ebef2a 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -143,11 +143,16 @@ These changes resulted in diverging implementations and thus broken compatibilit At connection time there would be no way to tell which version of CIP-30 the wallet had implemented. Often resulting in errors during dApp-wallet communication, degrading usability. +- has resulted in emulated wallets, as dApp devs test per wallet implementation, if better versioned this shouldnt be needed + ##### Unclear Responsibilities CIP-30 does not provide rationale to what should be the concern of the wallet and clients. The knock-on effect of this is uncertainty regarding the direction future CIP-30 development should follow. +##### Limited Scope +- is a base connector + ##### Language Dependent CIP-30's connection standard and API is defined using Typescript. Whilst this is convenient for Javascript-based clients this is not convenient for other stacks. @@ -251,7 +256,7 @@ The impact of any data leaving the wallet should be discussed, especially for th Although security tolerances are at an implementors discretion, the potential negative impact on the ecosystem should be taken into account by authors. ### 2. Provide Interoperable, Optional and Extensible APIs -Future API standards should be connection standard agnostic. +Future API standards should be connection agnostic as well as stack standard agnostic. Meaning API CIP-1234 should work if connection has been initiated via CIP-30 connection or CIP-45, or CIP-4321. API standards should exist within an extensible framework, whereby specific connections can be permissioned and specialized. @@ -260,6 +265,8 @@ APIs should be developed via the CIP process, whereby CIPs will each define thei Implementing the API support should be fully at the discretion of the wallet providers. Although at connection time dApps should be free to request as many APIs as they wish, they should not rely on the implementation of optional APIs beyond APIs implemented in [No-data Wallets](#no-data-wallets). +- minimal connection is who am i, what do i support + ### 3. Support Versioning Versioning standards should be utilized by connection standard and API authors. APIs should inherit the novel versioning utilized for CIP-30 extensions. From 763892d076e9bac87067244149bed43aa90f7f2d Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Sat, 6 Jan 2024 13:24:09 +0000 Subject: [PATCH 32/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 4cf6ebef2a..16ff1c531d 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -347,7 +347,6 @@ Platform differences are a concern: by using specifications that do not rely on There are many types of dApp architectures enabled by different wallet types, but there is no requirement to use the APIs provided by wallets, so dApps that use simpler standards should still remain functional when used with their extensions. Does that open a way to define a universal API? -- what language ### How interoperable can standards be with those of other ecosystems? Cardano is sufficiently different from most of the blockchains that aim to unify their wallet standards. From d0ee758d3b55c004d7f769bc9fdb44362e52288e Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Sat, 6 Jan 2024 13:24:19 +0000 Subject: [PATCH 33/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 16ff1c531d..ced40f22ce 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -354,7 +354,7 @@ Cardano is sufficiently different from most of the blockchains that aim to unify What options do we have for integration with Cardano sidechains, rollups, hardforks, private testnets, etc.? ### How can we effectively police API scope? -- how can we prevent spams of overlapping APIs +How can we prevent duplication of functionality and make sure different APIs do not overlap? #### Should we provide historical data in full-data wallets? Historical data includes (but is not limited to): From f3a141a0e2eb0e7a9ccf0a21f868065e22610f1d Mon Sep 17 00:00:00 2001 From: Ryan Williams <44342099+Ryun1@users.noreply.github.com> Date: Sat, 6 Jan 2024 13:24:27 +0000 Subject: [PATCH 34/37] Update CPS-0010/README.md Co-authored-by: Vladimir Kalnitsky --- CPS-0010/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index ced40f22ce..22578ae965 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -363,3 +363,5 @@ Historical data includes (but is not limited to): - spent transaction outputs - past epoch metadata - past stake delegations + +To what extent should we make historical data available to dApps? From 5ba6a01de7776cb43e1660faa20dfd18739efe6c Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Sat, 6 Jan 2024 18:47:26 +0000 Subject: [PATCH 35/37] add acknowledgements and notes from workshop 3 --- CPS-0010/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 22578ae965..52575cb464 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -69,6 +69,20 @@ We wish to provide a comprehensive catalogue of the current offerings and their
+
+ Third workshop - 2024-01-06 + + We would like to thank those that contributed to the third workshop hosted by Ryan Williams ([see shared drive with resources](https://drive.google.com/drive/folders/1gYGeVJBLmDhCGEp1mTkCrsJYspd5hSoM?usp=drive_link)). + - Brent + - Ishita Verma + - Jonathan Kelly + - Leo H + - Nick Ulrich + - NOODZ + - Vladimir Kalnitsky + +
+ ## Problem The motivation for this document is to outline the current state of Cardano's wallet connectors, discuss their flaws, and identify key concerns for future connector authors to be aware of. We hope that by discussing the issues, we will inspire the next generation of Cardano wallet connectors so that the ecosystem can grow beyond its first connector iterations. @@ -182,6 +196,9 @@ This adds unneeded complexity, making iterating on connection or API more diffic The CIP-30 API and connector is purely based on synchronous and asynchronous calls made by the client dApp. This prevents useful advantages of event-based design, such as dApps subscribing to state update events emitted by wallets. +##### Encouraged Centralizing of Query layers +- Effectively encourages centralization of query layer providers + #### CIP-30 Iteration Improvements CIP-30 has seen some efforts to address its flaws. @@ -334,6 +351,8 @@ That would also allow the end users to choose query layer providers they trust m The pain caused by uprooting all CIP-30 implementations should not be underestimated. Thus, future standards should work to minimize the potential pain, be it by support CIP-30 implementations in a legacy mode. +- Could achieve via providing a lib to translate the old interface to new one + ## Open Questions From f462c0e69e3808b50ee97cae74a7b038372d2655 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Tue, 23 Jan 2024 13:23:56 +0000 Subject: [PATCH 36/37] small tidy up --- CPS-0010/README.md | 46 ++++++++-------------------------------------- 1 file changed, 8 insertions(+), 38 deletions(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 52575cb464..26239769cb 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -102,7 +102,7 @@ Security should remain of paramount concern within Web3. Connection standards must strive to, above all, not compromise the security of wallets or dApps. Connection standards should be aware of the potential impacts of standard security vulnerabilities, such as man-in-the-middle attacks. -The security of the API should again remain eminent. +The security of the API should remain eminent. An example of this is that no secret information should ever be allowed to leave the wallet. #### 2. Range of supported connection @@ -157,7 +157,10 @@ These changes resulted in diverging implementations and thus broken compatibilit At connection time there would be no way to tell which version of CIP-30 the wallet had implemented. Often resulting in errors during dApp-wallet communication, degrading usability. -- has resulted in emulated wallets, as dApp devs test per wallet implementation, if better versioned this shouldnt be needed +A result of this has been that dApps whitelist only those wallets which they have tested against. +This completely undermines the benefits of having such a standard. +Furthermore this whitelisting has encouraged those smaller wallets to emulate the whitelisted wallets, by injecting themselves under the name of the whitelisted wallets. +This sort of arms race, is completely unnecessary and results in future complexities for both sides. ##### Unclear Responsibilities CIP-30 does not provide rationale to what should be the concern of the wallet and clients. @@ -165,7 +168,8 @@ CIP-30 does not provide rationale to what should be the concern of the wallet an The knock-on effect of this is uncertainty regarding the direction future CIP-30 development should follow. ##### Limited Scope -- is a base connector +By it's nature CIP-30 is a base level connector designed to get the first dApps on Cardano moving. +It does, of course, have a finite scope which cannot support future upgrades or specialized connections. ##### Language Dependent CIP-30's connection standard and API is defined using Typescript. @@ -196,9 +200,6 @@ This adds unneeded complexity, making iterating on connection or API more diffic The CIP-30 API and connector is purely based on synchronous and asynchronous calls made by the client dApp. This prevents useful advantages of event-based design, such as dApps subscribing to state update events emitted by wallets. -##### Encouraged Centralizing of Query layers -- Effectively encourages centralization of query layer providers - #### CIP-30 Iteration Improvements CIP-30 has seen some efforts to address its flaws. @@ -211,13 +212,6 @@ With extensions also going part way to be able to address undefined behavior. At time of writing there are four proposed extensions, with only one being merged into the CIPs repository. - - ##### CIP-30 Alteration Freeze As part of the extension mechanism be added within [#446](https://github.com/cardano-foundation/CIPs/pull/446), a less formal shift in attitude was adopted by the CIP editors. In that no more alterations to CIP-30 would be allowed, instead all changes must be done through the extension mechanism. @@ -228,9 +222,6 @@ The hopefully final remediation to CIP-30 is this document. We want to discuss CIP-30's drawbacks, so they can be understood moving one step closer to solving them. ## Use cases - - -// todo: improve these ### NFT Marketplace Alice wishes to buy a NFT from an smart contract based NFT marketplace for an agreed price because she wishes to support the artist. @@ -255,11 +246,6 @@ Dave has created a wallet, he wants to minimize the cost of running his wallet. Without clear role of the wallet, and optional API extension scoping Dave's infrastructure may be asked to do many operations incurring cost. ## Goals - These goals we outline for future wallet connection and API standards are based upon solving our [Core Concerns](#core-concerns). **Wallet connectors should:** @@ -281,8 +267,7 @@ APIs should be developed via the CIP process, whereby CIPs will each define thei Implementing the API support should be fully at the discretion of the wallet providers. Although at connection time dApps should be free to request as many APIs as they wish, they should not rely on the implementation of optional APIs beyond APIs implemented in [No-data Wallets](#no-data-wallets). - -- minimal connection is who am i, what do i support +Connections be based on "who am I? what do I support?" ### 3. Support Versioning Versioning standards should be utilized by connection standard and API authors. @@ -351,10 +336,7 @@ That would also allow the end users to choose query layer providers they trust m The pain caused by uprooting all CIP-30 implementations should not be underestimated. Thus, future standards should work to minimize the potential pain, be it by support CIP-30 implementations in a legacy mode. -- Could achieve via providing a lib to translate the old interface to new one - ## Open Questions - ### Can a universal connector be pursued? Every wallet connector that simply adds functionality on top of another standard can be considered a valid implementation of the base standard. @@ -365,8 +347,6 @@ Platform differences are a concern: by using specifications that do not rely on There are many types of dApp architectures enabled by different wallet types, but there is no requirement to use the APIs provided by wallets, so dApps that use simpler standards should still remain functional when used with their extensions. -Does that open a way to define a universal API? - ### How interoperable can standards be with those of other ecosystems? Cardano is sufficiently different from most of the blockchains that aim to unify their wallet standards. @@ -374,13 +354,3 @@ What options do we have for integration with Cardano sidechains, rollups, hardfo ### How can we effectively police API scope? How can we prevent duplication of functionality and make sure different APIs do not overlap? - -#### Should we provide historical data in full-data wallets? -Historical data includes (but is not limited to): - -- metadata and contents of past transactions -- spent transaction outputs -- past epoch metadata -- past stake delegations - -To what extent should we make historical data available to dApps? From ef57daea327342c3d5b3d978af983e2dc92d0018 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Tue, 23 Jan 2024 14:52:02 +0000 Subject: [PATCH 37/37] fixed discussion link --- CPS-0010/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CPS-0010/README.md b/CPS-0010/README.md index 26239769cb..fd1dc8039b 100644 --- a/CPS-0010/README.md +++ b/CPS-0010/README.md @@ -8,7 +8,7 @@ Authors: - Vladimir Kalnitsky Proposed Solutions: [] Discussions: - - https://github.com/cardano-foundation/cips/pulls/619 + - https://github.com/cardano-foundation/cips/pull/619 Created: 2023-07-28 ---