FIO Relic is an application which connects to to the FIO Chain node to receive all transaction data, transforms this data into FIO Protocol specific data, inserts int into a relational database and makes the content available via HTTP API. The following document is intended to be functional specification for the FIO Relic System.
Data Pipeline (FIO.Chronicle) is a software application designed to connect to FIO Chain State History, receive the data and transform it to JSON. It is a fork of the EOSChronicle project.
receiver – a new receiver will be made that will meet RELIC specific needs. the receiver will process only relic relevant events from the fio state history node.
decoder – a decoder component will be made that meets relic specific needs, converting relic bin data collected and queued from history node receiver into json to be consumed by a relic specific exporter.
exporter – a new exporter will be made that will export data directly into the relic Postgres relational database.
Postgres Relational Database to store FIO Chain information.
HTTP server to return information from database.
This component will be developed in Phase 2.
This component allows an API user to subscribe to specific events and then receive notification if such event has occurred during data transformation.
Examples
“Notify supplied webhook on every new FIO Domain registration”
“Notify when a FIO Request for specific FIO Handle is observed”
FIO Relic will likely be run on the same environment as the FIO Chain node. Therefore, it should be compatible with that environment
It should be very easy to configure and deploy FIO Relic as a product.
Avoid:
Long installation instructions
Requiring install of multiple components which may have their own versions and dependancies
Consider:
Clear instructions on installation and dependency requirementgs
Single repo
Single install and run script
Add only. Every block is a new entry.
Field | Description | Relationship |
---|---|---|
number |
| transactions → block_num |
id |
| |
timestamp |
| |
producer |
| |
schedule_version |
|
Add only. Every transaction is a new entry.
Field | Description | Relationship |
---|---|---|
block_number |
| blocks → number |
id |
| traces → transaction_id |
action_account |
| |
action_name |
| |
account |
| |
tpid |
| |
fee |
| |
request_data |
| |
response_data |
| |
status |
|
Add only. Every trace is a new entry.
Field | Description | Relationship |
---|---|---|
id |
| |
transaction_id |
| transactions → id |
receiver |
| |
action_ordinal |
| |
action_account |
| |
action_name |
| |
request_data |
|
Add only. Every account created is a new entry.
Field | Description | Relationship |
---|---|---|
account |
| account_activity → account domains → account handles → account token_transfers → payer_account token_transfers → payee_account token_staking → staker_account fio_requests → payee_account fio_requests → payer_account fio_data → payee_account fio_data → payer_account |
public_key |
| |
balance |
| |
timestamp |
|
Add only. Every activity is a new entry.
Field | Description | Relationship |
---|---|---|
account |
| accounts → account |
transaction_id |
| transactions → id |
type |
|
Add and update. Represents current state of domains. Will be updated every time domain info changes. Records will not be removed, just marked burned.
Field | Description | Relationship |
---|---|---|
domain |
| domain_activity → domain |
account |
| accounts → account |
is_public |
| |
expiration |
| |
status |
|
Add only. Every activity is a new entry
Field | Description | Relationship |
---|---|---|
domain |
| domains → domain |
transaction_id |
| transactions → id |
type |
|
Add and update. Represents current state of handles. Will be updated every time handle info changes. Records will not be removed, just marked burned.
Field | Description | Relationship |
---|---|---|
handle |
| handle_activity → handle pub_addresses → handle nft_signatures → handle fio_requests → payer_handle fio_requests → payee_handle fio_data → payer_handle fio_data → payee_handle |
domain |
| domains → domain |
account |
| accounts → account |
encryption_key |
| |
encryption_key_set |
| |
expiration |
| |
status |
|
Add only. Every activity is a new entry
Field | Description | Relationship |
---|---|---|
handle |
| handles → handle |
transaction_id |
| transactions → id |
type |
|
Add, update, delete. Represents current state of mapped public addresses. Will be updated every time mapping changes. Records will be removed if needed.
Field | Description | Relationship |
---|---|---|
handle |
| handles → handle |
chain_code |
| |
token_code |
| |
public_address |
|
Add, update, delete. Represents current state of NFT signatures. Will be updated every time signatures are changed. Records will be removed if needed.
Field | Description | Relationship |
---|---|---|
handle |
| handles → handle |
chain_code |
| |
contract_address |
| |
token_id |
| |
url |
| |
hash |
| |
metadata |
|
Add only. Every transfer is a new entry. Includes internal transfers.
Field | Description | Relationship |
---|---|---|
payer_account |
| accounts → account |
payee_account |
| accounts → account |
transaction_id |
| transactions → id |
amount |
| |
type |
| |
memo |
|
Update Every time an entry is inserted into token_transfers the
|
Add only. Every stake or unstake is a new entry. Includes internal transfers.
Field | Description | Relationship |
---|---|---|
staker_account |
| accounts → account |
transaction_id |
| transactions → id |
amount |
|
Add and update. Represents current state of requests. Will be updated every time request status changes. Records will not be removed.
Field | Description | Relationship |
---|---|---|
id |
| fio_data → request_id |
payee_handle |
| handles → handle |
payer_handle |
| handles → handle |
content |
| |
payee_pub_key |
| |
payer_pub_key |
| |
status |
| |
transaction_id |
| transactions → id |
Add and update. Represents current state of FIO Data. Will be updated every time request status changes. Records will not be removed.
Field | Description | Relationship |
---|---|---|
request_id |
| fio_requests → id |
payee_handle |
| handles → handle |
payer_handle |
| handles → handle |
content |
| |
payee_pub_key |
| |
payer_pub_key |
| |
status |
| |
transaction_id |
| transactions → id |
The parsing rules below are triggered by any of the following:
block
transaction
trace
specific account
and name
inside trace
→ action_traces
→ act
. It will be presented as Trigger: action_account:action:name, e.g. Trigger: eosio:newaccount
table deltas
and are organized by defining the table where record needs to be added as well as data source, typically from the trace.
Please pay attention to sequence of traces to accommodate relationships, e.g. when transferring tokens to a new account, the account has to be inserted into accounts table, before transfer is recorded. |
Field | Source Data |
---|---|
number |
|
id |
|
timestamp |
|
producer |
|
schedule_version |
|
action_ordinal = 1
Field | Source Data |
---|---|
block_number |
|
id |
|
action_account |
|
action_name |
|
account |
|
tpid |
|
fee |
|
request_data |
|
response_data |
|
status |
|
This is skipped in code as the sending actor is in the transaction table |
Field | Source Data |
---|---|
account |
|
transaction_id | Transaction ID |
type | “sender” |
action_ordinal > 1
Field | Source Data |
---|---|
id | Trace id. Auto-generated ID or transaction_id + action_ordinal, e.g. 770989df18fac96e48ca03d6702991d4462bebacceab8cf6b389507e998ca7fe-2 |
transaction_id |
|
receiver |
|
action_ordinal |
|
action_account |
|
action_name |
|
request_data |
|
Field | Source Data |
---|---|
account |
|
public_key |
|
timestamp |
|
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
action_ordinal = 1
Field | Source Data |
---|---|
payer_account |
|
payee_account |
|
transaction_id |
|
amount |
|
type | “transfer” |
memo |
action_ordinal = 1
Field | Source Data |
---|---|
payer_account |
|
payee_account |
|
transaction_id |
|
amount |
|
type | “transfer_locked” |
memo |
receiver = fio.token
Field | Source Data |
---|---|
payer_account |
|
payee_account |
|
transaction_id |
|
amount |
|
type | If If If If If If If |
memo |
|
receiver = fio.token
Field | Source Data |
---|---|
payer_account | “fio.token” |
payee_account | “eosio” |
transaction_id |
|
amount |
|
type | “token_mint” |
memo |
|
action_ordinal = 1
Field | Source Data |
---|---|
payer_account |
|
payee_account | “fio.oracle" |
transaction_id |
|
amount |
|
type | “wrap” |
memo |
action_ordinal = 1
Field | Source Data |
---|---|
staker_account |
|
transaction_id |
|
amount |
|
action_ordinal = 1
Field | Source Data |
---|---|
payer_account |
|
payee_account | “fio.token” |
transaction_id |
|
amount |
|
type | “retire” |
memo |
|
action_ordinal = 1
Field | Source Data |
---|---|
staker_account |
|
transaction_id |
|
amount | Negative of ( |
action_ordinal = 1
domain
)Field | Source Data |
---|---|
domain |
|
account |
|
is_public | “false” |
expiration |
|
status | “active" |
Field | Source Data |
---|---|
domain |
|
transaction_id |
|
type | “register” |
Only insert if trace
→ action_traces
→ act
→ data
→ actor
is not trace
→ action_traces
→ act
→ data
→ owner_fio_public_key
hashed to account.
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
action_ordinal = 1
Field | Source Data |
---|---|
domain |
|
expiration |
|
Field | Source Data |
---|---|
domain |
|
transaction_id |
|
type | “renew” |
action_ordinal = 1
Field | Source Data |
---|---|
domain |
|
account |
|
Field | Source Data |
---|---|
domain |
|
transaction_id |
|
type | “transfer” |
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
action_ordinal = 1
Field | Source Data |
---|---|
domain |
|
is_public |
|
Field | Source Data |
---|---|
domain |
|
transaction_id |
|
type | is_public: 1 type is “public” is_public: 0 type is “non-public” |
action_ordinal = 1
Field | Source Data |
---|---|
domain |
|
account | “fio.oracle” |
Field | Source Data |
---|---|
domain |
|
transaction_id |
|
type | “wrap” |
Field | Source Data |
---|---|
account | “fio.oracle” |
transaction_id |
|
type | “receiver” |
Field | Source Data |
---|---|
domain |
|
account |
|
Field | Source Data |
---|---|
domain |
|
transaction_id |
|
type | “unwrap” |
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
Field | Source Data |
---|---|
account | “fio.oracle” |
transaction_id |
|
type | “sender” |
action_ordinal = 1
handle
)Field | Source Data |
---|---|
handle |
|
domain | Domain from ( |
account |
|
encryption_key |
|
encryption_key_set | “false” |
bundled_tx | “100” |
expiration |
|
status | “active" |
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “register” |
Only insert if trace
→ action_traces
→ act
→ data
→ actor
is not trace
→ action_traces
→ act
→ data
→ owner_fio_public_key
hashed to account.
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
Field | Source Data |
---|---|
handle |
|
chain_code | “FIO” |
token_code | “FIO” |
public_address |
|
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
expiration |
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “renew” |
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
account |
|
encryption_key |
|
encryption_key_set | “false” |
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “transfer” |
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
and add:
Field | Source Data |
---|---|
handle |
|
chain_code | “FIO” |
token_code | “FIO” |
public_address |
|
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “add_bundles” |
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “add_pubbadd” |
For each object in trace
→ action_traces
→ act
→ data
→ public_addresses
update or insert new record
Field | Source Data |
---|---|
handle |
|
chain_code |
|
token_code |
|
public_address |
|
Update only if encryption_key_set = false and chain_code = “FIO” and (token_code = “FIO” or token_code = “*”)
Field | Source Data |
---|---|
handle |
|
encryption_key |
|
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “rem_pubbadd” |
Remove each object in trace
→ action_traces
→ act
→ data
→ public_addresses
which matches
Field | Source Data |
---|---|
handle |
|
chain_code |
|
token_code |
|
public_address |
|
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “rem_all_pubbadd” |
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
except FIO
- FIO
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “add_nft” |
For each object in trace
→ action_traces
→ act
→ data
→ nfts
update or insert new record
Field | Source Data |
---|---|
handle |
|
chain_code |
|
contract_address |
|
token_id |
|
url |
|
hash |
|
metadata |
|
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “rem_nft” |
Remove each object in trace
→ action_traces
→ act
→ data
→ nfts
which matches
Field | Source Data |
---|---|
handle |
|
chain_code |
|
contract_address |
|
token_id |
|
url |
|
hash |
|
metadata |
|
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “rem_all_nft” |
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
encryption_key |
|
encryption_key_set | “true” |
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “upd_encryptkey” |
action_ordinal = 1
Execute same as for trigger fio.address:regdomain and fio.address:regaddress except insert only once into account_activity
with type “receiver”.
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
account | empty |
encryption_key | empty |
status | “burnt” |
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “self_burn” |
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “new_request” |
Field | Source Data |
---|---|
account | Look-up |
transaction_id |
|
type | “receiver” |
Field | Source Data |
---|---|
id |
|
payee_handle |
|
payer_handle |
|
content |
|
payee_pub_key | Look-up |
payer_pub_key | Look-up |
status | “pending” |
transaction_id |
|
action_ordinal = 1
Field | Source Data |
---|---|
handle | Look-up |
transaction_id |
|
type | “cancel_request” |
Field | Source Data |
---|---|
id |
|
status | “cancelled” |
action_ordinal = 1
Field | Source Data |
---|---|
handle | Look-up |
transaction_id |
|
type | “reject_request” |
Field | Source Data |
---|---|
id |
|
status | “rejected” |
action_ordinal = 1
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “record_obt” |
Field | Source Data |
---|---|
account | Look-up |
transaction_id |
|
type | “receiver” |
Field | Source Data |
---|---|
request_id |
|
payee_handle |
|
payer_handle |
|
content |
|
payee_pub_key | Look-up |
payer_pub_key | Look-up |
status | “sent_to_blockchain” |
transaction_id |
|
Update only if trace
→ action_traces
→ act
→ data
→ fio_request_id
is present
Field | Source Data |
---|---|
id |
|
status | “sent_to_blockchain” |
added:false
and kvo->table:domains
Secondary conditions (all must be true):
There must be a transaction in the block_num
which has action_name: burnexpired
is_public
for kvo
→ value
→ name
in domains table has not changed
expiration
for kvo
→ value
→ name
in domains table has not changed
Field | Source Data |
---|---|
domain |
|
account | empty |
status | “burnt” |
Field | Source Data |
---|---|
domain |
|
transaction_id | transaction id of transaction with |
type | “auto_burn” |
added:false
and kvo->table:fionames
Secondary conditions (all must be true):
There must be a transaction in the block_num
which has action_name: burnexpired
and its traces do not have a trace with action_name: burnaddress and action_ordinal = 1
pubaddreses
has not changed
bundlecount
has not changed
encryoption_key
has not changed
Field | Source Data |
---|---|
handle |
|
account | empty |
encryption_key | empty |
status | “burnt” |
Field | Source Data |
---|---|
handle |
|
transaction_id | transaction id of transaction with |
type | “auto_burn” |
Returns block information.
Parameter | Description |
---|---|
time_start |
|
time_end |
|
producer |
|
sort |
|
Return records from blocks
which match all request parameters.
Sort by:
block_num_asc: blocks
→ number
ASC
block_num_desc: blocks
→ number
DESC
timestamp_asc: blocks
→ timestamp
ASC
timestamp_desc: blocks
→ timestamp
DESC
Group | Field | Source Data |
---|---|---|
blocks | number |
|
blocks | id |
|
blocks | timestamp |
|
blocks | producer |
|
blocks | schedule_version |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "blocks": [ { "number": "2", "id": "00000002953a8ab87a1855c0c40786e6a910a86cb2dd160f181418d05d233ea7", "timestamp": "2020-03-25T00:05:21.000", "producer": "eosio", "schedule_version": "1" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns transaction information.
Parameter | Description |
---|---|
time_start | |
time_end | |
block_number |
|
action_account |
|
action_name |
|
impacted_account |
|
impacted_account_direction |
|
include_traces |
|
sort |
|
limit |
|
offset |
|
Return records from transactions
which match all request parameters except:
impacted_account
is supplied:
impacted_account_direction
is supplied and is “sender”
Records from transactions
where impacted_account
= account_activity->account
and type
is “sender”
impacted_account_direction
is supplied and is “receiver”
Records from transactions
where impacted_account
= account_activity->account
and type
is “receiver”
impacted_account_direction
is supplied and is “both” or not supplied
Records from transactions
where impacted_account
= account_activity->account
Please note: a single transaction can be affecting the same account as sender and receiver! In this case the same transaction should be returned twice.
Also include related data from:
blocks
timestamp
traces
All traces for transaction
token_transfers
id
matches transaction_id
Include
payer_account
payee_account
amount
type
memo
domain_activity
id
matches transaction_id
Include
domain
type
handle_activity
id
matches transaction_id
Include
handle
type
token_staking
id
matches transaction_id
Include
staker_account
amount
fio_requests
id
matches transaction_id
Include
id
payee_handle
payer_handle
content
payee_pub_key
payer_pub_key
status
fio_data
id
matches transaction_id
Include
request_id
payee_handle
payer_handle
content
payee_pub_key
payer_pub_key
status
Sort by:
timestamp_asc: blocks
→ timestamp
ASC
timestamp_desc: blocks
→ timestamp
DESC
Group | Field | Source Data |
---|---|---|
transactions | id |
|
transactions | block_number |
|
transactions | timestamp |
|
transactions | action_account |
|
transactions | action_name |
|
transactions | sender_account |
|
transactions | receiver_account |
|
transactions | impacted_account_direction | See
Blank if impacted_account not supplied. |
transactions | tpid |
|
transactions | fee |
|
transactions | request_data |
|
transactions | request_data |
|
transactions | status |
|
transactions | type_specific_data | This element contains data which is specific to certain types of transactions from the joint tables:
|
transactions | traces array |
For each trace:
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "transactions": [ { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e", "block_number": "259024750", "timestamp": "2024-05-03T17:00:02.500", "action_account": "fio.address", "action_name": "regaddress", "sender_account": "xghrmfdenyu5", "receiver_account": "1hpxnziaw2ec", "impacted_account_direction": "", "tpid": "tpid@opera", "fee": "55.399150882", "request_data": { "fio_address": "turandb@opera", "owner_fio_public_key": "FIO5PJdEsMQ5Qd2otKVFSXru72KcMx4G2Vafo9MZ6NHttqYCiV5JP", "max_fee": 55399150882, "actor": "xghrmfdenyu5", "tpid": "tpid@opera" }, "response_data": "{\"status\": \"OK\",\"expiration\":\"2105-02-07T06:28:15\",\"fee_collected\":55399150882}", "status": "executed", "type_specific_data": { "token_transfers": [ { "payer_account": "xghrmfdenyu5", "payee_account": "fio.treasury", "amount": "55.399150882", "type": "blockchain_fee", "memo": "FIO fee: register_fio_address" }, { "payer_account": "eosio", "payee_account": "fio.treasury", "amount": "22.159660352", "type": "token_mint", "memo": "New tokens produced from reserves" } ], "domain_activity": [], "handle_activity": [ { "handle": "turandb@opera", "type": "register" } ], "token_staking": [], "fio_requests": [], "fio_data": [] }, "traces": [ { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-2", "receiver": "eosio", "action_ordinal": 2, "action_account": "eosio", "action_name": "newaccount", "request_data": { "creator": "fio.address", "name": "1hpxnziaw2ec", "owner": { "threshold": 1, "keys": [ { "key": "FIO5PJdEsMQ5Qd2otKVFSXru72KcMx4G2Vafo9MZ6NHttqYCiV5JP", "weight": 1 } ], "accounts": [], "waits": [] }, "active": { "threshold": 1, "keys": [ { "key": "FIO5PJdEsMQ5Qd2otKVFSXru72KcMx4G2Vafo9MZ6NHttqYCiV5JP", "weight": 1 } ], "accounts": [], "waits": [] } } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-3", "receiver": "fio.token", "action_ordinal": 3, "action_account": "fio.token", "action_name": "transfer", "request_data": { "from": "xghrmfdenyu5", "to": "fio.treasury", "quantity": "55.399150882 FIO", "memo": "FIO fee: register_fio_address" } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-4", "receiver": "fio.treasury", "action_ordinal": 4, "action_account": "fio.treasury", "action_name": "fdtnrwdupdat", "request_data": { "amount": 2769957544 } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-5", "receiver": "fio.token", "action_ordinal": 5, "action_account": "fio.token", "action_name": "mintfio", "request_data": { "to": "fio.treasury", "amount": 22159660352 } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-6", "receiver": "fio.tpid", "action_ordinal": 6, "action_account": "fio.tpid", "action_name": "updatebounty", "request_data": { "amount": 22159660352 } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-7", "receiver": "fio.tpid", "action_ordinal": 7, "action_account": "fio.tpid", "action_name": "updatetpid", "request_data": { "tpid": "tpid@opera", "owner": "xghrmfdenyu5", "amount": 27699575440 } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-8", "receiver": "fio.treasury", "action_ordinal": 8, "action_account": "fio.treasury", "action_name": "bppoolupdate", "request_data": { "amount": 33239490529 } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-9", "receiver": "fio.staking", "action_ordinal": 9, "action_account": "fio.staking", "action_name": "incgrewards", "request_data": "48fd823903000000" }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-10", "receiver": "eosio", "action_ordinal": 10, "action_account": "eosio", "action_name": "incram", "request_data": { "accountmn": "xghrmfdenyu5", "amount": 2560 } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-11", "receiver": "fio.token", "action_ordinal": 11, "action_account": "xghrmfdenyu5", "action_name": "transfer", "request_data": { "from": "xghrmfdenyu5", "to": "fio.treasury", "quantity": "55.399150882 FIO", "memo": "FIO fee: register_fio_address" } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-12", "receiver": "fio.treasury", "action_ordinal": 12, "action_account": "xghrmfdenyu5", "action_name": "transfer", "request_data": { "from": "xghrmfdenyu5", "to": "fio.treasury", "quantity": "55.399150882 FIO", "memo": "FIO fee: register_fio_address" } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-13", "receiver": "eosio", "action_ordinal": 13, "action_account": "eosio", "action_name": "updlocked", "request_data": { "owner": "xghrmfdenyu5", "amountremaining": 165900009925342 } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-14", "receiver": "fio.token", "action_ordinal": 14, "action_account": "fio.token", "action_name": "issue", "request_data": { "to": "fio.treasury", "quantity": "22.159660352 FIO", "memo": "New tokens produced from reserves" } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-15", "receiver": "eosio", "action_ordinal": 15, "action_account": "fio.token", "action_name": "issue", "request_data": { "to": "fio.treasury", "quantity": "22.159660352 FIO", "memo": "New tokens produced from reserves" } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-16", "receiver": "fio.treasury", "action_ordinal": 16, "action_account": "fio.token", "action_name": "issue", "request_data": { "to": "fio.treasury", "quantity": "22.159660352 FIO", "memo": "New tokens produced from reserves" } }, { "id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e-17", "receiver": "eosio", "action_ordinal": 17, "action_account": "eosio", "action_name": "crautoproxy", "request_data": { "proxy": "2m11cvdizsrg", "owner": "xghrmfdenyu5" } } ] } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns account information.
Parameter | Description |
---|---|
time_start |
|
time_end |
|
sort |
|
limit |
|
offset |
|
Return records from accounts
which match all request parameters.
Sort by:
timestamp_asc: timestamp
ASC
timestamp_desc: timestamp
DESC
Group | Field | Source Data |
---|---|---|
accounts | account |
|
accounts | public_key |
|
accounts | timestamp |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "accounts": [ { "account": "1hpxnziaw2ec", "public_key": "FIO5PJdEsMQ5Qd2otKVFSXru72KcMx4G2Vafo9MZ6NHttqYCiV5JP" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns domain information.
Parameter | Description |
---|---|
account |
|
is_public |
|
status |
|
sort |
|
limit |
|
offset |
|
Return records from domains
which match all request parameters.
Sort by:
alphabetical: domain
ASC
expiration_asc: expiration
ASC
expiration_asc: expiration
DESC
Group | Field | Source Data |
---|---|---|
domains | domain |
|
domains | account |
|
domains | is_public |
|
domains | expiration |
|
domains | status |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "domains": [ { "domain": "bob", "account": "1hpxnziaw2ec", "is_public": false, "expiration": "2024-05-03T17:00:02.500", "status": "active" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns handle information.
Parameter | Description |
---|---|
handle |
|
account |
|
domain |
|
status |
|
limit |
|
offset |
|
Return records from handles
which match all request parameters.
Sort by:
alphabetical: handle
ASC
Group | Field | Source Data |
---|---|---|
handles | handle |
|
handles | account |
|
handles | domain |
|
handles | encryption_key |
|
handles | encryption_key_set |
|
handles | expiration |
|
handles | status |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "handles": [ { "handle": "turandb@opera", "account": "1hpxnziaw2ec", "domain": "opera", "encryption_key": "FIO5PJdEsMQ5Qd2otKVFSXru72KcMx4G2Vafo9MZ6NHttqYCiV5JP", "encryption_key_set": false, "expiration": "2025-05-03T17:00:02.500", "status": "active" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns pub_addresses information.
Parameter | Description |
---|---|
handle |
|
account |
|
chain_code |
|
token_code |
|
public_address |
|
limit |
|
offset |
|
Return records from pub_addresses
which match all request parameters.
account
requires join on handles
handle status must be active
Sort by:
alphabetical: handle
ASC
Group | Field | Source Data |
---|---|---|
handles | handle |
|
handles | account |
|
handles → pub_addresses | chain_code |
|
handles → pub_addresses | token_code |
|
handles → pub_addresses | public_address |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "handles": [ { "handle": "turandb@opera", "account": "1hpxnziaw2ec", "pub_addresses": [ { "chain_code": "FIO", "token_code": "FIO", "public_address": "FIO5PJdEsMQ5Qd2otKVFSXru72KcMx4G2Vafo9MZ6NHttqYCiV5JP" }, { "chain_code": "ETH", "token_code": "*", "public_address": "0x00000000" } ] } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns nft_signatures information.
Parameter | Description |
---|---|
handle | |
account | |
chain_code | |
contract_address | |
token_id |
|
limit | |
offset | |
Return records from nft_signatures
which match all request parameters.
account
requires join on handles
handle status must be active
Sort by:
alphabetical: handle
ASC
Group | Field | Source Data |
---|---|---|
handles | handle |
|
handles | account |
|
handles → nft_signatures | chain_code |
|
handles → nft_signatures | contract_address |
|
handles → nft_signatures | token_id |
|
handles → nft_signatures | url |
|
handles → nft_signatures | hash |
|
handles → nft_signatures | metadata |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "handles": [ { "handle": "turandb@opera", "account": "1hpxnziaw2ec", "nft_signatures": [ { "chain_code": "MATIC", "contract_address": "0x7bfc7492B32E40D7Dd9B0A241B5d0Ba9CCf1632B", "token_id": "24254130", "url": "", "hash": "", "metadata": "" } ] } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns token_transfers information.
Parameter | Description |
---|---|
time_start |
|
time_end |
|
payer_account | |
payee_account | |
type | |
limit | |
offset | |
Return records from token_transfers
which match all request parameters.
timestamp
requires join on transactions
Sort by:
alphabetical: timestamp
ASC
Group | Field | Source Data |
---|---|---|
token_transfers | transaction_id |
|
token_transfers | timestamp |
|
token_transfers | payer_account |
|
token_transfers | payee_account |
|
token_transfers | amount |
|
token_transfers | type |
|
token_transfers | memo |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "token_transfers": [ { "transaction_id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e", "timestamp": "2024-05-03T17:00:02.500", "payer_account": "xghrmfdenyu5", "payee_account": "fio.treasury", "amount": "55.399150882", "type": "blockchain_fee", "memo": "FIO fee: register_fio_address" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns fio_request information.
Parameter | Description |
---|---|
time_start | |
time_end | |
payee_handle | |
payer_handle | |
payee_account | |
payer_account | |
status | |
limit | |
offset | |
Return records from fio_request
which match all request parameters.
timestamp
requires join on transactions
payee_account
and payer_account
requires join on handles
Sort by:
alphabetical: timestamp
ASC
Group | Field | Source Data |
---|---|---|
fio_requests | id |
|
fio_requests | timestamp |
|
fio_requests | payer_account |
|
fio_requests | payee_account |
|
fio_requests | payee_handle |
|
fio_requests | payer_handle |
|
fio_requests | content |
|
fio_requests | payee_pub_key |
|
fio_requests | payer_pub_key |
|
fio_requests | status |
|
fio_requests | transaction_id |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "fio_requests": [ { "id": 88, "timestamp": "2020-03-13T19:52:08", "payee_account": "xghrmfdenyu5", "payer_account": "1hpxnziaw2ec", "payee_handle": "pawel@fiotestnet", "payer_handle": "pawel@person", "content": "v6Kvk+CvQBGua4V1YpYjBekOzqA9LHWFfKXhfBnhewdGGm5PhPbwC8YQAIISpu/4mGDGR9JhCkyxLFH42Ei/EpSlUUsLD+3H5ckqQm9xFQc+lZdeOW9+6sMnePLsVTGvGF55Hqd1CE3xZaj6OjBz9A==", "payee_pub_key": "FIO8h1Aan6DZJsFjH91BGsQfNt2FsYbVyKeXFETNvYtTW9vaU81ay", "payer_pub_key": "FIO55BB3WmX7F1VDX7s8LjevJrU8g9G9ptpAmoZu7szYYBw19EZW4", "status": "requested", "transaction_id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns fio_data information.
Parameter | Description |
---|---|
time_start | |
time_end | |
payee_handle | |
payer_handle | |
payee_account | |
payer_account | |
status | |
limit | |
offset | |
Return records from fio_data
which match all request parameters.
timestamp
requires join on transactions
payee_account
and payer_account
requires join on handles
Sort by:
alphabetical: timestamp
ASC
Group | Field | Source Data |
---|---|---|
fio_data | request_id |
|
fio_data | timestamp |
|
fio_data | payer_account |
|
fio_data | payee_account |
|
fio_data | payee_handle |
|
fio_data | payer_handle |
|
fio_data | content |
|
fio_data | payee_pub_key |
|
fio_data | payer_pub_key |
|
fio_data | status |
|
fio_data | transaction_id |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "fio_data": [ { "request_id": 88, "timestamp": "2020-03-13T19:52:08", "payee_account": "xghrmfdenyu5", "payer_account": "1hpxnziaw2ec", "payee_handle": "pawel@fiotestnet", "payer_handle": "pawel@person", "content": "v6Kvk+CvQBGua4V1YpYjBekOzqA9LHWFfKXhfBnhewdGGm5PhPbwC8YQAIISpu/4mGDGR9JhCkyxLFH42Ei/EpSlUUsLD+3H5ckqQm9xFQc+lZdeOW9+6sMnePLsVTGvGF55Hqd1CE3xZaj6OjBz9A==", "payee_pub_key": "FIO8h1Aan6DZJsFjH91BGsQfNt2FsYbVyKeXFETNvYtTW9vaU81ay", "payer_pub_key": "FIO55BB3WmX7F1VDX7s8LjevJrU8g9G9ptpAmoZu7szYYBw19EZW4", "status": "sent_to_blockchain", "transaction_id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns domain_activity information.
Parameter | Description |
---|---|
time_start | |
time_end | |
domain | |
type | |
owner_account | |
limit | |
offset | |
Return records from domain_activity
which match all request parameters.
timestamp
requires join on transactions
owner_account
requires join on domains
Sort by:
alphabetical: timestamp
ASC
Group | Field | Source Data |
---|---|---|
domain_activity | domain |
|
domain_activity | transaction_id |
|
domain_activity | timestamp |
|
domain_activity | account |
|
domain_activity | type |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "domain_activity": [ { "domain": "bob", "transaction_id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e", "timestamp": "2020-03-13T19:52:08", "account": "1hpxnziaw2ec", "type": "register" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |
Returns handle_activity information.
Parameter | Description |
---|---|
time_start | |
time_end | |
handle | |
type | |
owner_account | |
limit | |
offset | |
Return records from handle_activity
which match all request parameters.
timestamp
requires join on transactions
owner_account
requires join on handles
Sort by:
alphabetical: timestamp
ASC
Group | Field | Source Data |
---|---|---|
handle_activity | domain |
|
handle_activity | transaction_id |
|
handle_activity | timestamp |
|
handle_activity | account |
|
handle_activity | type |
|
pagination | limit | Supplied limit |
pagination | offset | Supplied offset |
pagination | total_records | Total number of transactions which meet the criteria |
pagination | next_offset | Offset to supply for next set of records: supplied offset + limit |
pagination | previous_offset | Offset to supply for previous set of records: supplied offset - limit |
{ "handle_activity": [ { "handle": "turandb@opera", "transaction_id": "d3dcd291eb7caadab12f2b9bcacdc5df6b8a5c1455072d9454a3b43956677b6e", "timestamp": "2024-05-03T17:00:02.500", "account": "1hpxnziaw2ec", "type": "register" } ], "pagination": { "limit": 100, "offset": 0, "total_records": 1, "next_offset": "", "previous_offset": "" } } |