Table of Contents
Table of Contents | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Overview
FIO Relic is a fork of Antelope Memento and is intended to receive FIO Chain data stream from the FIO Chain Node via EOS Chronicle. FIO specific data is extracted from the stream and stored in a Relational Database (RDB) for future query via 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.
Components
Application Components
Data
...
This component is responsible for reading the data in the data stream and looking for FIO-specific data, parsing it, and inserting into RDB.
Example:
When an action registering FIO Domain is observed, insert it into domains table.
Query API
This component is responsible for receiving an API request, fetching relevant data from the RDB and returning to the API user.
Example:
Fetch all FIO Domains registered in specific time-frame.
Push Notification System
This component will be developed in Phase 2.
...
Pipeline
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.
Database
Postgres Relational Database to store FIO Chain information.
API
HTTP server to return information from database.
Push Notification System
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.
...
“Notify supplied webhook on every new FIO Domain registration”
“Notify when a FIO Request for specific FIO Handle is observed”
Specification
Data Model
blocks
...
Deployment Requirements
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
Data Model
blocks
Add only. Every block is a new entry.
Field | Description | Relationship | ||||||
---|---|---|---|---|---|---|---|---|
number |
| transactions → block_num | ||||||
id |
| |||||||
timestamp |
| |||||||
producer | Account name
| |||||||
schedule_version |
|
transactions
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 | Raw request data for primary trace | response_data
| |||||||
response_data |
| ||||||||
status |
|
traces
Add only. Every trace is a new entry.
Field | Description | Relationship | ||||||
---|---|---|---|---|---|---|---|---|
idTrace id. Auto-generated ID or transaction_id + action_ordinal, e.g. 770989df18fac96e48ca03d6702991d4462bebacceab8cf6b389507e998ca7fe-2 |
| |||||||
transaction_id |
| transactions → id | ||||||
receiver |
| |||||||
action_ordinal |
| |||||||
action_account | Account
| |||||||
action_name |
| |||||||
request_data |
|
accounts
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 |
| |||||||
timestamp |
|
account_activity
Add only. Every activity is a new entry.
Field | Description | Relationship | ||||||
---|---|---|---|---|---|---|---|---|
account |
| accounts → account | ||||||
transaction_id |
| transactions → id | ||||||
type |
|
domains
...
|
domains
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 |
|
domain_activity
Add only. Every activity is a new entry
Field | Description | Relationship | |||||||
---|---|---|---|---|---|---|---|---|---|
domain |
| domains → domain | |||||||
transaction_id | Transaction ID |
| transactions → id | ||||||
type |
|
handles
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_setDefines if encryption |
| |||||||||||||
bundled_tx |
| |||||||||||||
expiration |
| |||||||||||||
status |
|
handle_activity
Add only. Every activity is a new entry
Field | Description | Relationship | |||||||
---|---|---|---|---|---|---|---|---|---|
handle |
| handles → handle | |||||||
transaction_id |
| transactions → id | |||||||
type | Type of activity |
|
pub_addresses
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 |
| Public Address |
...
|
nft_signatures
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 |
|
token_transfers
Add only. Every transfer is a new entry. Includes internal transfers.
Field
Description
Relationship
staker_account
Field | Description | Relationship | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
payer_account | Account of payer (sender) | accounts → account | payee_account | Account of payee (receiver |
| accounts → account | ||||||||||||
transactionpayee_idaccount | Transaction ID | transactions → id | amount | Token amount in FIO | type | Type of transfer | memo | Memo in transfer |
token_staking
Add only. Every stake or unstake is a new entry. Includes internal transfers.
| accounts → account | ||||||||||||
transaction_id |
| transactions → id | |||||||||||
amount |
Token amount in FIO, unstake will be negative
fio_requests
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 Request ID
...
fio_data → request_id
...
payee_handle
...
Handle of payer
...
handles → handle
...
payer_handle
...
Handle of payee
...
handles → handle
...
content
...
Encrypted blob
...
payee_pub_key
...
Public Key of payee
...
payer_pub_key
...
Public Key of payer
...
status
...
Status of request
...
transaction_id
...
Transaction ID
...
transactions → id
fio_data
...
| |||||||||||||
type |
| ||||||||||||
memo |
|
token_staking
Add only. Every stake or unstake is a new entry. Includes internal transfers.
Field | Description | Relationship |
---|
request_id
FIO Request ID (optional)
fio_requests → id
payee_handle
Handle of payer
handles → handle
payer_handle
Handle of payee
handles → handle
content
Encrypted blob
payee_pub_key
Public Key of payee
payer_pub_key
Public Key of payer
status
Status of data
transaction_id
Transaction ID
transactions → id
Parsing Rules
The parsing rules below are triggered by any of the following:
block
transaction
trace
specific
account
andname
insidetrace
→action_traces
→act
. It will be presented as Trigger: action_account:action:name, e.g. Trigger: eosio:newaccount
and are organized by defining the table where record needs to be added as well as data source, typically from the trace.
Note |
---|
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. |
Trigger: every block
...
staker_account |
| accounts → account | ||||||||||||
transaction_id |
| transactions → id | ||||||||||||
amount |
|
fio_requests
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 |
|
...
Field | Source Data |
---|---|
number |
|
id |
|
timestamp |
|
producer |
|
schedule_version |
|
Trigger: every trace where action_ordinal = 1
...
| fio_data → request_id | |||||||
payee_handle |
| handles → handle | ||||||
payer_handle |
|
...
Field | Source Data |
---|---|
block_number |
|
id |
|
action_account |
|
action_name |
|
account |
|
tpid |
|
fee |
|
request_data |
|
response_data |
|
status |
|
Table: account_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
account |
|
transaction_id | Transaction ID |
type | “sender” |
Trigger: every trace where action_ordinal > 1
...
| handles → handle | |||||||||||||
content |
| |||||||||||||
payee_pub_key |
| |||||||||||||
payer_pub_key |
| |||||||||||||
status |
| |||||||||||||
transaction_id |
| transactions → id |
fio_data
Add and update. Represents current state of FIO Data. Will be updated every time request status changes. Records will not be removed.
Field
Source Data
id
Trace ID
transaction_id
trace
Field | Description | Relationship | ||||
---|---|---|---|---|---|---|
request_id |
|
...
| fio_requests → id |
payee_ |
trace
→ action_traces
→ action_ordinal
action_account
trace
→ action_traces
→ act
→ account
action_name
trace
→ action_traces
→ act
→ name
request_data
trace
→ action_traces
→ act
→ data
Trigger: fio.address:bind2eosio
...
handle |
| handles → handle | ||||||
payer_handle |
|
...
Field | Source Data |
---|---|
account |
|
public_key |
|
...
| handles → handle | |||||
content |
|
...
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “account_created” |
Trigger: fio.token:trnsfiopubky and action_ordinal = 1
...
| ||||||||
payee_pub_key |
| |||||||
payer_pub_key |
|
...
Field
...
Source Data
...
payer_account
...
trace
→ action_traces
→ act
→ data
→ actor
...
payee_account
...
trace
→ action_traces
→ act
→ data
→ payee_public_key
hashed to account
...
transaction_id
...
trace
→ id
...
amount
...
trace
→ action_traces
→ act
→ data
→ amount
/ 1000000000
...
type
...
“transfer”
...
memo
Trigger: fio.token:trnsloctoks and action_ordinal = 1
Table: token_transfers
Status | ||||
---|---|---|---|---|
|
...
Field
...
Source Data
...
payer_account
...
trace
→ action_traces
→ act
→ data
→ actor
...
payee_account
...
trace
→ action_traces
→ act
→ data
→ payee_public_key
hashed to account
...
transaction_id
...
trace
→ id
...
amount
...
trace
→ action_traces
→ act
→ data
→ amount
/ 1000000000
...
type
...
“transfer_locked”
...
memo
Trigger: fio.token:transfer and receiver:fio.token
...
| ||||||||
status |
| |||||||
transaction_id |
| transactions → id |
Parsing Rules
The parsing rules below are triggered by any of the following:
block
transaction
trace
specific
account
andname
insidetrace
→action_traces
→act
. It will be presented as Trigger: action_account:action:name, e.g. Trigger: eosio:newaccounttable deltas
and are organized by defining the table where record needs to be added as well as data source, typically from the trace.
Note |
---|
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. |
Trigger: every block
Table: blocks
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
number |
|
trace
→ action_traces
→ act
→ data
→ from
payee_account
trace
→ action_traces
→ act
→ data
→ to
transaction_id
trace
→ id
amount
trace
→ action_traces
→ act
→ data
→ quantity
(strip " FIO")
type
If memo:FIO fee*
type is “blockchain_fee”
If memo:Paying TPID from treasury.
type is “tpid_reward”
If memo:Paying Staking Rewards
type is “staking_reward”
If memo:Paying producer from treasury.
type is “bp_reward”
If memo:Paying foundation from treasury.
type is “foundation_reward”
If memo:Token Wrapping Oracle Fee
type is “oracle_fee”
If memo:Token Unwrapping
type is “unwrap”
memo
trace
→ action_traces
→ act
→ data
→ memo
Trigger: fio.token:issue and receiver:fio.token
Table: token_transfers
Status | ||||
---|---|---|---|---|
|
Field
Source Data
payer_account
“eosio”
| |
id |
|
timestamp |
|
producer |
|
schedule_version |
|
Trigger: every trace where action_ordinal = 1
Table: transactions
Status | ||||
---|---|---|---|---|
|
...
Field | Source Data |
---|---|
block_number |
|
id |
|
action_account |
|
action_name |
|
account |
|
data
|
to
|
tpid |
|
id
amount
trace
→
|
quantity
(strip " FIO")type
“token_mint”
| |
fee |
|
request_data |
|
memo
Trigger: fio.token:wraptokens and action_ordinal = 1
...
response_data |
|
status |
|
Table: account_activity
Status | ||||
---|---|---|---|---|
|
...
Field | Source Data |
---|
account |
|
payee_account
“fio.oracle"
transaction_id |
trace
→ id
amount
trace
→ action_traces
→ act
→ data
→ amount
/ 1000000000
type
“wrap”
memo
...
Transaction ID | |
type | “sender” |
Trigger: every trace where action_ordinal > 1
Table:
...
traces
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
staker_account
trace
→ action_traces
→ act
→ data
→ actor
id | Trace id. Auto-generated ID or transaction_id + action_ordinal, e.g. 770989df18fac96e48ca03d6702991d4462bebacceab8cf6b389507e998ca7fe-2 |
transaction_id |
|
receiver |
|
act
→ data
→ amount
/ 1000000000Trigger: fio.token:retire and action_ordinal = 1
Table: token_transfers
Status | ||||
---|---|---|---|---|
|
Field
Source Data
| |
action_ordinal |
|
action_account |
|
data
→ actor
payee_ |
transaction_id
trace
→ id
amount
type
“retire”
memo
action_name |
|
data
→ quantity
/ 1000000000
| |
request_data |
|
memo
Trigger: fio.
...
address:bind2eosio
Table:
...
accounts
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
account |
|
actor
|
transaction_id
trace
→ id
amount
public_key |
|
amount
/ 1000000000)Trigger: fio.address:regdomain and action_ordinal = 1
...
| |
timestamp |
|
Table: account_activity
Status | ||||
---|---|---|---|---|
|
...
Status | ||||
---|---|---|---|---|
|
...
Field | Source Data |
---|
account |
|
|
transaction_ |
id |
account
|
action_traces
→ act
→ data
→ owner_fio_public_key
hashed to accountis_public
“false”
expiration
response
→ expiration
status
“active"
...
| |
type | “receiver” |
Trigger: fio.token:trnsfiopubky and action_ordinal = 1
Table: token_transfers
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
payer_account |
|
fio_domain
|
payee_ |
account |
|
id
type
→ | |
transaction_id |
|
amount |
|
type | “transfer” |
memo |
Trigger: fio.
...
token:
...
trnsloctoks and action_ordinal = 1
Table:
...
token_transfers
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|
Field
Source Data
domain
payer_account |
|
fio_domain
expiration
response
→ expiration
Table: domain_activity
Status | ||||
---|---|---|---|---|
|
| |
payee_account |
|
fio_domain
| |
transaction_id |
|
type
“renew”
Trigger: fio.address:xferdomain and action_ordinal = 1
...
amount |
|
type | “transfer_locked” |
memo |
Trigger: fio.token:transfer and receiver = fio.token
Table: token_transfers
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|
payer_account |
|
|
payee_ |
account |
|
new_owner_fio_public_key
hashed
|
...
transaction_ |
...
id |
...
Field
Source Data
domain
|
...
colour | Green |
---|---|
title | NEW RECORD |
amount |
|
fio_domain
transaction_id
trace
→ id
Field
Source Data
|
type |
“transfer”
Trigger: fio.address:setdomainpub and action_ordinal = 1
Table: domains
Status | ||||
---|---|---|---|---|
|
If If If If If If If | |
memo |
|
Trigger: fio.token:issue and receiver = fio
...
is_public
...
trace
→ action_traces
→ act
→ data
→ is_public
(1 - true; 0 - false)
...
.token
Table: token_transfers
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
payer_account | “eosio” |
payee_account |
|
fio_domain
| |
transaction_id |
|
amount |
|
type |
is_public: 1 type is “public”
is_public: 0 type is “non-public”“token_mint” | |
memo |
|
Trigger: fio.
...
token:
...
wraptokens and action_ordinal = 1
Table:
...
token_transfers
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|
payer_account |
|
|
payee_ |
account | “fio. |
Table: domain_activity
Status | ||||
---|---|---|---|---|
|
Field
Source Data
transaction_id
trace
→ id
oracle" | |
transaction_id |
|
amount |
|
fio_domain
| |
type | “wrap” |
memo |
Trigger: fio.
...
token:stakefio and action_ordinal = 1
Table:
...
token_staking
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|
staker_account |
|
fio_domain
account | |
transaction_id |
|
amount |
|
public_key
hashed to account |
Trigger: fio.token:retire and action_ordinal = 1
Table:
...
token_
...
transfers
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
payer_account |
|
|
payee_ |
account | |
transaction_id |
|
amount |
|
type |
“retire” | |
memo |
|
Trigger: fio.
...
token:
...
unstakefio and action_ordinal = 1
Table:
...
token_staking
Status | ||||
---|---|---|---|---|
|
...
...
Field | Source Data |
---|
staker_account |
|
|
transaction_ |
id |
account
encryption_key
|
action_traces
→ act
→ data
→ owner_fio_public_key
hashed to account
| |
amount | Negative of ( |
owner_fio_public_key
encryption_key_set
“false”
bundled_tx
|
Trigger: fio.address:regdomain and action_ordinal = 1
Table: domains
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
domain
)Field | Source Data |
---|---|
domain |
|
account |
|
is_public | “false” |
expiration |
|
status | “active" |
Table:
...
domain_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
domain |
|
| |
transaction_id |
|
type | “register” |
Table:
...
account_
...
activity
Status | ||||
---|---|---|---|---|
|
...
Field
...
Source Data
...
handle
...
Only insert if trace
→ action_traces
→ act
→ data
→
...
chain_code
...
“FIO”
...
token_code
...
“FIO”
actor
is not trace
→ action_traces
→ act
→ data
→ owner_fio_public_key
hashed to account.
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
Trigger: fio.address:
...
renewdomain and action_ordinal = 1
Table:
...
domains
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
domain |
|
bundled_tx
Increment current value by “100”
| |
expiration |
|
Table:
...
domain_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
domain |
|
| |
transaction_id |
|
type | “renew” |
Trigger: fio.address:
...
xferdomain and action_ordinal = 1
Table:
...
domains
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
domain |
|
| |
account |
|
Table: domain_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
domain |
|
|
encryption_key_set
| |
transaction_id |
|
type | “transfer” |
Table:
...
account_activity
Status | ||||
---|---|---|---|---|
|
...
Field | Source Data |
---|
account |
|
| |
transaction_id |
|
type |
“transfer”
...
Status | ||||
---|---|---|---|---|
|
...
“receiver” |
Trigger: fio.address:setdomainpub and action_ordinal = 1
Table: domains
Status | |
---|---|
|
...
|
...
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
and add:
|
Field | Source Data |
---|
domain |
|
chain_code
“FIO”
token_code
“FIO”
| |
is_public |
|
new_owner_fio_public_key
|
Table:
...
domain_
...
activity
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|---|
domain |
|
...
| |
transaction_id |
|
type | is_public: 1 type is “public” is_public: 0 type is “non-public” |
Trigger: fio.address:
...
wrapdomain and action_ordinal = 1
Table:
...
domains
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
domain |
|
trace
→ action_traces
→ act
→ data
→ bundle_sets
* 100
|
bundled_tx
account | “fio.oracle” |
Table:
...
domain_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
domain |
|
| |
transaction_id |
|
type |
“wrap” |
Trigger: fio.address:addaddress and action_ordinal = 1
...
Table: account_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
handle
trace
→ action_traces
→ act
→ data
→ fio_address
account | “fio.oracle” |
transaction_id |
|
type |
“receiver” |
Trigger: fio.address:xferescrow
Table:
...
domains
Status | |
---|---|
|
...
|
...
|
...
Field |
---|
...
Source Data |
---|
...
colour | Yellow |
---|---|
title | update |
...
domain |
|
account |
|
...
|
Table: domain_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
domain |
|
|
transaction_ |
id |
|
action_traces
→ act
→ data
→ public_addresses
→ chain_code
token_code | |
type | “unwrap” |
Table: account_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
account |
|
token_code
public_address
trace
→ action_traces
→ act
→ data
→ public_addresses
→ public_address
| |
transaction_id |
|
type | “receiver” |
Field | Source Data |
---|---|
account | “fio.oracle” |
transaction_id |
|
type | “sender” |
Trigger: fio.address:regaddress and action_ordinal = 1
Table: handles
Status | |
---|---|
|
...
|
...
|
Status | ||||
---|---|---|---|---|
|
handle
)Field | Source Data |
---|---|
handle |
|
encryption_key
domain | Domain from ( |
|
public_address
Trigger: fio.address:remaddress and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field
Source Data
handle
| |
account |
|
transaction_id
trace
→ id
type
“rem_pubbadd”
...
| |
encryption_key |
|
encryption_key_set | “false” |
bundled_tx | “100” |
expiration |
|
status | “active" |
Table: handle_activity
Status | |
---|---|
|
...
|
...
Remove each object in trace
→ action_traces
→ act
→ data
→ public_addresses
which matches
|
Field | Source Data |
---|---|
handle |
|
chain_code
transaction_id |
|
type | “register” |
Table: account_activity
Status | ||||
---|---|---|---|---|
|
...
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” |
Table: pub_addresses
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
chain_code | “FIO” |
token_code | “FIO” |
public_address |
|
|
|
|
Trigger: fio.address:
...
renewaddress and action_ordinal = 1
Table:
...
handles
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|---|
handle |
|
bundled_ |
trace
→ id
type
tx | Increment current value by “100” |
expiration |
|
Table:
...
handle_
...
activity
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “renew” |
Trigger: fio.address:
...
xferaddress and action_ordinal = 1
Table:
...
handles
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|---|
handle |
|
account |
|
id
type
“add_nft”
Table: nft_signatures
Status | ||||
---|---|---|---|---|
|
Status | ||||
---|---|---|---|---|
|
...
Field
Source Data
|
...
| |
encryption_key |
|
|
|
trace
→ action_traces
→ act
→ data
→ nfts
-> chain_code
encryption_key_set | “false” |
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
...
Field | Source Data |
---|---|
handle |
|
nfts
→ contract |
transaction_id |
|
action_traces
→ act
→ data
→ nfts
→ token_ |
url
trace
→ action_traces
→ act
→ data
→ nfts
→ url
hash
trace
→ action_traces
→ act
→ data
→ nfts
→ hash
metadata
trace
→ action_traces
→ act
→ data
→ nfts
→ metadata
Trigger: fio.address:remnft and action_ordinal = 1
...
type | “transfer” |
Table: account_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|
account |
|
| |
transaction_id |
|
type |
“receiver” |
Table:
...
pub_
...
addresses
Status | ||||
---|---|---|---|---|
|
Status | |
---|---|
|
...
|
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ nfts
which matches fio_address
and add:
Field | Source Data |
---|---|
handle |
|
chain_code |
trace
→ action_traces
→ act
→ data
→ nfts
-> chain_code
“FIO” | |
token_code | “FIO” |
public_address |
|
nfts
→ contract_address
token_id
trace
→ action_traces
→ act
→ data
→ nfts
→ token_id
url
trace
→ action_traces
→ act
→ data
→ nfts
→ url
hash
trace
→ action_traces
→ act
→ data
→ nfts
→ hash
metadata
|
Table: nft_signatures
Status | ||||
---|---|---|---|---|
|
Remove all objects matching in trace
→ action_traces
→ act
→ data
→
...
fio_address
Trigger: fio.address:
...
addbundles and action_ordinal = 1
Table:
...
handles
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|---|
handle |
|
bundled_ |
tx | Increment current value by |
id
type
|
Table:
...
handle_
...
activity
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “add_bundles” |
Trigger: fio.address:
...
addaddress and action_ordinal = 1
Table:
...
handle_activity
Status | |
---|---|
|
...
|
...
|
Field | Source Data |
---|---|
handle |
|
transaction_ |
id |
|
action_traces
→ act
→ data
→ encrypt_public_key
encryption_key_set
“true”
...
| |
type | “add_pubbadd” |
Table: pub_addresses
Status | ||||
---|---|---|---|---|
|
...
Field
...
Source Data
...
handle
Status | ||||
---|---|---|---|---|
|
...
transaction_id
...
trace
→ id
...
type
...
“upd_encryptkey”
Trigger: fio.address:regdomadd and action_ordinal = 1
Execute same as for trigger fio.address:regdomain and fio.address:regaddress
Trigger: fio.address:burnaddress and action_ordinal = 1
...
For each object in trace
→ action_traces
→ act
→ data
→
...
public_addresses
update or insert new record
Field | Source Data |
---|---|
handle |
|
status
“burnt”
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field
Source Data
handle
chain_code |
|
|
|
token_ |
code |
|
id
type
“self_burn”
Table: pub_addresses
Status | ||||
---|---|---|---|---|
|
...
| |
public_address |
|
...
|
Table:
...
handles
Status | |
---|---|
|
...
|
...
|
Update only if encryption_key_set = false and chain_code = “FIO” and (token_code = “FIO” or token_code = “*”)
Field | Source Data |
---|---|
handle |
|
...
encryption_key |
|
Trigger: fio.address:remaddress and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type |
“rem_ |
pubbadd” |
Table:
...
pub_
...
addresses
Status | |
---|---|
|
...
|
...
|
Remove each object in trace
→ action_traces
→ act
→ data
→ public_addresses
which matches
Field | Source Data |
---|
id
response
→ fio_request_id
handle |
|
|
chain_ |
code |
|
|
|
|
token_code |
|
content
payee_pub_key
accounts
→ encrypt_key
where account is owner of payer_pub_key
Look-up accounts
→ encrypt_key
where account is owner of trace
→ action_traces
→ act
→ data
→ payer_fio_address
status
“pending”
transaction_id
trace
→ id
| |
public_address |
|
payee_fio_address
|
Trigger: fio.address:
...
remalladdr and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type |
“rem_all_ |
pubbadd” |
Table:
...
pub_
...
addresses
Status | |
---|---|
|
...
|
...
Field
...
Source Data
...
id
|
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_
...
status
...
“cancelled”
address
Trigger: fio.address:
...
addnft and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type |
“add_ |
nft” |
Table:
...
nft_
...
signatures
Status | ||||
---|---|---|---|---|
|
...
Field
...
Source Data
...
request_id
...
trace
→ action_traces
→ act
→ data
→ fio_request_id
...
Status | ||||
---|---|---|---|---|
|
For each object in trace
→ action_traces
→ act
→ data
→ nfts
update or insert new record
Field | Source Data |
---|---|
handle |
|
|
chain_ |
code |
|
|
contract_address |
content
|
content
|
token_ |
accounts
→ encrypt_key
where account is owner of id |
|
|
payer_pub_key
accounts
→ encrypt_key
where account is owner of
| |
url |
|
payer_fio_address
status
→ | |
hash |
|
metadata |
|
Trigger: fio.address:remnft and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “rem_nft” |
Table:
...
nft_
...
signatures
Status | |
---|---|
|
...
|
...
|
Remove each object in trace
→ action_traces
→ act
→ data
→ fio_request_id
is present nfts
which matches
Field | Source Data |
---|
handle |
|
status
| |
chain_code |
|
contract_address |
|
token_id |
|
url |
|
hash |
|
metadata |
|
Trigger: fio.address:remallnfts and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “rem_all_nft” |
Table: nft_signatures
Status | ||||
---|---|---|---|---|
|
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
Trigger: fio.address:updcryptkey and action_ordinal = 1
Table: handles
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
encryption_key |
|
encryption_key_set | “true” |
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “upd_encryptkey” |
Trigger: fio.address:regdomadd and 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”.
Trigger: fio.address:burnaddress and action_ordinal = 1
Table: handles
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
status | “burnt” |
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “self_burn” |
Table: pub_addresses
Status | ||||
---|---|---|---|---|
|
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
Table: nft_signatures
Status | ||||
---|---|---|---|---|
|
Remove all objects matching in trace
→ action_traces
→ act
→ data
→ fio_address
Trigger: fio.address:newfundsreq and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “new_request” |
Table: account_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
Field | Source Data |
---|---|
account | Look-up |
transaction_id |
|
type | “receiver” |
Table: fio_requests
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
id |
|
payee_handle |
|
payer_handle |
|
content |
|
payee_pub_key | Look-up |
payer_pub_key | Look-up |
status | “pending” |
transaction_id |
|
Trigger: fio.address:cancelfndreq and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “cancel_request” |
Table: fio_requests
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
id |
|
status | “cancelled” |
Trigger: fio.address:recordobt and action_ordinal = 1
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id |
|
type | “record_obt” |
Table: account_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
account |
|
transaction_id |
|
type | “receiver” |
Field | Source Data |
---|---|
account | Look-up |
transaction_id |
|
type | “receiver” |
Table: fio_data
Status | ||||
---|---|---|---|---|
|
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 |
|
Table: fio_requests
Status | ||||
---|---|---|---|---|
|
Update only if trace
→ action_traces
→ act
→ data
→ fio_request_id
is present
Field | Source Data |
---|---|
id |
|
status | “sent_to_blockchain” |
Trigger: Table Deltas: added:false
and kvo->table:domains
Secondary conditions (all must be true):
There must be a transaction in the
block_num
which hasaction_name: burnexpired
is_public
forkvo
→value
→name
in domains table has not changedexpiration
forkvo
→value
→name
in domains table has not changed
Table: domains
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
domain |
|
status | “burnt” |
Table: domain_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
domain |
|
transaction_id | transaction id of transaction with |
type | “auto_burn” |
Trigger: Table Deltas: added:false
and kvo->table:fionames
Secondary conditions (all must be true):
There must be a transaction in the
block_num
which hasaction_name: burnexpired
and its traces do not have a trace withaction_name: burnaddress and action_ordinal = 1
Table: handles
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
status | “burnt” |
Table: handle_activity
Status | ||||
---|---|---|---|---|
|
Field | Source Data |
---|---|
handle |
|
transaction_id | transaction id of transaction with |
type | “auto_burn” |
API
/get_blocks
Returns block information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
time_start |
timestamp | ||||||
time_end |
timestamp | ||||||
producer |
producer | ||||||
sort |
|
Query
Return records from blocks
which match all request parameters.
Sort by:
block_num_asc:
blocks
→number
ASCblock_num_desc:
blocks
→number
DESCtimestamp_asc:
blocks
→timestamp
ASCtimestamp_desc:
blocks
→timestamp
DESC
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_transactions
Returns transaction information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
time_start |
timestamp | ||||||
time_end |
timestamp | ||||||
block_number |
block_number | ||||||
action_account |
action_account | ||||||
action_name |
action_name | ||||||
impacted_account |
| ||||||
impacted_account_direction |
| ||||||
include_traces |
| ||||||
sort |
| ||||||
limit |
| ||||||
offset |
|
Query
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
whereimpacted_account
=account_activity->account
andtype
is “sender”
impacted_account_direction
is supplied and is “receiver”Records from
transactions
whereimpacted_account
=account_activity->account
andtype
is “receiver”
impacted_account_direction
is supplied and is “both” or not suppliedRecords from
transactions
whereimpacted_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
matchestransaction_id
Include
payer_account
payee_account
amount
type
memo
domain_activity
id
matchestransaction_id
Include
domain
type
handle_activity
id
matchestransaction_id
Include
handle
type
token_staking
id
matchestransaction_id
Include
staker_account
amount
fio_requests
id
matchestransaction_id
Include
id
payee_handle
payer_handle
content
payee_pub_key
payer_pub_key
status
fio_data
id
matchestransaction_id
Include
request_id
payee_handle
payer_handle
content
payee_pub_key
payer_pub_key
status
Sort by:
timestamp_asc:
blocks
→timestamp
ASCtimestamp_desc:
blocks
→timestamp
DESC
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_accounts
Returns account information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
time_start |
timestamp | ||||||
time_end |
timestamp | ||||||
sort |
| ||||||
limit |
| ||||||
offset |
|
Query
Return records from accounts
which match all request parameters.
Sort by:
timestamp_asc:
timestamp
ASCtimestamp_desc:
timestamp
DESC
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"accounts": [
{
"account": "1hpxnziaw2ec",
"public_key": "FIO5PJdEsMQ5Qd2otKVFSXru72KcMx4G2Vafo9MZ6NHttqYCiV5JP"
}
],
"pagination": {
"limit": 100,
"offset": 0,
"total_records": 1,
"next_offset": "",
"previous_offset": ""
}
} |
/get_domains
Returns domain information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
account |
| ||||||
is_public |
| ||||||
status |
| ||||||
sort |
| ||||||
limit |
| ||||||
offset |
|
Query
Return records from domains
which match all request parameters.
Sort by:
alphabetical:
domain
ASCexpiration_asc:
expiration
ASCexpiration_asc:
expiration
DESC
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_handles
Returns handle information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
handle |
| ||||||
account |
| ||||||
domain |
| ||||||
status |
| ||||||
bundled_tx_max |
| ||||||
limit |
| ||||||
offset |
|
Query
Return records from handles
which match all request parameters.
Sort by:
alphabetical:
handle
ASC
Response
Group | Field | Source Data |
---|---|---|
handles | handle |
|
handles | account |
|
handles | domain |
|
handles | encryption_key |
|
handles | encryption_key_set |
|
handles | bundled_tx |
|
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"handles": [
{
"handle": "turandb@opera",
"account": "1hpxnziaw2ec",
"domain": "opera",
"encryption_key": "FIO5PJdEsMQ5Qd2otKVFSXru72KcMx4G2Vafo9MZ6NHttqYCiV5JP",
"encryption_key_set": false,
"bundled_tx": 100,
"expiration": "2025-05-03T17:00:02.500",
"status": "active"
}
],
"pagination": {
"limit": 100,
"offset": 0,
"total_records": 1,
"next_offset": "",
"previous_offset": ""
}
} |
/get_pub_addresses
Returns pub_addresses information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
handle |
| ||||||
account |
| ||||||
chain_code |
| ||||||
token_code |
| ||||||
public_address |
| ||||||
limit |
| ||||||
offset |
|
Query
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
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_nft_signatures
Returns nft_signatures information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
handle |
| ||||||
account |
| ||||||
chain_code |
| ||||||
contract_address |
| ||||||
token_id |
| ||||||
limit |
| ||||||
offset |
|
Query
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
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_token_transfers
Returns token_transfers information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
time_start |
timestamp of associated transaction | ||||||
time_end |
timestamp of associated transaction | ||||||
payer_account |
| ||||||
payee_account |
| ||||||
type |
| ||||||
limit |
| ||||||
offset |
|
Query
Return records from token_transfers
which match all request parameters.
timestamp
requires join on transactions
Sort by:
alphabetical:
timestamp
ASC
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_fio_requests
Returns fio_request information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
time_start |
timestamp of associated transaction | ||||||
time_end |
timestamp of associated transaction | ||||||
payee_handle |
| ||||||
payer_handle |
| ||||||
payee_account |
| ||||||
payer_account |
| ||||||
status |
| ||||||
limit |
| ||||||
offset |
|
Query
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
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_fio_data
Returns fio_data information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
time_start |
timestamp of associated transaction | ||||||
time_end |
timestamp of associated transaction | ||||||
payee_handle |
| ||||||
payer_handle |
| ||||||
payee_account |
| ||||||
payer_account |
| ||||||
status |
| ||||||
limit |
| ||||||
offset |
|
Query
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
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_domain_activity
Returns domain_activity information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
time_start |
timestamp of associated transaction | ||||||
time_end |
timestamp of associated transaction | ||||||
domain |
| ||||||
type |
| ||||||
owner_account |
| ||||||
limit |
| ||||||
offset |
|
Query
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
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |
/get_handle_activity
Returns handle_activity information.
Request
Parameter | Description | ||||||
---|---|---|---|---|---|---|---|
time_start |
timestamp of associated transaction | ||||||
time_end |
timestamp of associated transaction | ||||||
handle |
| ||||||
type |
| ||||||
owner_account |
| ||||||
limit |
| ||||||
offset |
|
Query
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
Response
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 |
Example
Code Block | ||
---|---|---|
| ||
{
"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": ""
}
} |