Download OpenAPI specification:Download
This API is exposed by the Babylon Radix node to give clients access to the Radix Engine, Mempool and State in the node. It is intended for use by node-runners on a private network, and is not intended to be exposed publicly. Heavy load may impact the node's function.
If you require queries against historical ledger state, you may also wish to consider using the Gateway API.
The API is split into 5 sub apis:
/status/*
) - For status and configuration details for the node / engine./transaction/*
) - For transaction construction, preview, submission, and monitoring the status of an individual transaction./mempool/*
) - For information on the contents of the node's mempool./state/*
) - For reading the state of entities. At present, we only support reading details from the top of the currently committed ledger./stream/*
) - For reading the committed transactions.Interacting with this API effectively may require knowledge about the Radix Babylon Transaction Model and the State Model.
We share some very high-level details below, but please see the official documentation for more details on this.
User transactions are formed of a core "intent", which is then signed by 0+ signatories, before being notarized. The output is called a notarized payload. It is this notarized transaction payload which is submitted to the network.
For most users, this construction process will generally happen in their Radix Wallet. If you wish to construct transactions programmatically or offline, you will need to integrate the Radix Engine Toolkit into your application for construction and finalization.
Once submitted, a transaction payload can end up being either rejected or committed. Transactions get rejected if they fail to pass certain criteria at the given time. A transaction payload can be marked as a:
A given intent typically is only part of one submitted notarized payload, but it's possible for a notary to notarize and submit multiple payloads for the same intent. The Radix Engine ensures that any intent can only be committed once.
A committed transaction is either committed with an outcome of "Success" or "Failure":
Only committed transactions appear on ledger. The status of rejected transactions can be read at submission time or from the transaction status endpoint - by virtue of a rejection cache on the node. This cache is limited in size, so rejected statuses may no longer be tracked after a period of time.
For a more robust handling of transaction rejections, consider running your own Gateway.
The Radix Engine State Model can be thought of as a forest of state sub-trees. A state sub-tree consists of "entities". These entities have an ID, and 0 or more "substates" at keys underneath them. These substates are typed, and can own other entities, forming a tree of ownership.
Each state sub-tree has a root entity, and a single Bech32M Global Address, with a human-readable-prefix (and prefix byte) matching the root entity type.
As an example, entities include concepts like Components, Packages, Vaults, Resource Managers and Key-Value Stores. Substates under a component include the Component Struct, Component Data, and Access Rules substates.
Returns the network configuration of the network the node is connected to.
Network Configuration
Server error
{- "version": {
- "core_version": "string",
- "api_version": "string"
}, - "network": "{{network}}",
- "network_id": 255,
- "network_hrp_suffix": "string",
- "address_types": [
- {
- "subtype": "Resource",
- "hrp_prefix": "string",
- "entity_type": "Global",
- "address_byte_prefix": 255,
- "address_byte_length": 255
}
], - "well_known_addresses": {
- "account_package": "string",
- "faucet": "string",
- "epoch_manager": "string",
- "clock": "string",
- "ecdsa_secp256k1": "string",
- "eddsa_ed25519": "string",
- "xrd": "string"
}
}
Returns the current state and status of the node's copy of the ledger.
Network Status
Server error
{- "network": "{{network}}"
}
{- "pre_genesis_state_identifier": {
- "state_version": 100000000000000,
- "accumulator_hash": "stringstringstringstringstringstringstringstringstringstringstri"
}, - "post_genesis_state_identifier": {
- "state_version": 100000000000000,
- "accumulator_hash": "stringstringstringstringstringstringstringstringstringstringstri"
}, - "current_state_identifier": {
- "state_version": 100000000000000,
- "accumulator_hash": "stringstringstringstringstringstringstringstringstringstringstri"
}
}
For transaction construction, preview, submission, and monitoring the status of an individual transaction.
Extracts the contents and hashes of various types of transaction payloads, or sub-payloads.
Transaction Parse Response
Client error
Server error
{- "network": "{{network}}",
- "payload_hex": "string",
- "parse_mode": "Any",
- "validation_mode": "None",
- "response_mode": "Basic"
}
{- "parsed": {
- "type": "NotarizedTransaction"
}
}
Submits a notarized transaction to the network. Returns whether the transaction submission was already included in the node's mempool.
Transaction Submit Response
Client error
Server error
{- "network": "{{network}}",
- "notarized_transaction_hex": "string"
}
{- "duplicate": true
}
Shares the node's knowledge of any payloads associated with the given intent hash. Generally there will be a single payload for a given intent, but it's theoretically possible there may be multiple. This knowledge is summarised into a status for the intent. This summarised status in the response is likely sufficient for most clients.
Transaction status response
Client error
Server error
{- "network": "{{network}}",
- "intent_hash": "stringstringstringstringstringstringstringstringstringstringstri"
}
{- "intent_status": "CommittedSuccess",
- "status_description": "string",
- "invalid_from_epoch": 10000000000,
- "known_payloads": [
- {
- "payload_hash": "stringstringstringstringstringstringstringstringstringstringstri",
- "status": "CommittedSuccess",
- "error_message": "string"
}
]
}
Gets the transaction receipt for a committed transaction.
Committed transaction found response
Client error
Committed transaction not found response
Server error
{- "network": "{{network}}",
- "intent_hash": "stringstringstringstringstringstringstringstringstringstringstri"
}
{- "committed": {
- "state_version": 1,
- "accumulator_hash": "stringstringstringstringstringstringstringstringstringstringstri",
- "ledger_transaction": {
- "type": "User",
- "payload_hex": "string"
}, - "receipt": {
- "status": "Succeeded",
- "fee_summary": {
- "cost_unit_price": "string",
- "tip_percentage": 255,
- "cost_unit_limit": 4294967295,
- "cost_units_consumed": 4294967295,
- "xrd_total_execution_cost": "string",
- "xrd_total_royalty_cost": "string",
- "xrd_total_tipped": "string",
- "xrd_vault_payments": [
- {
- "vault_entity": {
- "entity_type": "Global",
- "entity_id_hex": "string"
}, - "xrd_amount": "string"
}
], - "cost_unit_execution_breakdown": "string",
- "cost_unit_royalty_breakdown": "string"
}, - "state_updates": {
- "created_substates": [
- {
- "substate_id": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "version": 100000000000000,
- "substate_hex": "string",
- "substate_data_hash": "string",
- "substate_data": {
- "substate_type": "Metadata"
}
}
], - "updated_substates": [
- {
- "substate_id": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "version": 100000000000000,
- "substate_hex": "string",
- "substate_data_hash": "string",
- "substate_data": {
- "substate_type": "Metadata"
}
}
], - "deleted_substates": [
- {
- "substate_id": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "substate_data_hash": "string",
- "version": 100000000000000
}
], - "new_global_entities": [
- {
- "target_entity_type": "Global",
- "target_entity_id_hex": "string",
- "global_entity_id_hex": "string",
- "global_address_hex": "string",
- "global_address": "string"
}
]
}, - "next_epoch": {
- "epoch": 10000000000,
- "validators": [
- {
- "address": "string",
- "key": {
- "key_type": "EcdsaSecp256k1",
- "key_hex": "stringstringstringstringstringstringstringstringstringstringstring"
}, - "stake": "string"
}
]
}, - "output": [
- {
- "data_hex": "string",
- "data_json": null
}
], - "error_message": "string"
}
}
}
Preview a scrypto function or method call against the latest network state. Returns the result of the scrypto function or method call.
Result of the scrypto function call
Client error
Server error
{- "target": {
- "type": "method",
- "component_address": "component_loc1qftacppvmr9ezmekxqpq58en0nk954x0a7jv2zz0hc7qfxlgx4",
- "method_name": "lock_fee"
}, - "arguments": [
- "a120000000000010632d5ec66b050000000000000000000000000000000000000000000000"
]
}
{- "status": "Succeeded",
- "output": {
- "data_hex": "string",
- "data_json": null
}, - "error_message": "string"
}
Preview a transaction against the latest network state, and returns the preview receipt.
Transaction preview response
Client error
Server error
{- "network": "{{network}}",
- "manifest": "string",
- "blobs_hex": [
- "string"
], - "start_epoch_inclusive": 10000000000,
- "end_epoch_exclusive": 10000000000,
- "notary_public_key": {
- "key_type": "EcdsaSecp256k1"
}, - "notary_as_signatory": true,
- "cost_unit_limit": 4294967295,
- "tip_percentage": 255,
- "nonce": "string",
- "signer_public_keys": [
- {
- "key_type": "EcdsaSecp256k1"
}
], - "flags": {
- "unlimited_loan": true,
- "assume_all_signature_proofs": true,
- "permit_duplicate_intent_hash": true,
- "permit_invalid_header_epoch": true
}
}
{- "receipt": {
- "status": "Succeeded",
- "fee_summary": {
- "cost_unit_price": "string",
- "tip_percentage": 255,
- "cost_unit_limit": 4294967295,
- "cost_units_consumed": 4294967295,
- "xrd_total_execution_cost": "string",
- "xrd_total_royalty_cost": "string",
- "xrd_total_tipped": "string",
- "xrd_vault_payments": [
- {
- "vault_entity": {
- "entity_type": "Global",
- "entity_id_hex": "string"
}, - "xrd_amount": "string"
}
], - "cost_unit_execution_breakdown": "string",
- "cost_unit_royalty_breakdown": "string"
}, - "state_updates": {
- "created_substates": [
- {
- "substate_id": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "version": 100000000000000,
- "substate_hex": "string",
- "substate_data_hash": "string",
- "substate_data": {
- "substate_type": "Metadata"
}
}
], - "updated_substates": [
- {
- "substate_id": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "version": 100000000000000,
- "substate_hex": "string",
- "substate_data_hash": "string",
- "substate_data": {
- "substate_type": "Metadata"
}
}
], - "deleted_substates": [
- {
- "substate_id": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "substate_data_hash": "string",
- "version": 100000000000000
}
], - "new_global_entities": [
- {
- "target_entity_type": "Global",
- "target_entity_id_hex": "string",
- "global_entity_id_hex": "string",
- "global_address_hex": "string",
- "global_address": "string"
}
]
}, - "next_epoch": {
- "epoch": 10000000000,
- "validators": [
- {
- "address": "string",
- "key": {
- "key_type": "EcdsaSecp256k1",
- "key_hex": "stringstringstringstringstringstringstringstringstringstringstring"
}, - "stake": "string"
}
]
}, - "output": [
- {
- "data_hex": "string",
- "data_json": null
}
], - "error_message": "string"
}, - "resource_changes": [
- {
- "resource_address": "string",
- "component_entity": {
- "entity_type": "Global",
- "entity_id_hex": "string"
}, - "vault_entity": {
- "entity_type": "Global",
- "entity_id_hex": "string"
}, - "amount": "string"
}
], - "logs": [
- {
- "level": "string",
- "message": "string"
}
]
}
Returns the hashes of all the transactions currently in the mempool
Mempool List Response
Server error
{- "network": "{{network}}"
}
{- "contents": [
- {
- "intent_hash": "stringstringstringstringstringstringstringstringstringstringstri",
- "payload_hash": "stringstringstringstringstringstringstringstringstringstringstri"
}
]
}
Returns the payload of a transaction currently in the mempool
Mempool Transaction Response
Not found error
Server error
{- "network": "{{network}}",
- "payload_hash": "stringstringstringstringstringstringstringstringstringstringstri"
}
{- "notarized_transaction": {
- "hash": "stringstringstringstringstringstringstringstringstringstringstri",
- "payload_hex": "string",
- "signed_intent": {
- "hash": "stringstringstringstringstringstringstringstringstringstringstri",
- "intent": {
- "hash": "stringstringstringstringstringstringstringstringstringstringstri",
- "header": {
- "version": 255,
- "network_id": 255,
- "start_epoch_inclusive": 10000000000,
- "end_epoch_exclusive": 10000000000,
- "nonce": "string",
- "notary_public_key": {
- "key_type": "EcdsaSecp256k1"
}, - "notary_as_signatory": true,
- "cost_unit_limit": 4294967295,
- "tip_percentage": 255
}, - "manifest": {
- "instructions": "string",
- "blobs_hex": {
- "property1": "string",
- "property2": "string"
}
}
}, - "intent_signatures": [
- {
- "key_type": "EcdsaSecp256k1"
}
]
}, - "notary_signature": {
- "key_type": "EcdsaSecp256k1"
}
}
}
For reading the state of entities. At present, we only support reading details from the top of the currently committed ledger.
Reads the epoch manager's substate/s from the top of the current ledger.
Current state response
Client error
Server error
{- "network": "{{network}}"
}
{- "epoch": 10000000000,
- "epoch_manager": {
- "substate_type": "Metadata"
}, - "active_validator_set": {
- "substate_type": "Metadata"
}
}
Reads the clock's substate/s from the top of the current ledger.
Current state response
Client error
Server error
{- "network": "{{network}}"
}
{- "current_minute": {
- "substate_type": "Metadata"
}
}
Reads the component's substate/s from the top of the current ledger. Also recursively extracts vault balance totals from the component's entity subtree.
Current state response
Client error
Not found error
Server error
{- "network": "{{network}}",
- "component_address": "string"
}
{- "info": {
- "substate_type": "Metadata"
}, - "state": {
- "substate_type": "Metadata"
}, - "royalty_config": {
- "substate_type": "Metadata"
}, - "royalty_accumulator": {
- "substate_type": "Metadata"
}, - "metadata": {
- "substate_type": "Metadata"
}, - "access_rules": {
- "substate_type": "Metadata"
}, - "state_owned_vaults": [
- {
- "substate_type": "Metadata"
}
], - "descendent_ids": [
- {
- "parent": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "entity": {
- "entity_type": "Global",
- "entity_id_hex": "string"
}, - "depth": 100
}
]
}
Reads the validator's substate/s from the top of the current ledger.
Current state response
Client error
Not found error
Server error
{- "network": "{{network}}",
- "validator_address": "string"
}
{- "state": {
- "substate_type": "Metadata"
}, - "metadata": {
- "substate_type": "Metadata"
}, - "access_rules": {
- "substate_type": "Metadata"
}, - "state_owned_vaults": [
- {
- "substate_type": "Metadata"
}
], - "descendent_ids": [
- {
- "parent": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "entity": {
- "entity_type": "Global",
- "entity_id_hex": "string"
}, - "depth": 100
}
]
}
Reads the access controller's substate/s from the top of the current ledger.
Current state response
Client error
Not found error
Server error
{- "network": "{{network}}",
- "controller_address": "string"
}
{- "state": {
- "substate_type": "Metadata"
}, - "metadata": {
- "substate_type": "Metadata"
}, - "access_rules": {
- "substate_type": "Metadata"
}, - "state_owned_vaults": [
- {
- "substate_type": "Metadata"
}
], - "descendent_ids": [
- {
- "parent": {
- "entity_type": "Global",
- "entity_id_hex": "string",
- "substate_type": "Metadata",
- "substate_key_type": "Metadata",
- "substate_key_hex": "string"
}, - "entity": {
- "entity_type": "Global",
- "entity_id_hex": "string"
}, - "depth": 100
}
]
}
Reads the resource manager's substate/s from the top of the current ledger.
Current state response
Client error
Not found error
Server error
{- "network": "{{network}}",
- "resource_address": "string"
}
{- "manager": {
- "substate_type": "Metadata"
}, - "metadata": {
- "substate_type": "Metadata"
}, - "access_rules": {
- "substate_type": "Metadata"
}, - "vault_access_rules": {
- "substate_type": "Metadata"
}
}
Reads the data associated with a single Non-Fungible Unit under a Non-Fungible Resource.
Current state response
Client error
Not found error
Server error
{- "network": "{{network}}",
- "resource_address": "string",
- "non_fungible_id": "string"
}
{- "non_fungible": {
- "substate_type": "Metadata"
}
}
Reads the package's substate/s from the top of the current ledger.
Current state response
Client error
Not found error
Server error
{- "network": "{{network}}",
- "package_address": "string"
}
{- "info": {
- "substate_type": "Metadata"
}, - "royalty_config": {
- "substate_type": "Metadata"
}, - "royalty_accumulator": {
- "substate_type": "Metadata"
}, - "metadata": {
- "substate_type": "Metadata"
}, - "access_rules": {
- "substate_type": "Metadata"
}
}
Returns the list of committed transactions.
Committed transactions response
Client error
Server error
{- "network": "{{network}}",
- "from_state_version": 1,
- "limit": 0
}
{- "from_state_version": 1,
- "count": 10000,
- "max_ledger_state_version": 1,
- "transactions": [
- {
- "state_version": 1,
- "accumulator_hash": "stringstringstringstringstringstringstringstringstringstringstri",
- "ledger_transaction": {
- "type": "User",
- "payload_hex": "string"
}, - "receipt": {
- "status": "Succeeded",
- "fee_summary": {
- "cost_unit_price": "string",
- "tip_percentage": 255,
- "cost_unit_limit": 4294967295,
- "cost_units_consumed": 4294967295,
- "xrd_total_execution_cost": "string",
- "xrd_total_royalty_cost": "string",
- "xrd_total_tipped": "string",
- "xrd_vault_payments": [
- {
- "vault_entity": {
- "entity_type": null,
- "entity_id_hex": null
}, - "xrd_amount": "string"
}
], - "cost_unit_execution_breakdown": "string",
- "cost_unit_royalty_breakdown": "string"
}, - "state_updates": {
- "created_substates": [
- {
- "substate_id": {
- "entity_type": null,
- "entity_id_hex": null,
- "substate_type": null,
- "substate_key_type": null,
- "substate_key_hex": null
}, - "version": 100000000000000,
- "substate_hex": "string",
- "substate_data_hash": "string",
- "substate_data": {
- "substate_type": null
}
}
], - "updated_substates": [
- {
- "substate_id": {
- "entity_type": null,
- "entity_id_hex": null,
- "substate_type": null,
- "substate_key_type": null,
- "substate_key_hex": null
}, - "version": 100000000000000,
- "substate_hex": "string",
- "substate_data_hash": "string",
- "substate_data": {
- "substate_type": null
}
}
], - "deleted_substates": [
- {
- "substate_id": {
- "entity_type": null,
- "entity_id_hex": null,
- "substate_type": null,
- "substate_key_type": null,
- "substate_key_hex": null
}, - "substate_data_hash": "string",
- "version": 100000000000000
}
], - "new_global_entities": [
- {
- "target_entity_type": "Global",
- "target_entity_id_hex": "string",
- "global_entity_id_hex": "string",
- "global_address_hex": "string",
- "global_address": "string"
}
]
}, - "next_epoch": {
- "epoch": 10000000000,
- "validators": [
- {
- "address": "string",
- "key": {
- "key_type": null,
- "key_hex": null
}, - "stake": "string"
}
]
}, - "output": [
- {
- "data_hex": "string",
- "data_json": null
}
], - "error_message": "string"
}
}
]
}