Skip to content

Commit 0f4bc51

Browse files
committed
CIP-???? | CIP-30 ext: Bulk transaction signing
Replaces previous PR cardano-foundation#443 by adopting CIP-30 extension framework as well as to-be-merged CIP-30 namespace PR cardano-foundation#577.
1 parent 5f926f2 commit 0f4bc51

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

CIP-XXXX/README.md

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
CIP: ?
3+
Title: CIP-30 ext: Bulk transaction signing
4+
Category: Wallets
5+
Status: Proposed
6+
Authors:
7+
- Martín Schere
8+
- Ola Ahlman <[email protected]>
9+
Implementors:
10+
- JPG Store
11+
- Eternl
12+
- Typhon
13+
Discussions:
14+
- https://github.com/cardano-foundation/CIPs/pull/443
15+
Created: 2023-09-03
16+
License: CC-BY-4.0
17+
---
18+
19+
## Abstract
20+
This CIP extends [CIP-30 (Cardano dApp-Wallet Web Bridge)](https://cips.cardano.org/cips/cip30/) to provide an additional endpoint for dApp to sign multiple transactions in bulk.
21+
22+
## Motivation: why is this CIP necessary?
23+
Currently, there is no way to sign multiple transactions in bulk, and the experience of signing a chain of transactions is suboptimal. We propose the addition of a signTxs endpoint that enable wallets to create an array of interconnected transactions and sign them all at once.
24+
25+
## Specification
26+
27+
### TransactionSignatureRequest
28+
29+
```
30+
type = TransactionSignatureRequest {|
31+
cbor: cbor\<transaction>,
32+
partialSign: bool = false,
33+
|};
34+
```
35+
36+
Used to represent a single transaction awaiting a user's signature. More details on {partialSign} can be found in [api.signTx](https://cips.cardano.org/cips/cip30/#apisigntxtxcbortransactionpartialsignboolfalsepromisecbortransactionwitnessset) defined in CIP-30.
37+
38+
### api.signTxs(txs: TransactionSignatureRequest[]): Promise\<cbor\<transaction_witness_set>[]>
39+
40+
Errors: `APIError`, `TxSignError`
41+
42+
Signs a chain of transactions, which can be described as a sequence of interconnected transactions where each subsequent transaction depends on the previous one. The returned array values of the witness set directly correspond to the elements in the `txs` parameter, aligning the witness set at index 0 with the transaction at index 0, and so forth.
43+
44+
## Rationale: how does this CIP achieve its goals?
45+
Allowing for bulk signing of transactions can greatly increase user experience in certain situations. There are however certain things that should be considered by wallets implementing this CIP, namely user visibility of what is signed. Though not explicitly specified in this CIP, as it would be up to the wallet to find a good solution, the wallet should make it clear to the user that multiple transactions are to be signed, and to give a clear overview of what is signed. In addition to visibility, the wallet shall process input transaction array in order to allow transactions to be chained by accepting previous transaction in the array to be used as input in a following.
46+
47+
## Path to Active
48+
49+
### Acceptance Criteria
50+
In order for this standard to be active, the following should be true:
51+
- Implemented by at least two wallets.
52+
- Adopted and used by at least one dApp or infrastructure tool to prove usability.
53+
54+
### Implementation Plan
55+
Already implemented by dApp(s) and wallet(s).
56+
57+
## Copyright
58+
[CC-BY-4.0]: https://creativecommons.org/licenses/by/4.0/legalcode
59+
60+

0 commit comments

Comments
 (0)