跳至主要内容

Chain API (1.0.0)

Download OpenAPI specification:Download

URL: https://eosnetwork.com License: MIT

Nodeos Chain API Specification. See developer documentation at https://docs.eosnetwork.com for information on enabling this plugin.

get_account

Returns an object containing various details about a specific account on the blockchain.

Request Body schema: application/json

JSON Object with single member "account_name"

required
NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string) (Name)
Any of
string (NamePrivileged) ^(eosio[\.][a-z1-5]{1,6})([a-j]{1})?$

String representation of privileged EOSIO name type

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "account_name": "string",
  • "head_block_num": 0,
  • "head_block_time": "string",
  • "last_code_update": "string",
  • "created": "string",
  • "refund_request": {
    },
  • "ram_quota": "string",
  • "net_limit": {
    },
  • "cpu_limit": {
    },
  • "total_resources": {
    },
  • "core_liquid_balance": "string",
  • "self_delegated_bandwidth": {
    },
  • "net_weight": "string",
  • "cpu_weight": "string",
  • "ram_usage": "string",
  • "privileged": true,
  • "permissions": [
    ],
  • "voter_info": {
    }
}

get_block

Returns an object containing various details about a specific block on the blockchain.

Request Body schema: application/json
block_num_or_id
required
string

Provide a block number or a block id

Responses

Request samples

Content type
application/json
{
  • "block_num_or_id": "string"
}

Response samples

Content type
application/json
{
  • "timestamp": "string",
  • "producer": "string",
  • "confirmed": 0,
  • "previous": "string",
  • "transaction_mroot": "string",
  • "action_mroot": "string",
  • "schedule_version": 0,
  • "new_producers": {
    },
  • "header_extensions": [
    ],
  • "new_protocol_features": [
    ],
  • "producer_signature": "string",
  • "transactions": [
    ],
  • "block_extensions": [
    ],
  • "id": "string",
  • "block_num": 0,
  • "ref_block_prefix": 0
}

get_block_info

Similar to get_block but returns a fixed-size smaller subset of the block data.

Request Body schema: application/json
block_num
required
integer

Provide a block number

Responses

Request samples

Content type
application/json
{
  • "block_num": 0
}

Response samples

Content type
application/json
{
  • "block_num": 0,
  • "ref_block_num": 0,
  • "id": "string",
  • "timestamp": "string",
  • "producer": "string",
  • "confirmed": 0,
  • "previous": "string",
  • "transaction_mroot": "string",
  • "action_mroot": "string",
  • "schedule_version": 0,
  • "producer_signature": "string",
  • "ref_block_prefix": 0
}

get_finalizer_info

Returns information about finalizers

Request Body schema: application/json
object or null

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "active_finalizer_policy": {
    },
  • "pending_finalizer_policy": {
    },
  • "last_tracked_votes": [
    ]
}

get_info

Returns an object containing various details about the blockchain.

Responses

Response samples

Content type
application/json
{
  • "server_version": "string",
  • "chain_id": "string",
  • "head_block_num": 0,
  • "head_block_id": "string",
  • "head_block_time": "string",
  • "head_block_producer": "string",
  • "last_irreversible_block_num": 0,
  • "last_irreversible_block_id": "string",
  • "virtual_block_cpu_limit": 0,
  • "virtual_block_net_limit": 0,
  • "block_cpu_limit": 0,
  • "block_net_limit": 0,
  • "server_version_string": "string",
  • "fork_db_head_block_num": 0,
  • "fork_db_head_block_id": "string"
}

push_transaction

This method expects a transaction in JSON format and will attempt to apply it to the blockchain.

Request Body schema: application/json
signatures
Array of strings (Signature)

array of signatures required to authorize transaction

compression
boolean

Compression used, usually false

packed_context_free_data
string

JSON to hex

packed_trx
string

Transaction object JSON to hex

Responses

Request samples

Content type
application/json
{
  • "signatures": [
    ],
  • "compression": true,
  • "packed_context_free_data": "string",
  • "packed_trx": "string"
}

Response samples

Content type
application/json
null

send_transaction

This method expects a transaction in JSON format and will attempt to apply it to the blockchain.

Request Body schema: application/json
signatures
Array of strings (Signature)

array of signatures required to authorize transaction

compression
boolean

Compression used, usually false

packed_context_free_data
string

JSON to hex

packed_trx
string

Transaction object JSON to hex

Responses

Request samples

Content type
application/json
{
  • "signatures": [
    ],
  • "compression": true,
  • "packed_context_free_data": "string",
  • "packed_trx": "string"
}

Response samples

Content type
application/json
null

push_transactions

This method expects a transaction in JSON format and will attempt to apply it to the blockchain.

Request Body schema: application/json
Array
expiration
required
string (DateTime) ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}...

Date/time string in the format YYYY-MM-DDTHH:MM:SS

ref_block_num
required
integer
ref_block_prefix
required
integer

32-bit portion of block ID

required
WholeNumber (string) or WholeNumber (integer) (WholeNumber)

A whole number

required
WholeNumber (string) or WholeNumber (integer) (WholeNumber)

A whole number

delay_sec
required
integer
required
Array of objects (Action) [ items >= 5 properties ]
required
Array of objects (Action) [ items >= 5 properties ]
Array of integers or strings (Extension) [ items ]

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
null

get_block_header_state

Retrieves a block header state object with only block_num, id, header, and additional_signatures filled. Other fields are left empty or defaulted to a static value.

Request Body schema: application/json
block_num_or_id
required
string

Provide a block_number or a block_id

Responses

Request samples

Content type
application/json
{
  • "block_num_or_id": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "block_num": 0,
  • "header": {
    },
  • "dpos_proposed_irreversible_blocknum": "string",
  • "dpos_irreversible_blocknum": "string",
  • "bft_irreversible_blocknum": "string",
  • "pending_schedule_lib_num": "string",
  • "pending_schedule_hash": "string",
  • "pending_schedule": {
    },
  • "active_schedule": {
    },
  • "blockroot_merkle": {
    },
  • "producer_to_last_produced": [
    ],
  • "producer_to_last_implied_irb": [
    ],
  • "block_signing_key": "string",
  • "confirm_count": [
    ],
  • "confirmations": [
    ]
}

get_abi

Retrieves the ABI for a contract based on its account name

Request Body schema: application/json
required
NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string) (Name)
Any of
string (NamePrivileged) ^(eosio[\.][a-z1-5]{1,6})([a-j]{1})?$

String representation of privileged EOSIO name type

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "version": "string",
  • "types": [
    ],
  • "structs": [
    ],
  • "actions": [
    ],
  • "tables": [
    ],
  • "abi_extensions": [
    ],
  • "error_messages": [
    ],
  • "ricardian_clauses": [
    ],
  • "variants": [
    ]
}

get_currency_balance

Retrieves the current balance

Request Body schema: application/json
required
NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string) (Name)
required
NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string) (Name)
symbol
required
string (Symbol) ^([0-9]{1,32}.[0-9]{4} [A-Z]{1,7})$

A string representation of an EOSIO symbol, composed of a float with a precision of 4, and a symbol composed of capital letters between 1-7 letters separated by a space, example 1.0000 ABC.

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "account": "string",
  • "symbol": "string"
}

Response samples

Content type
application/json
[
  • "string"
]

get_currency_stats

Retrieves currency stats

Request Body schema: application/json
NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string) (Name)
symbol
string (Symbol) ^([0-9]{1,32}.[0-9]{4} [A-Z]{1,7})$

A string representation of an EOSIO symbol, composed of a float with a precision of 4, and a symbol composed of capital letters between 1-7 letters separated by a space, example 1.0000 ABC.

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "symbol": "string"
}

Response samples

Content type
application/json
null

get_required_keys

Returns the required keys needed to sign a transaction.

Request Body schema: application/json
required
object (Transaction) >= 8 properties
available_keys
required
Array of strings (PublicKey)

Provide the available keys

Responses

Request samples

Content type
application/json
{
  • "transaction": {
    },
  • "available_keys": [
    ]
}

Response samples

Content type
application/json
null

get_producers

Retrieves producers list

Request Body schema: application/json
limit
required
string

total number of producers to retrieve

lower_bound
required
string

In conjunction with limit can be used to paginate through the results. For example, limit=10 and lower_bound=10 would be page 2

json
boolean

return result in JSON format

Responses

Request samples

Content type
application/json
{
  • "limit": "string",
  • "lower_bound": "string",
  • "json": true
}

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "total_producer_vote_weight": "string",
  • "more": "string"
}

get_raw_code_and_abi

Retrieves raw code and ABI for a contract based on account name

Request Body schema: application/json
required
NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string) (Name)
Any of
string (NamePrivileged) ^(eosio[\.][a-z1-5]{1,6})([a-j]{1})?$

String representation of privileged EOSIO name type

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "account_name": "string",
  • "wasm": "string",
  • "abi": "string"
}

get_scheduled_transactions

Retrieves scheduled transactions

Request Body schema: application/json
lower_bound
string (DateTimeSeconds) ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}...

Date/time string in the format YYYY-MM-DDTHH:MM:SS.sss

limit
integer

The maximum number of transactions to return

json
boolean

true/false whether the packed transaction is converted to json

Responses

Request samples

Content type
application/json
{
  • "lower_bound": "string",
  • "limit": 0,
  • "json": true
}

Response samples

Content type
application/json
{
  • "transactions": [
    ]
}

get_table_by_scope

Retrieves table scope

Request Body schema: application/json
code
required
string

name of the contract to return table data for

table
string

Filter results by table

lower_bound
string

Filters results to return the first element that is not less than provided value in set

upper_bound
string

Filters results to return the first element that is greater than provided value in set

limit
integer <int32>
Default: 10

Limit number of results returned.

reverse
boolean
Default: false

Reverse the order of returned results

show_payer
boolean
Default: false

Show RAM payer

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "table": "string",
  • "lower_bound": "string",
  • "upper_bound": "string",
  • "limit": 10,
  • "reverse": false,
  • "show_payer": false
}

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "more": "string"
}

get_table_rows

Returns an object containing rows from the specified table.

Request Body schema: application/json
code
required
string

The name of the smart contract that controls the provided table

table
required
string

The name of the table to query

scope
required
string

The account to which this data belongs

index_position
string

Position of the index used, accepted parameters primary, secondary, tertiary, fourth, fifth, sixth, seventh, eighth, ninth , tenth

key_type
string

Type of key specified by index_position (for example - uint64_t or name)

encode_type
string
lower_bound
string

Filters results to return the first element that is not less than provided value in set

upper_bound
string

Filters results to return the first element that is greater than provided value in set

limit
integer <int32>
Default: 10

Limit number of results returned.

reverse
boolean
Default: false

Reverse the order of returned results

show_payer
boolean
Default: false

Show RAM payer

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "table": "string",
  • "scope": "string",
  • "index_position": "string",
  • "key_type": "string",
  • "encode_type": "string",
  • "lower_bound": "string",
  • "upper_bound": "string",
  • "limit": 10,
  • "reverse": false,
  • "show_payer": false
}

Response samples

Content type
application/json
{
  • "rows": [
    ]
}

get_code

Returns an object containing the smart contract WASM code.

Request Body schema: application/json
required
NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string) (Name)
code_as_wasm
required
integer
Default: 1

This must be 1 (true)

Responses

Request samples

Content type
application/json
{
  • "account_name": "string",
  • "code_as_wasm": 1
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "code_hash": "string",
  • "wast": "string",
  • "wasm": "string",
  • "abi": {
    }
}

get_raw_abi

Returns an object containing the smart contract abi.

Request Body schema: application/json
required
NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string) (Name)
Any of
string (NamePrivileged) ^(eosio[\.][a-z1-5]{1,6})([a-j]{1})?$

String representation of privileged EOSIO name type

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "account_name": "string",
  • "code_hash": "string",
  • "abi_hash": "string",
  • "abi": "string"
}

get_activated_protocol_features

Retreives the activated protocol features for producer node

Request Body schema: application/json
lower_bound
integer

Lower bound

upper_bound
integer

Upper bound

limit
integer

The limit, default is 10

search_by_block_num
boolean

Flag to indicate it is has to search by block number

reverse
boolean

Flag to indicate it has to search in reverse

Responses

Request samples

Content type
application/json
{
  • "lower_bound": 0,
  • "upper_bound": 0,
  • "limit": 0,
  • "search_by_block_num": true,
  • "reverse": true
}

Response samples

Content type
application/json
{
  • "activated_protocol_features": [
    ],
  • "more": 0
}

get_accounts_by_authorizers

Given a set of account names and public keys, find all account permission authorities that are, in part or whole, satisfiable

Request Body schema: application/json
Array of (Name (NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string))) or Authority (object)

List of authorizing accounts and/or actor/permissions

keys
Array of strings (PublicKey)

List of authorizing keys

Responses

Request samples

Content type
application/json
{
  • "accounts": [
    ],
  • "keys": [
    ]
}

Response samples

Content type
application/json
{
  • "accounts": [
    ]
}

get_transaction_status

Attempts to get current blockchain state and, if available, transaction information given the transaction id. For query to work, the transaction finality status feature must be enabled by configuring the chain plugin with the config option '--transaction-finality-status-max-storage-size-gb' in nodeos.

Request Body schema: application/json
id
required
string

The transaction ID of the transaction to retrieve the status for.

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "state": "string",
  • "block_number": 0,
  • "block_id": "string",
  • "block_timestamp": "string",
  • "expiration": "string",
  • "head_number": 0,
  • "head_id": "string",
  • "head_timestamp": "string",
  • "irreversible_number": 0,
  • "irreversible_id": "string",
  • "irreversible_timestamp": "string",
  • "last_tracked_block_id": "string"
}

send_transaction2

Attempts to apply a transaction to the blockchain specified in JSON format. It supports returning the full trace of a failed transaction and automatic nodeos-mediated retry if it is enabled on the node. When transaction retry is enabled on an API node, it will monitor incoming API transactions and ensure they are resubmitted additional times into the P2P network until they expire or are included in a block. Warning, full failure traces are now returned by default instead of exceptions. Be careful to not confuse a returned trace as an indication of speculative execution success. Verify 'receipt' and 'except' fields of the returned trace.

Request Body schema: application/json
return_failure_trace
boolean

If true, then embed transaction exceptions into the returned transaction trace.

retry_trx
boolean

If true, requests to retry transaction until gets in a block of given height, see retry_trx_num_blocks as well, or it is irreversible or expires.

retry_trx_num_blocks
integer

If retry_trx is true, requests to retry transaction until in a block of given height, or lib if not specified.

object

Responses

Request samples

Content type
application/json
{
  • "return_failure_trace": true,
  • "retry_trx": true,
  • "retry_trx_num_blocks": 0,
  • "transaction": {
    }
}

Response samples

Content type
application/json
null

compute_transaction

Executes specified transaction and creates a transaction trace, including resource usage, and then reverts all state changes but not contribute to the subjective billing for the account. If the transaction has signatures, they are processed, but any failures are ignored. Transactions which fail always include the transaction failure trace. Warning, users with exposed nodes who have enabled the compute_transaction endpoint should implement some throttling to protect from Denial of Service attacks.

Request Body schema: application/json
signatures
Array of strings (Signature)

array of signatures required to authorize transaction

compression
boolean

Compression used, usually false

packed_context_free_data
string

JSON to hex

packed_trx
string

Transaction object, JSON to hex

Responses

Request samples

Content type
application/json
{
  • "signatures": [
    ],
  • "compression": true,
  • "packed_context_free_data": "string",
  • "packed_trx": "string"
}

Response samples

Content type
application/json
null

get_code_hash

Retrieves the code hash for a smart contract deployed on the blockchain. Once you have the code hash of a contract, you can compare it with a known or expected value to ensure that the contract code has not been modified or tampered with.

Request Body schema: application/json
account_name
string

The name of the account for which you want to retrieve the code hash. It represents the account that owns the smart contract code.

Responses

Request samples

Content type
application/json
{
  • "account_name": "string"
}

Response samples

Content type
application/json
{
  • "account_name": "string",
  • "code_hash": "string"
}

get_transaction_id

Retrieves the transaction ID (also known as the transaction hash) of a specified transaction on the blockchain.

Request Body schema: application/json
>= 8 properties
expiration
required
string (DateTime) ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}...

Date/time string in the format YYYY-MM-DDTHH:MM:SS

ref_block_num
required
integer
ref_block_prefix
required
integer

32-bit portion of block ID

required
WholeNumber (string) or WholeNumber (integer) (WholeNumber)

A whole number

required
WholeNumber (string) or WholeNumber (integer) (WholeNumber)

A whole number

delay_sec
required
integer
required
Array of objects (Action) [ items >= 5 properties ]
required
Array of objects (Action) [ items >= 5 properties ]
Array of integers or strings (Extension) [ items ]

Responses

Request samples

Content type
application/json
{
  • "expiration": "string",
  • "ref_block_num": 0,
  • "ref_block_prefix": 0,
  • "max_net_usage_words": "string",
  • "max_cpu_usage_ms": "string",
  • "delay_sec": 0,
  • "context_free_actions": [
    ],
  • "actions": [
    ],
  • "transaction_extensions": [
    ]
}

Response samples

Content type
application/json
"string"

get_producer_schedule

Retrieves the current producer schedule from the blockchain, which includes the list of active producers and their respective rotation schedule.

Responses

Response samples

Content type
application/json
{
  • "active": {
    },
  • "pending": {
    },
  • "proposed": {
    }
}

send_read_only_transaction

Sends a read-only transaction in JSON format to the blockchain. This transaction is not intended for inclusion in the blockchain. When a user sends a transaction, which modifies the blockchain state, the connected node will fail the transaction.

Request Body schema: application/json
object
compression
boolean

Compression used, usually false

packed_context_free_data
string

JSON to hex

packed_trx
string

Transaction object JSON to hex

Responses

Request samples

Content type
application/json
{
  • "transaction": {
    }
}

Response samples

Content type
application/json
null

push_block

Sends a block to the blockchain.

Request Body schema: application/json
>= 9 properties
timestamp
required
string (DateTimeSeconds) ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}...

Date/time string in the format YYYY-MM-DDTHH:MM:SS.sss

required
EmptyString (string) or (Name (NamePrivileged (string) or NameBasic (string) or NameBid (string) or NameCatchAll (string)))
confirmed
required
integer

number of prior blocks confirmed by this block producer in current schedule

previous
required
string (Sha256) ^[0-9A-Fa-f]{64}$
transaction_mroot
required
string (Sha256) ^[0-9A-Fa-f]{64}$
action_mroot
required
string (Sha256) ^[0-9A-Fa-f]{64}$
schedule_version
required
integer

number of times producer schedule has changed since genesis

required
object (ProducerSchedule)

A JSON object that encapsulates the list of the producers schedule and its version.

Array of integers or strings (Extension)
new_protocol_features
Array of objects

list of new protocol features

producer_signature
required
string (Signature) ^SIG_([RK]1|WA)_[1-9A-HJ-NP-Za-km-z]+$

Base58 encoded EOSIO cryptographic signature

Array of objects (TransactionReceipt) [ items >= 4 properties ]

list of valid transaction receipts included in block

Array of integers or strings (Extension)
id
string (Sha256) ^[0-9A-Fa-f]{64}$
block_num
integer

height of this block in the chain

ref_block_prefix
integer

32-bit portion of block ID

Responses

Request samples

Content type
application/json
{
  • "timestamp": "string",
  • "producer": "string",
  • "confirmed": 0,
  • "previous": "string",
  • "transaction_mroot": "string",
  • "action_mroot": "string",
  • "schedule_version": 0,
  • "new_producers": {
    },
  • "header_extensions": [
    ],
  • "new_protocol_features": [
    ],
  • "producer_signature": "string",
  • "transactions": [
    ],
  • "block_extensions": [
    ],
  • "id": "string",
  • "block_num": 0,
  • "ref_block_prefix": 0
}

Response samples

Content type
application/json
null