Starknet Alpha 0.10.0
Starknet Alpha 0.10.0 released to Mainnet!
- Account Abstraction Improvements in spirit of EIP-4337
- Validate — Execute separation
- Transaction uniqueness is now ensured in the protocol (Nonce)
- The fee mechanism is extended to include:
- L1→L2 Messages
- Declare Transactions
- Few Cairo syntax changes
We are excited to present Starknet Alpha 0.10.0. This version is another step toward scaling Ethereum without compromising on security and decentralization.
Account Abstraction Changes
Up until now, the account’s __execute__ function was responsible for both the transaction validation and execution. In 0.10.0 we break this coupling and introduce a separate __validate__ function into accounts. Upon receiving a transaction, the account contract will first call __validate__, and then, if successful, proceed to __execute__.
The validate/execute separation provides a protocol-level distinction between invalid and reverted (yet valid) transactions. Thanks to that, sequencers will be able to charge fees for the execution of a valid transaction regardless of whether it was reverted or not.
In version 0.10.0 a nonce field is added in order to enforce transaction uniqueness at the protocol level. Until now nonces were handled at the account contract level, which meant that a transaction with the same hash could be executed twice theoretically.
Similarly to Ethereum, every contract now includes a nonce, which counts the number of executed transactions from this account. Account contracts will only accept transactions with a matching nonce, i.e., if the current nonce of the account is X, then it will only accept transactions with nonce X.
New Transaction Version
To allow backward-compatibility, we will introduce those two changes via a new transaction version — v1. Those changes will only apply to the new version, and older accounts will still be able to execute version 0 transactions.
Note — transaction v0 is now deprecated and will be removed in Starknet Alpha v0.11.0. Please make sure you upgrade to use the new transaction version.
For more detailed information about the transaction version, please read the documentation.
The new version allows to include fees for two required components:
These fees will not be mandatory in this version and will only be enforced starting Starknet Alpha v0.11.0.
Cairo Syntax Changes
In favor of gradual progress towards an upgrade of Cairo, Cairo 1.0, this version includes several syntax changes.
- In a few weeks, we plan to introduce parallelization into the sequencer, enabling faster block production (V0.10.1)
- We will soon complete the last part that must be included in the fee payment — Account deployment
- Cairo 1.0 release! More info on that in an upcoming post.
How Can I Be More Engaged?
- Go to starknet.io for all Starknet information, documentation, tutorials, and updates.
- Join Starknet Discord for dev support, ecosystem announcements, and becoming a part of the community.
- Visit the Starknet Forum to stay up to date and participate in Starknet research discussions.
We are always happy to receive feedback on our documentation!