Skip to main content

Table description

The starknet.transactions table contains information about all transactions on the Starknet blockchain, including both user-initiated and system transactions. Transactions are the actions that modify the state of the blockchain, such as transfers of tokens or the execution of smart contracts. Each transaction is uniquely identified and linked to the block in which it was included.

Table Schema

ColumnTypeDescription
block_dateDATEThe date of the block containing this transaction (UTC)
block_timeTIMESTAMPThe timestamp of the block containing this transaction
block_numberBIGINTThe sequential number of the block containing this transaction
block_l1_da_modeVARCHARLayer 1 data availability mode (BLOB or CALLDATA)
block_l1_data_gas_price_in_friUINT256L1 data gas price in fri (STRK) for the block
block_l1_data_gas_price_in_weiUINT256L1 data gas price in wei (ETH) for the block
block_l1_gas_price_in_friUINT256L1 gas price in fri (STRK) for the block
block_l1_gas_price_in_weiUINT256L1 gas price in wei (ETH) for the block
block_l2_gas_price_in_friUINT256L2 gas price in fri (STRK) for the block
block_l2_gas_price_in_weiUINT256L2 gas price in wei (ETH) for the block
block_starknet_versionVARCHARThe Starknet protocol version of the block
fee_data_availability_modeVARCHARStorage domain for fee payment (L1 or L2)
indexINTEGERPosition of this transaction within the block
max_feeUINT256Maximum fee the sender is willing to pay (pre-v3 transactions)
nonceINTEGERSender’s transaction sequence number to prevent replays
nonce_data_availability_modeVARCHARStorage domain for the account nonce (L1 or L2)
resource_bounds_l1_gas_max_amountUINT256Maximum L1 gas amount the sender is willing to consume (v3+)
resource_bounds_l1_gas_max_price_per_unitUINT256Maximum price per unit of L1 gas the sender will pay (v3+)
resource_bounds_l1_data_gas_max_amountUINT256Maximum L1 data gas amount the sender is willing to consume (v3+)
resource_bounds_l1_data_gas_max_price_per_unitUINT256Maximum price per unit of L1 data gas the sender will pay (v3+)
resource_bounds_l2_gas_max_amountVARBINARYMaximum L2 gas amount the sender is willing to consume (v3+)
resource_bounds_l2_gas_max_price_per_unitVARBINARYMaximum price per unit of L2 gas the sender will pay (v3+)
tipUINT256Optional tip paid to the sequencer for priority (v3+)
typeVARCHARTransaction type (INVOKE, L1_HANDLER, DECLARE, DEPLOY_ACCOUNT, DEPLOY)
versionINTEGERTransaction version number
actual_fee_amountUINT256Actual fee charged for this transaction
actual_fee_unitVARCHARUnit of the actual fee (WEI for ETH, FRI for STRK)
execution_resources_bitwise_builtin_applicationsINTEGERNumber of bitwise builtin applications consumed
execution_resources_data_availability_l1_gasUINT256L1 gas consumed for data availability
execution_resources_data_availability_l1_data_gasUINT256L1 data gas consumed for data availability
execution_resources_data_availability_l2_gasUINT256L2 gas consumed for data availability
execution_resources_ec_op_builtin_applicationsINTEGERNumber of elliptic curve operation builtin applications consumed
execution_resources_ecdsa_builtin_applicationsINTEGERNumber of ECDSA builtin applications consumed
execution_resources_keccak_builtin_applicationsINTEGERNumber of Keccak builtin applications consumed
execution_resources_memory_holesINTEGERNumber of memory holes in the execution trace
execution_resources_pedersen_builtin_applicationsINTEGERNumber of Pedersen hash builtin applications consumed
execution_resources_poseidon_builtin_applicationsINTEGERNumber of Poseidon hash builtin applications consumed
execution_resources_range_check_builtin_applicationsINTEGERNumber of range check builtin applications consumed
execution_resources_segment_arena_builtinINTEGERNumber of segment arena builtin applications consumed
execution_resources_stepsINTEGERTotal number of Cairo VM steps executed
execution_statusVARCHARFinal execution status of the transaction
finality_statusVARCHARFinality status (ACCEPTED_ON_L1 or ACCEPTED_ON_L2)
receipt_typeVARCHARType of the transaction receipt
block_hashVARBINARYHash of the block containing this transaction
block_new_rootVARBINARYNew global state root after the block
block_parent_hashVARBINARYHash of the preceding block
block_sequencer_addressVARBINARYAddress of the sequencer that produced the block
calldataARRAY(VARBINARY)Input data for the transaction’s function call
class_hashVARBINARYClass hash of the declared or deployed contract
compiled_class_hashVARBINARYCompiled class hash (for DECLARE v2+ transactions)
constructor_calldataARRAY(VARBINARY)Constructor arguments (for DEPLOY_ACCOUNT transactions)
contract_addressVARBINARYAddress of the contract involved in this transaction
contract_address_saltVARBINARYSalt used for contract address computation (for deployments)
entry_point_selectorVARBINARYSelector identifying the invoked function entry point
hashVARBINARYUnique hash identifying this transaction
sender_addressVARBINARYAddress of the account that sent this transaction
signatureARRAY(VARBINARY)Cryptographic signature of the transaction
message_hashVARBINARYHash of the L1-to-L2 message (for L1_HANDLER transactions)
messages_sentARRAY(ROW(FROM_ADDRESS VARBINARY, PAYLOAD VARBINARY, TO_ADDRESS VARBINARY))L2-to-L1 messages sent by this transaction
revert_reasonVARCHARReason for transaction failure, if it reverted
transaction_hashVARBINARYHash of this transaction (same as hash)
  • Prior to v3 transactions upgrade, fees are denominated in wei as users pay gas with ETH. For transactions v3 and later, fees are denominated in fri as users pay gas with STRK. Hence here you can see two gas types of gas fields, one for wei and one for fri.
  • Starting with Starknet v0.13.1, Starknet distinguishes between blocks whose state diffs are sent to L1 as calldata and blocks whose state diffs are sent to L1 as blobs. The l1_da_mode property in the Starknet block header contains this information. Values possible are BLOB or CALLDATA.
  • The type fields denotes different types of transactions supported by Starknet. Possible values are: INVOKE, L1_HANDLER, DECLARE, DEPLOY_ACCOUNT, and DEPLOY.
  • The fee_data_availability_mode field denotes the storage domain of the account’s balance from which fee will be charged. It can be one of ‘L1’ or ‘L2’
  • The block_status has possible values ACCEPTED_ON_L1 or ACCEPTED_ON_L2. Read here to learn more about different transaction status.
  • The actual_fee has the actual fee paid for the transaction, to be used together with actual_fee_unit.

Table Sample