Skip to content

Commit 27f9403

Browse files
committed
Initial CIS5 standard
1 parent 4ad35ae commit 27f9403

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed

source/CIS/cis-5.rst

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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+

source/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ Concordium Interoperability Specifications
2121
CIS/cis-2
2222
CIS/cis-3
2323
CIS/cis-4
24+
CIS/cis-5
2425
ID/concordium-did.rst

0 commit comments

Comments
 (0)