Skip to main content

starknet_addDeclareTransaction RPC Method

Submit a new class declaration transaction.

Updated on
Mar 18, 2024

Parameters

declare_transaction
object
REQUIRED

Declare transaction required to declare a new class on Starknet. Starknet JSON-RPC 0.9 only accepts v3 transactions, which contain the following fields:

type
string
REQUIRED

The type of declare. It can take only one value - 'DECLARE'

sender_address
string
REQUIRED

The address of the account contract sending the declaration transaction

compiled_class_hash
string
REQUIRED

The hash of the Cairo assembly resulting from the Sierra compilation

version
string
REQUIRED

The version of the transaction scheme

signature
string
REQUIRED

The signature associated with the transaction

nonce
string
REQUIRED

The nonce value

contract_class
object
REQUIRED

The class to be declared

sierra_program
array
REQUIRED

The list of Sierra instructions of which the program consists

contract_class_version
string
REQUIRED

The version of the contract class object. Currently, the Starknet OS supports version 0.1.0

entry_points_by_type
object
REQUIRED

The entry points by type object which contains the following fields:

CONSTRUCTOR
array
REQUIRED

The list of Sierra instructions of which the program consists

selector
string
REQUIRED

A unique identifier of the entry point (function) in the program

function_idx
integer
REQUIRED

The index of the function in the program

EXTERNAL
array
REQUIRED

The list of Sierra instructions of which the program consists

selector
string
REQUIRED

A unique identifier of the entry point (function) in the program

function_idx
integer
REQUIRED

The index of the function in the program

L1_HANDLER
array
REQUIRED

The list of Sierra instructions of which the program consists

selector
string
REQUIRED

A unique identifier of the entry point (function) in the program

function_idx
integer
REQUIRED

The index of the function in the program

abi
string

The class ABI, as supplied by the user declaring the class

resource_bounds
object
REQUIRED

The resource bounds for the transaction execution

l1_gas
object
REQUIRED

The max amount and max price per unit of L1 gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

l1_data_gas
object
REQUIRED

The max amount and max price per unit of L1 data gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

l2_gas
object
REQUIRED

The max amount and max price per unit of L2 gas used in this tx

max_amount
string
REQUIRED

The max amount of the resource that can be used in the tx

max_price_per_unit
string
REQUIRED

The max price per unit of this resource for this tx

tip
string
REQUIRED

The tip for the transaction

paymaster_data
array
REQUIRED

The data needed to allow the paymaster to pay for the transaction in native tokens

account_deployment_data
array
REQUIRED

The data needed to deploy the account contract from which this tx will be initiated

nonce_data_availability_mode
string
REQUIRED

The storage domain of the account's nonce (an account has a nonce per DA mode). It can be one of 'L1' or 'L2'

fee_data_availability_mode
string
REQUIRED

The storage domain of the account's balance from which fee will be charged. It can be one of 'L1' or 'L2'

Returns

result
object

The result of the transaction submission

transaction_hash
string

The result of the transaction submission

class_hash
string

The hash of the declared class

Request
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free