meta_tx_v0
syscall is introduced to enable calling old accounts (i.e., ones without __validate__
) via v3 transactionsREJECTED
transaction status, changing the behavior of the RECEIVED
transaction status, adding new CANDIDATE
and PRE_CONFIRMED
transaction statuses, and introducing the PRE_CONFIRMED
blockfeeder.{chain_name}.starknet.io/feeder_gateway
(while the gateway URL remains {chain_name}.starknet.io/gateway
), adding a new get_preconfirmed_block
endpoint, deprecating the get_oldest_transaction_age
and get_number_of_transactions_in_backlog
endpoints, and changing the behavior of the get_transaction_status
endpointREVERTED
in blocksl2_gas
resource is introduced, following Ethereum’s EIP 1559__execute__
are now revertedWalletAccount
classredeposit_gas
, reduces worst-case fees, adds new syscallsflag
is unchanged (i.e., it indicates whether or not the class was replaced)n_updates_len
is 0 if the number of updates is less than 256 (and therefore can fit in 8 bits), and 1 otherwisen_updates
can spread over 8 or 64 bits, depending on n_updates_len
new_nonce
is zero (and not the unchanged nonce)total_gas_consumed
, only for transactions after v0.13.2. Three new builtins can appear in the builtin_instance_counter
property of execution_resources
in the transaction receipts: add_mod
, mul_mod
and range_check96
. End support for the endpoints get_block_traces
and get_transaction_trace
.data_gas
to the Starknet block header.__validate__
, __validate_deploy__
, __validate_declare__
, or constructor
function: block_timestamp
returns the hour, rounded down. block_number
returns the block number, rounded down to the nearest multiple of 100.l1_da_mode
, l1_data_gas_price
, and l1_gas_price
.API: JSON RPC:
Starknet 0.13.1 is backward compatible with starknet_api_openrpc.json
v0.6.0. A new version 0.7.0 accommodates the changes introduced by Starknet using EIP-4844.Pricing changes:get_block
API: The gas_price
field is replaced by the eth_l1_gas_price
and strk_l1_gas_price
fields. This change applies also to existing blocks. For more information on the new fields, see the JSON RPC API Spec on GitHubsecp256k1_mul
and secp256r1_mul
syscallssecp256r1
syscalls in the Starknet OS.__validate__
and the constructor of DeployAccount
transactions: Restrict access to sequencer_address
in the get_execution_info
syscall by returning 0
’s for the address. Restrict access to the following syscalls: Cairo contracts: get_block_hash
, Cairo 0 contracts: get_sequencer_address
get_state_update
endpoint in the sequencer gateway that returns both the pending state diff and the pending block together.PENDING
status of transactions to ACCEPTED_ON_L2
- once a transaction is in that status it means that it will be included in a block, this applies to transactions - blocks still have the PENDING
status.get_block_hash
syscall.get_state_update
for pending blocks to allow faster responses in future versions.deploy()
to two phases declare and deploy: deprecated_declare()
(for Cairo 0 contract) or declare()
(for Cairo 1.0 contracts) and deploy()
(for both).LogStateUpdate
event’s data is changed to include blockHash.declare
transaction, which allows sending the new class structurereplace_class
deploy
transaction is no longer supported on this version.starknet-class-hash
command to compute the class hash of a compiled Starknet contractestimate_fee_bulk
, is added to the feeder gateway. This will allow estimating the fee of several transactions at once, where each transaction is executed relative to the resulting state from applying the previous one.estimate_fee_bulk
API that computes the fee of multiple transactions that will be executed consecutivelyDeployAccount
transaction (which will replace the Deploy transaction for deploying account contracts). To use it, you should first add enough funds to your account address to pay the transaction fee, and then you can invoke DeployAccountstarknet deploy_account
CLI command into starknet new_account
and starknet deploy_account
__validate_deploy__()
entry point, which should check the signature of the DeployAccount
transactionentry_point_type
field from transaction informationuint256_mul_div_mod
to uint256.cairo
invoke
and declare
transactions: Transactions of version 0 are deprecated and will not be supported in Starknet from the next version (v0.11.0). Please update your systems to use the new versionInvoke
: Split __execute__
to two functions: __validate__
(only validates the transaction) and __execute__
(only executes the transaction). Remove the selector (which is now always __execute__
) field, following the above change.declare
transaction should now be sent from an account (and is validated using __validate_declare__
in the account contract)-i
flag to apply the changes to the files. End statements with ;
. Use { … }
for code blocks (instead of :
and end
). Add ()
around the condition of if statements. Remove the member keyword in structs. Change comment to use //
instead of #
. Use ..., ap++
instead of ...; ap++
in low level Cairo code. Support return types that are not tuples. Return statement accepts expressions, rather than only tuples. Support using functions as expressions. Fix a bug in the secp signature verification code. Add Cairo code for the recursive STARK verifier.Technical changes:get_block_traces
API - returns all the transaction traces of a given blockget_state_update
starknet_version
field for blocks (only applies to new blocks)--no_wallet
must be specified explicitly to override thisdeploy_contract
function to the account contract created by starknet deploy_account
. Use this function to deploy contract (unless using --no_wallet
). In particular, deploy
should be used after declaring the contract (it expects the contract class hash)--dry_run
to get the transaction information without signing or sending itdeploy_from_zero
in the deploy
syscall to deploy a contract to an address that does not depend on the deployerif x == y and z == w
).max_fee
must not be set to zero, and selector must be __execute__
declare
transaction typedeclare
- Declares a contract class. get_class_by_hash
- Returns the contract class given its hash. get_class_hash_at
- Returns the class hash for a given contract instance addressdelegate_call
to library_call
, and change the contract address argument to class hash.deploy
system call.ContractDefinition
to ContractClass
--dont_filter_identifiers
)EC-op
builtin (scalar multiplication over the STARK curve). Not supported in Starknet yet.blake2s.cairo
, including big-endian supportreturn
type from a struct to a named tuple. In particular, foo.Return.SIZE
is no longer supported.