|
| 1 | +.. _CIS-5: |
| 2 | + |
| 3 | +===================================== |
| 4 | +CIS-5: Smart Contract Wallet Standard |
| 5 | +===================================== |
| 6 | + |
| 7 | +.. list-table:: |
| 8 | + :stub-columns: 1 |
| 9 | + |
| 10 | + * - Created |
| 11 | + - Mar 17, 2024 |
| 12 | + * - Final |
| 13 | + - Mar 28, 2024 |
| 14 | + * - Supported versions |
| 15 | + - | Smart contract version 1 or newer |
| 16 | + | (Protocol version 4 or newer) |
| 17 | + * - Standard identifier |
| 18 | + - ``CIS-5`` |
| 19 | + |
| 20 | +Abstract |
| 21 | +======== |
| 22 | + |
| 23 | +A standard interface for defining a smart contract wallet that can hold and transfer native currency and cis2 tokens. |
| 24 | +Native currency/Cis2 tokens can be deposited into the smart contract wallet by |
| 25 | +specifying to which public key the deposit should be assigned. |
| 26 | + |
| 27 | +The holder of the corresponding private key is the only entity that can authorize |
| 28 | +to transfer tokens/currency in a self-custodial manner |
| 29 | +from the public key balance (assigned in the smart contract) to some new accounts/smart contracts/public keys. |
| 30 | + |
| 31 | +The holder of the corresponding private key does not have to submit transactions |
| 32 | +on chain to transfer its native currency/cis2 token balance, |
| 33 | +but instead, it can generate a valid signature, identify a willing third |
| 34 | +party to submit its signature on-chain (a service fee can be added to financially incentivize a third party to do so). |
| 35 | + |
| 36 | +The three main actions in the smart contract that can be taken: |
| 37 | + |
| 38 | +- *deposit*: assigns the balance to a public key within the smart contract wallet. |
| 39 | + |
| 40 | +- *internal transfer*: assigns the balance to a new public key within the smart contract wallet. |
| 41 | + |
| 42 | +- *withdraw*: withdraws the balance out of the smart contract wallet to a native account or smart contract. |
| 43 | + |
| 44 | +The goal is to simplify the account creation onboarding flow on Concordium |
| 45 | +allowing for CIS5 smart contract wallets to be supported as first-classs citizens on Concordium wallets and tooling. |
| 46 | + |
| 47 | +Specification |
| 48 | +============= |
| 49 | + |
| 50 | +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in :rfc:`2119`. |
| 51 | + |
0 commit comments