Transaction Limits
  • 30 Nov 2023
  • 2 Minutes to read
  • Dark
    Light
  • PDF

Transaction Limits

  • Dark
    Light
  • PDF

Article summary

SBOR Limits

In Radix Engine, almost all payloads are encoded Scrypto SBOR or Manifest SBOR, including but not limited to:

  • Transaction payload
  • Component state
  • Function invocation input and output
  • System APIs

When the engine validates or decodes these payloads, it applies the following additional limits:

LimitValueDescription
BLUEPRINT_PAYLOAD_MAX_DEPTH48The max depth of blueprint payload, such as component state, events and function input/output.
KEY_VALUE_STORE_ENTRY_MAX_DEPTH48The max depth of KeyValueStore entries, both keys and values.

Transaction Limits

LimitValueDescription
MAX_NUMBER_OF_INTENT_SIGNATURES16The maximum number of signatures that can be used to sign a transaction intent. This does not include notary signature.
MAX_NUMBER_OF_BLOBS16The maximum number of blobs a transaction can include.
MIN_TIP_PERCENTAGE0%The minimum tip percentage.
MAX_TIP_PERCENTAGE65,535%The maximum tip percentage.
MAX_EPOCH_RANGE8640The maximum allowed epoch range in the transaction header. This is roughly about 30 days assuming a 5-minute epoch time.
MAX_TRANSACTION_SIZE1 MiBThe maximum transaction payload size.

System Limits

LimitValueDescription
EXECUTION_COST_UNIT_LIMIT100,000,000The maximum number of execution cost units that a transaction can use.
FINALISATION_COST_UNIT_LIMIT50,000,000The maximum number of finalisation cost units that a transaction can use.
PREVIEW_CREDIT_IN_XRD1,000,000The amount of XRD that is used as transaction fee when previewing a manifest intent.
MAX_CALL_DEPTH8The max depth of the call frames.
Depth increases by 1 when a function or method is invoked and decreases by 1 after the invocation is finished.
MAX_HEAP_SUBSTATE_TOTAL_SIZE64 MiBThe maximum total size of substates in the Heap.
  • Both substate keys and values are accounted.
  • Heap is the storage that keeps all the substates of nodes that are neither globalised nor owned by a global object.
MAX_TRACK_SUBSTATE_TOTAL_SIZE64 MiBThe maximum total size of substates in the Heap.
  • Both substate keys and values are accounted.
  • Track is the storage that keeps all the substates of "loaded" globalised nodes and their children.
MAX_SUBSTATE_KEY_SIZE2 KiBThe maximum size of a substate key.
MAX_SUBSTATE_VALUE_SIZE2 MiBThe maximum size of a substate value.
MAX_INVOKE_PAYLOAD1 MiBThe maximum size of invocation payload, encoding of the call arguments.
MAX_EVENT_SIZE32 KiBThe maximum size of a single event.
MAX_NUMBER_OF_EVENTS256The maximum number of events that a transaction can produce.
MAX_LOG_SIZE32 KiBThe maximum size of a single log.
MAX_NUMBER_OF_LOGS<256The maximum number of logs that a transaction can produce.
MAX_PACK_MESSAGE_SIZE32 KiBThe maximum size of a panic message.

WASM Limits

LimitValueDescription
MAX_MEMORY_SIZE_IN_PAGES8The maximum depth of an access rule.
MAX_INITIAL_TABLE_SIZE1024The maximum initial table size.
MAX_NUMBER_OF_BR_TABLE_TARGETS256The maximum of BR table targets.
MAX_NUMBER_OF_GLOBALS512The maximum number of global variables.
MAX_NUMBER_OF_FUNCTIONS8192
The maximum number of functions.
MAX_NUMBER_OF_FUNCTION_PARAMS32The maximum of parameters in a single function.
MAX_NUMBER_OF_FUNCTION_LOCALS256The maximum of locals in a single function.
MAX_NUMBER_OF_BUFFERS32The max number of buffers that a Scrypto VM can allocate.
Buffers are used for data exchange between system and Scrypto blueprints.

Metadata Limits

LimitValueDescription
MAX_METADATA_KEY_STRING_LEN100The maximum length of a metadata key (in characters).
MAX_METADATA_VALUE_SBOR_LEN4 KiBThe maximum size of a metadata value (measured in bytes of the SBOR encoding).
MAX_URL_LENGTH1024The maximum length of a URL.
MAX_ORIGIN_LENGTH1024The maximum length of an Origin.
MAX_ACCESS_RULE_DEPTH8The maximum depth of an access rule.
MAX_ACCESS_RULE_TOTAL_NODES64The maximum total number of nodes in an access rule.

Access Rule Limits

LimitValueDescription
MAX_ACCESS_RULE_DEPTH8The maximum depth of an access rule.
MAX_ACCESS_RULE_TOTAL_NODES64The maximum total number of nodes in an access rule.

Royalty Limits

LimitValueDescription
MAX_PER_FUNCTION_ROYALTY_AMOUNT_IN_XRD166.666666666666666666The maximum royalty amount (converted into XRD) that can be set on a function.
This is roughly 10 USD.

Blueprint Package Limits

LimitValueDescription
MAX_FEATURE_NAME_LEN100The maximum length of a feature name.
Note: The "features" is a capability exposed to native blueprints only.
MAX_EVENT_NAME_LEN100The maximum length of an event name.
MAX_REGISTERED_TYPE_NAME_LEN
100The maximum length of the name of a registered type.
MAX_BLUEPRINT_NAME_LEN
100The maximum length of a blueprint name.
MAX_FUNCTION_NAME_LEN
256The maximum length of a function name.
MAX_NUMBER_OF_BLUEPRINT_FIELDS
256The maximum number of fields defined in a blueprint.
Note: Scrypto blueprints have only one field as of now.




Was this article helpful?

What's Next