You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/what-is-celo/using-celo/protocol/transaction/overview.md
+4-8Lines changed: 4 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,22 +5,18 @@ description: Introduction to transactions on Celo.
5
5
6
6
# Transactions on Celo
7
7
8
-
Introduction to transactions on Celo.
8
+
In Celo's transition to a Layer 2 (L2) solution, several key changes have been proposed to the network's tokenomics, particularly concerning gas pricing and transaction fee allocation.
9
9
10
10
---
11
11
12
-
## Gas Pricing
13
-
14
12
:::info
15
13
16
14
This section is a work in progress and based on the ["The Great Celo Halvening - Proposed Tokenomics in the Era of Celo L2"](https://forum.celo.org/t/the-great-celo-halvening-proposed-tokenomics-in-the-era-of-celo-l2/9701/1). Please check the [forum](https://forum.celo.org/) for the latest information.
17
15
:::
18
16
19
-
In Celo's transition to a Layer 2 (L2) solution, several key changes have been proposed to the network's tokenomics, particularly concerning gas pricing and transaction fee allocation.
20
-
21
17
## Gas Pricing Mechanism
22
18
23
-
Celo employs a gas pricing model based on **EIP-1559**, which dynamically adjusts the base fee to manage network demand. This mechanism ensures that gas prices respond to network congestion, increasing during high demand periods and decreasing when demand is low. The protocol sets a **base fee floor** to prevent the base fee from falling below a certain threshold, safeguarding the network against spam transactions and uncontrolled state growth.
19
+
Celo employs a gas pricing model based on **EIP-1559**, which dynamically adjusts the base fee to manage network demand. This mechanism ensures that gas prices respond to network congestion, increasing during high demand periods and decreasing when demand is low. The protocol sets a **base fee floor** to prevent the base fee from falling below a certain threshold, safeguarding the network against spam transactions and uncontrolled state growth.
24
20
25
21
## Fee Abstraction
26
22
@@ -42,10 +38,10 @@ With the shift to L2, the allocation of transaction fees has been restructured t
42
38
43
39
-**Sequencer and Batcher Operations**: Supporting the infrastructure that orders and batches transactions on the network.
44
40
45
-
-**Revenue Sharing with the OP-Stack**: Complying with the Superchain Ecosystem requirements, which involve sharing revenue with the OP-Stack.
41
+
-**Revenue Sharing with the OP-Stack**: Complying with the Superchain Ecosystem requirements, which involve sharing revenue with the OP-Stack.
46
42
47
43
This reallocation ensures that transaction fees are utilized effectively to maintain network sustainability and operational efficiency in the L2 environment.
48
44
49
45
## Conclusion
50
46
51
-
Celo's transition to L2 introduces significant changes to gas pricing and transaction fee allocation, aligning with the network's goals of sustainability, user accessibility, and robust operational support. These adjustments are designed to enhance the overall efficiency and resilience of the Celo ecosystem.
47
+
Celo's transition to L2 introduces significant changes to gas pricing and transaction fee allocation, aligning with the network's goals of sustainability, user accessibility, and robust operational support. These adjustments are designed to enhance the overall efficiency and resilience of the Celo ecosystem.
Copy file name to clipboardExpand all lines: docs/what-is-celo/using-celo/protocol/transaction/transaction-types.mdx
+21-36Lines changed: 21 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Transaction types on Celo
2
+
title: Transaction Types on Celo
3
3
description: This page contains an explainer on transaction types supported on Celo and a demo to make specific transactions.
4
4
---
5
5
@@ -8,37 +8,22 @@ import TabItem from "@theme/TabItem";
8
8
9
9
This page contains an explainer on transaction types supported on Celo and a demo to make specific transactions.
10
10
11
-
> **IMPORTANT**
12
-
> This repo is for educational purposes only. The information provided here may be inaccurate.
13
-
> Please don't rely on it exclusively to implement low-level client libraries.
14
-
15
-
:::warning
16
-
As of block height 31,056,500 (March 26, 2025, 3:00 AM UTC), Celo is no longer a standalone Layer 1 blockchain—it is now an Ethereum Layer 2!
17
-
Some documentation may be outdated as updates are in progress. If you encounter issues, please [file a bug report](https://github.com/celo-org/docs/issues/new/choose).
18
-
19
-
For the most up-to-date information, refer to our [Celo L2 documentation](https://docs.celo.org/cel2).
20
-
:::
11
+
---
21
12
22
13
## Summary
23
14
24
-
Celo has support for all Ethereum transaction types (i.e. "100% Ethereum compatibility")
25
-
and a single Celo transaction type.
15
+
Celo has support for all Ethereum transaction types (i.e. "100% Ethereum compatibility") and a single Celo transaction type.
26
16
27
-
### Actively supported on Celo
17
+
### Actively Supported on Celo
28
18
29
19
| Chain | Transaction type | # | Specification | Recommended | Support | Comment |
| <imgwidth="20"src="/img/doc-images/transaction-types/Celo.jpg" /> | Dynamic fee transaction v2 |`123`|[CIP-64](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0064.md)| ✅ | Active 🟢 | Supports paying gas in custom fee currencies |
22
+
| <imgwidth="20"src="/img/doc-images/transaction-types/Ethereum.png" /> | Set code transaction |`4`|[EIP-7702](https://eips.ethereum.org/EIPS/eip-7702)| Available since the Isthmus hardfork |
| <imgwidth="20"src="/img/doc-images/transaction-types/Ethereum.png" /> | Access list transaction |`1`|[EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) ([CIP-35](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0035.md)) | ❌ | Active 🟢 | Does not support dynamically changing _base fee_ per gas |
34
25
| <imgwidth="20"src="/img/doc-images/transaction-types/Ethereum.png" /> | Legacy transaction |`0`|[Ethereum Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) ([CIP-35](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0035.md)) | ❌ | Active 🟢 | Does not support dynamically changing _base fee_ per gas |
| <imgwidth="20"src="/img/doc-images/transaction-types/Ethereum.png" /> | Set code transaction |`4`|[EIP-7702](https://eips.ethereum.org/EIPS/eip-7702)| Available from the [Isthmus](/cel2/notices/isthmus-upgrade.md) hardfork |
41
-
42
27
### Deprecated on Celo
43
28
44
29
| Chain | Transaction type | # | Specification | Support | Comment |
@@ -53,7 +38,7 @@ The stages of support are:
53
38
because it might be deprecated in the future.
54
39
-**Deprecated** 🔴: the transaction type is not supported and not recommended for use.
55
40
56
-
### Client library support
41
+
### Client Library Support
57
42
58
43
Legend:
59
44
@@ -79,7 +64,7 @@ Legend:
79
64
80
65
## Background
81
66
82
-
### Legacy transactions
67
+
### Legacy Transactions
83
68
84
69
Ethereum originally had one format for transactions (now called "legacy transactions").
85
70
A legacy transaction contains the following transaction parameters:
@@ -108,7 +93,7 @@ To produce a valid "legacy transaction":
108
93
A valid signed transaction can then be submitted on-chain, and its raw parameters can be
109
94
parsed by RLP-decoding the transaction.
110
95
111
-
### Typed transactions
96
+
### Typed Transactions
112
97
113
98
Over time, the Ethereum community has sought to add new types of transactions
114
99
such as dynamic fee transactions
@@ -122,7 +107,7 @@ legacy transaction format, the concept of **typed transactions** was proposed in
122
107
[EIP-2718: Typed Transaction Envelope](https://eips.ethereum.org/EIPS/eip-2718), which introduces
123
108
a new high-level transaction format that is used to implement all future transaction types.
124
109
125
-
### Distinguishing between legacy and typed transactions
110
+
### Distinguishing Between Legacy and Typed Transactions
126
111
127
112
Whereas a valid "legacy transaction" is simply an RLP-encoded list of
128
113
**transaction parameters**, a valid "typed transactions" is an arbitrary byte array
@@ -152,9 +137,9 @@ Every transaction type is defined in an EIP, which specifies how to _encode_ as
152
137
transaction payloads. This means that a typed transaction can only be interpreted with knowledge of
This transaction type is 100% compatible with Ethereum and has no Celo-specific parameters.
@@ -177,7 +162,7 @@ they are commonly referred to as "type 0" transactions.
177
162
on [May 19, 2021](https://blog.celo.org/donut-hardfork-is-live-on-celo-585e2e294dcb)
178
163
as specified in [CIP-35: Support for Ethereum-compatible transactions](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0035.md).
179
164
180
-
### <imgwidth="12"src="/img/doc-images/transaction-types/Ethereum.png" /> Access list transaction (`1`)
165
+
### <imgwidth="12"src="/img/doc-images/transaction-types/Ethereum.png" /> Access List Transaction (`1`)
181
166
182
167
:::note
183
168
This transaction type is 100% compatible with Ethereum and has no Celo-specific parameters.
@@ -198,7 +183,7 @@ This transaction type is 100% compatible with Ethereum and has no Celo-specific
198
183
on [May 19, 2021](https://blog.celo.org/donut-hardfork-is-live-on-celo-585e2e294dcb)
199
184
as specified in [CIP-35: Support for Ethereum-compatible transactions](https://github.com/celo-org/celo-proposals/blob/master/CIPs/cip-0035.md).
Copy file name to clipboardExpand all lines: docs/what-is-celo/using-celo/protocol/transaction/tx-comment-encryption.md
+11-18Lines changed: 11 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,40 +7,33 @@ description: Overview of encrypted payment comments and its technical details re
7
7
8
8
In this section, you will find detailed information about the various transaction types supported on Celo, including encrypted payment comments and their technical details, as well as insights into gas pricing and fee abstraction.
9
9
10
-
:::warning
11
-
As of block height 31,056,500 (March 26, 2025, 3:00 AM UTC), Celo is no longer a standalone Layer 1 blockchain—it is now an Ethereum Layer 2!
12
-
Some documentation may be outdated as updates are in progress. If you encounter issues, please [file a bug report](https://github.com/celo-org/docs/issues/new/choose).
13
-
14
-
For the most up-to-date information, refer to our [Celo L2 documentation](https://docs.celo.org/cel2).
15
-
:::
16
-
17
10
---
18
11
19
-
###Introduction to Comment Encryption
12
+
## Introduction to Comment Encryption
20
13
21
14
As part of Celo's identity protocol, a public encryption key is stored along with a user's address in the `Accounts` contract.
22
15
23
16
Both the address key pair and the encryption key pair are derived from the backup phrase. When sending a transaction the encryption key of the recipient is retrieved when getting his or her address. The comment is then encrypted using a 128 bit hybrid encryption scheme \(ECDH on secp256k1 with AES-128-CTR\). This system ensures that comments can only be read by the sending and receiving parties and that messages will be recovered when restoring a wallet from its backup phrase.
24
17
25
-
###Comment Encryption Technical Details
18
+
## Comment Encryption Technical Details
26
19
27
20
A 128 bit randomly generated session key, sk, is generated and used to symmetrically encrypt the comment. sk is asymmetrically encrypted to the sender and to the recipient.
- Takes encryption key, ke, and MAC key, km, and the data to encrypt, plaintext
34
27
- Cipher: AES-128-CTR using a randomly generated iv
35
28
- Authenticate iv \| ciphertext using HMAC with SHA-256 and km
36
29
- Return iv \| ciphertext \| mac
37
30
38
-
####Asymmetric Encryption \(ECIES\)
31
+
### Asymmetric Encryption \(ECIES\)
39
32
40
-
1.Takes data to encrypt, plaintext, and the public key of the recipient, pubKeyTo
41
-
2.Generate an ephemeral keypair, ephemPubKey and ephemPrivKey
42
-
3.Derive 32 bytes of key material, k, from ECDH between ephemPrivKey and pubKeyTousing ConcatKDF \(specified as NIST 800-56C Rev 1 One Step KDF\) with SHA-256 for H\(x\)
43
-
4.The encryption key, ke, is the first 128 bits of k
44
-
5.The MAC key, km, is SHA-256 of the second 128 bits of k
45
-
6.Encrypt the plaintext symmetrically with AES-128-CTR using ke, km, and a random iv
46
-
7.Return ephemPubKey \| AES-128-CTR-HMAC\(ke, km, plaintext\) where the public key needs to be uncompressed \(current limitation with decrypt\).
33
+
1. Takes data to encrypt, plaintext, and the public key of the recipient, pubKeyTo
34
+
2. Generate an ephemeral keypair, ephemPubKey and ephemPrivKey
35
+
3. Derive 32 bytes of key material, k, from ECDH between ephemPrivKey and pubKeyTousing ConcatKDF \(specified as NIST 800-56C Rev 1 One Step KDF\) with SHA-256 for H\(x\)
36
+
4. The encryption key, ke, is the first 128 bits of k
37
+
5. The MAC key, km, is SHA-256 of the second 128 bits of k
38
+
6. Encrypt the plaintext symmetrically with AES-128-CTR using ke, km, and a random iv
39
+
7. Return ephemPubKey \| AES-128-CTR-HMAC\(ke, km, plaintext\) where the public key needs to be uncompressed \(current limitation with decrypt\).
0 commit comments