Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Table of Contents
excludeclass
maxLevel6
minLevel1
maxLevel6
include
outlinefalse
indent
exclude
stylenone
typelist
printabletrue
class

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:

...

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.

...

  • “Notify supplied webhook on every new FIO Domain registration”

  • “Notify when a FIO Request for specific FIO Handle is observed”

Specification

Data Model

blocks

...

Field

...

Description

...

Data stream field name

...

Relationship

...

number

...

Block number as generated by FIO Node

...

block_num

...

transactions->block_num

...

id

...

Block ID as generated by FIO Node

...

id

...

timestamp

...

Timestamp as generated by FIO Node

...

timestamp

...

producer

...

Account name of producer which produced the block

...

producer

...

schedule_version

...

Version of BP schedule

...

schedule_version

transactions

...

Field

...

Description

...

Data stream field name

...

Relationship

...

block_number

...

Block which contained this transaction

...

block_num

...

blocks->number

...

id

...

Transaction id

...

id

...

traces->transaction_id

...

account

...

Account name for action

...

account

...

action

...

Action name

...

name

...

actor

...

Actor which executed the transaction

...

actor

...

tpid

...

TPID which was recorded in tranaction

...

tpid

...

fee

...

FIO Chain fee paid for this transaction

...

fee_collected

...

request_data

...

Raw request data for primary trace

...

data

...

response_data

...

Raw response data for primary trace

...

response

traces

...

Field

...

Description

...

Data stream field name

...

Relationship

...

id

...

Trace id

...

accounts->trace_id

...

transaction_id

...

Transaction ID

...

transactions->id

...

action_ordinal

...

Sequential order of trace in transaction

...

action_ordinal

...

account

...

Account name for trace

...

account

...

action

...

Action name fro trace

...

name

...

request_data

...

Raw request data for trace

...

data

accounts

...

Field

...

Description

...

Data stream field name

...

Relationship

...

account

...

Account name

...

account_transactions->account

...

trace_id

...

Trace ID which created account

...

traces->id

account_transactions

...

Field

...

Description

...

Data stream field name

...

Relationship

...

account

...

Account name

...

accounts->account

...

transaction_id

...

Transaction ID

...

transactions->id

...

type

...

Type of impact the transaction had on on account

domains

...

Field

...

Description

...

Data stream field name

...

Relationship

...

domain

...

Domain name

...

domain_activity->domain

...

owner

...

Account Name of current owner

...

accounts->account

...

expiration

...

Timestamp of domain expiration

...

status

...

Current status of domain

domain_activity

...

Field

...

Description

...

Data stream field name

...

Relationship

...

domain

...

Domain name

...

domains->domain

...

owner

...

Account Name of current owner

...

accounts->account

...

trace_id

...

Trace ID of domain activity

...

traces->id

...

type

...

Type of activity

handles

...

Field

...

Description

...

Data stream field name

...

Relationship

...

handle

...

Handle name

...

owner

...

Account Name of current owner

...

accounts->account

...

bundled_tx

...

Bundled tx count

handle_activity

...

Field

...

Description

...

Data stream field name

...

Relationship

...

handle

...

Handle name

...

handles->handle

...

owner

...

Account Name of current owner

...

accounts->account

...

trace_id

...

Trace ID of handle activity

...

traces->id

...

type

...

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

Status
colourGreen
titleFROM CHAIN DATA
Block number as generated by FIO Node

transactions → block_num

id

Status
colourGreen
titleFROM CHAIN DATA
Block ID as generated by FIO Node

timestamp

Status
colourGreen
titleFROM CHAIN DATA
Timestamp as generated by FIO Node

producer

Status
colourGreen
titleFROM CHAIN DATA
Account name of producer which produced the block

schedule_version

Status
colourGreen
titleFROM CHAIN DATA
Version of BP schedule

transactions

Add only. Every transaction is a new entry.

Field

Description

Relationship

block_number

Status
colourGreen
titleFROM CHAIN DATA
Block which contained this transaction

blocks → number

id

Status
colourGreen
titleFROM CHAIN DATA
Transaction id

traces → transaction_id

action_account

Status
colourGreen
titleFROM CHAIN DATA
Account name for action

action_name

Status
colourGreen
titleFROM CHAIN DATA
Action name

account

Status
colourGreen
titleFROM CHAIN DATA
Account which executed the transaction

tpid

Status
colourGreen
titleFROM CHAIN DATA
TPID which was recorded in tranaction

fee

Status
colourGreen
titleFROM CHAIN DATA
FIO Chain fee paid for this transaction

request_data

Status
colourGreen
titleFROM CHAIN DATA
Raw request data for primary trace

response_data

Status
colourGreen
titleFROM CHAIN DATA
Raw response data for primary trace

status

Status
colourGreen
titleFROM CHAIN DATA
Transaction status

traces

Add only. Every trace is a new entry.

Field

Description

Relationship

id

Status
colourYellow
titleGENERATED
Trace ID - generated.

transaction_id

Status
colourGreen
titleFROM CHAIN DATA
Transaction ID

transactions → id

receiver

Status
colourGreen
titleFROM CHAIN DATA
Receiver of trace

action_ordinal

Status
colourGreen
titleFROM CHAIN DATA
Sequential order of trace in transaction

action_account

Status
colourGreen
titleFROM CHAIN DATA
Account name for trace

action_name

Status
colourGreen
titleFROM CHAIN DATA
Action name fro trace

request_data

Status
colourGreen
titleFROM CHAIN DATA
Raw request data for trace

accounts

Add only. Every account created is a new entry.

Field

Description

Relationship

account

Status
colourGreen
titleFROM CHAIN DATA
Account name

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

Status
colourGreen
titleFROM CHAIN DATA
Primary public key

timestamp

Status
colourGreen
titleFROM CHAIN DATA
Block timestamp of when account was created

account_activity

Add only. Every activity is a new entry.

Field

Description

Relationship

account

Status
colourGreen
titleFROM CHAIN DATA
Account name

accounts → account

transaction_id

Status
colourGreen
titleFROM CHAIN DATA
Transaction ID

transactions → id

type

Status
colourBlue
titleDEFINED BY RULES
Type of activity. Options:

  • sender

  • receiver

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

Status
colourGreen
titleFROM CHAIN DATA
Domain name

domain_activity → domain

account

Status
colourGreen
titleFROM CHAIN DATA
Status
colourBlue
titleDEFINED BY RULES
Account name of current owner

accounts → account

is_public

Status
colourGreen
titleFROM CHAIN DATA
Is domain public

expiration

Status
colourGreen
titleFROM CHAIN DATA
Timestamp of domain expiration

status

Status
colourBlue
titleDEFINED BY RULES
Current status of domain. Options:

  • active

  • burnt

domain_activity

Add only. Every activity is a new entry

Field

Description

Relationship

domain

Status
colourGreen
titleFROM CHAIN DATA
Domain name

domains → domain

transaction_id

Status
colourGreen
titleFROM CHAIN DATA
Transaction ID

transactions → id

type

Status
colourBlue
titleDEFINED BY RULES
Type of activity. Options:

  • register

  • renew

  • transfer

  • wrap

  • unwrap

  • auto_burn

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

Status
colourGreen
titleFROM CHAIN DATA
Handle name

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

Status
colourBlue
titleDEFINED BY RULES
Domain on which handle is registered. Right of @ in user@domain

domains → domain

account

Status
colourGreen
titleFROM CHAIN DATA
Account name of current owner

accounts → account

encryption_key

Status
colourGreen
titleFROM CHAIN DATA
Encryption public key

encryption_key_set

Status
colourBlue
titleDEFINED BY RULES
Defines if encryption key was specifically set. Options:

  • false (default)

  • true

bundled_tx

Status
colourGreen
titleFROM CHAIN DATA
Status
colourBlue
titleDEFINED BY RULES
Bundled tx count

expiration

Status
colourGreen
titleFROM CHAIN DATA
Status
colourBlue
titleDEFINED BY RULES
Timestamp of handle expiration

status

Status
colourBlue
titleDEFINED BY RULES
Current status of handle. Options:

  • active

  • burnt

handle_activity

Add only. Every activity is a new entry

Field

Description

Relationship

handle

Status
colourGreen
titleFROM CHAIN DATA
Handle name

handles → handle

transaction_id

Status
colourGreen
titleFROM CHAIN DATA
Transaction ID

transactions → id

type

Status
colourBlue
titleDEFINED BY RULES
Type of activity. Options:

  • register

  • renew

  • transfer

  • add_bundles

  • add_pubbadd

  • rem_pubbadd

  • rem_all_pubbadd

  • add_nft

  • rem_nft

  • rem_all_nft

  • upd_encryptkey

  • self_burn

  • new_request

  • cancel_request

  • record_obt

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

Status
colourGreen
titleFROM CHAIN DATA
Handle name

handles → handle

chain_code

Status
colourGreen
titleFROM CHAIN DATA
Chain code

token_code

Status
colourGreen
titleFROM CHAIN DATA
Token code

public_address

Status
colourGreen
titleFROM CHAIN DATA
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

Status
colourGreen
titleFROM CHAIN DATA
Handle name

handles → handle

chain_code

Status
colourGreen
titleFROM CHAIN DATA
Chain code

contract_address

Status
colourGreen
titleFROM CHAIN DATA
Contract address

token_id

Status
colourGreen
titleFROM CHAIN DATA
Token ID

url

Status
colourGreen
titleFROM CHAIN DATA
url

hash

Status
colourGreen
titleFROM CHAIN DATA
hash

metadata

Status
colourGreen
titleFROM CHAIN DATA
metadata

token_transfers

Add only. Every transfer is a new entry. Includes internal transfers.

Field

Description

Relationship

payer_account

Status
colourGreen
titleFROM CHAIN DATA
Status
colourBlue
titleDEFINED BY RULES
Account of payer (sender)

accounts → account

payee_account

Status
colourGreen
titleFROM CHAIN DATA
Status
colourBlue
titleDEFINED BY RULES
Account of payee (receiver)

accounts → account

transaction_id

Status
colourGreen
titleFROM CHAIN DATA
Transaction ID

transactions → id

amount

Status
colourGreen
titleFROM CHAIN DATA
Status
colourBlue
titleDEFINED BY RULES
Token amount in FIO

type

Status
colourBlue
titleDEFINED BY RULES
Type of transfer. Options:

  • transfer

  • transfer_locked

  • blockchain_fee

  • tpid_reward

  • staking_reward

  • bp_reward

  • foundation_reward

  • oracle_fee

  • unwrap

  • token_mint

  • wrap

  • retire

memo

Status
colourGreen
titleFROM CHAIN DATA
Memo in transfer

token_staking

Add only. Every stake or unstake is a new entry. Includes internal transfers.

Field

Description

Relationship

staker_account

Status
colourGreen
titleFROM CHAIN DATA
Account of staker

accounts → account

transaction_id

Status
colourGreen
titleFROM CHAIN DATA
Transaction ID

transactions → id

amount

Status
colourGreen
titleFROM CHAIN DATA
Status
colourBlue
titleDEFINED BY RULES
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

Status
colourGreen
titleFROM CHAIN DATA
FIO Request ID

fio_data → request_id

payee_handle

Status
colourGreen
titleFROM CHAIN DATA
Handle of payer

handles → handle

payer_handle

Status
colourGreen
titleFROM CHAIN DATA
Handle of payee

handles → handle

content

Status
colourGreen
titleFROM CHAIN DATA
Encrypted blob

payee_pub_key

Status
colourGreen
titleFROM CHAIN DATA
Public Key of payee

payer_pub_key

Status
colourGreen
titleFROM CHAIN DATA
Public Key of payer

status

Status
colourGreen
titleFROM CHAIN DATA
Status
colourBlue
titleDEFINED BY RULES
Status of request. Options:

  • pending

  • cancelled

  • sent_to_blockchain

transaction_id

Status
colourGreen
titleFROM CHAIN DATA
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

Description

Relationship

request_id

Status
colourGreen
titleFROM CHAIN DATA
FIO Request ID (optional)

fio_requests → id

payee_handle

Status
colourGreen
titleFROM CHAIN DATA
Handle of payer

handles → handle

payer_handle

Status
colourGreen
titleFROM CHAIN DATA
Handle of payee

handles → handle

content

Status
colourGreen
titleFROM CHAIN DATA
Encrypted blob

payee_pub_key

Status
colourGreen
titleFROM CHAIN DATA
Public Key of payee

payer_pub_key

Status
colourGreen
titleFROM CHAIN DATA
Public Key of payer

status

Status
colourGreen
titleFROM CHAIN DATA
Status of data. Currently always “sent_to_blockchain”.

transaction_id

Status
colourGreen
titleFROM CHAIN DATA
Transaction ID

transactions → id

Parsing Rules

The parsing rules below are triggered by any of the following:

  • block

  • transaction

  • trace

  • specific account and name inside traceaction_tracesact. 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.

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
colourGreen
titleNEW RECORD

Field

Source Data

number

block_num

id

block_id

timestamp

block_timestamp

producer

producer

schedule_version

schedule_version

Trigger: every trace where action_ordinal = 1

Table: transactions
Status
colourGreen
titleNEW RECORD

Field

Source Data

block_number

block_num

id

traceid

action_account

traceaction_tracesactaccount

action_name

traceaction_tracesactname

account

traceaction_tracesactauthorizationactor

tpid

traceaction_tracesactdatatpid

fee

responsefee_collected / 1000000000

request_data

traceaction_tracesactdata

response_data

response

status

tracestatus

Table: account_activity ​
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

traceaction_tracesactdataactor

transaction_id

Transaction ID

type

“sender”

Trigger: every trace where action_ordinal > 1

Table: traces
Status
colourGreen
titleNEW RECORD

Field

Source Data

id

Trace id. Auto-generated ID or transaction_id + action_ordinal, e.g. 770989df18fac96e48ca03d6702991d4462bebacceab8cf6b389507e998ca7fe-2

transaction_id

traceid

receiver

traceaction_tracesreceiver

action_ordinal

traceaction_tracesaction_ordinal

action_account

traceaction_tracesactaccount

action_name

traceaction_tracesactname

request_data

traceaction_tracesactdata

Trigger: fio.address:bind2eosio

Table: accounts
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

traceaction_tracesactdataaccount

public_key

traceaction_tracesactdataclient_key

timestamp

block_timestamp

Table: account_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

traceaction_tracesactdataname

transaction_id

traceid

type

“receiver”

Trigger: fio.token:trnsfiopubky and action_ordinal = 1

Table: token_transfers
Status
colourGreen
titleNEW RECORD

Field

Source Data

payer_account

traceaction_tracesactdataactor

payee_account

traceaction_tracesactdatapayee_public_key hashed to account

transaction_id

traceid

amount

traceaction_tracesactdataamount / 1000000000

type

“transfer”

memo

Trigger: fio.token:trnsloctoks and action_ordinal = 1

Table: token_transfers
Status
colourGreen
titleNEW RECORD

Field

Source Data

payer_account

traceaction_tracesactdataactor

payee_account

traceaction_tracesactdatapayee_public_key hashed to account

transaction_id

traceid

amount

traceaction_tracesactdataamount / 1000000000

type

“transfer_locked”

memo

Trigger: fio.token:transfer and receiver = fio.token

Table: token_transfers
Status
colourGreen
titleNEW RECORD

Field

Source Data

payer_account

traceaction_tracesactdatafrom

payee_account

traceaction_tracesactdatato

transaction_id

traceid

amount

traceaction_tracesactdataquantity (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

traceaction_tracesactdatamemo

Trigger: fio.token:issue and receiver = fio.token

Table: token_transfers
Status
colourGreen
titleNEW RECORD

Field

Source Data

payer_account

“eosio”

payee_account

traceaction_tracesactdatato

transaction_id

traceid

amount

traceaction_tracesactdataquantity (strip " FIO")

type

“token_mint”

memo

traceaction_tracesactdatamemo

Trigger: fio.token:wraptokens and action_ordinal = 1

Table: token_transfers
Status
colourGreen
titleNEW RECORD

Field

Source Data

payer_account

traceaction_tracesactdataactor

payee_account

“fio.oracle"

transaction_id

traceid

amount

traceaction_tracesactdataamount / 1000000000

type

“wrap”

memo

Trigger: fio.token:stakefio and action_ordinal = 1

Table: token_staking
Status
colourGreen
titleNEW RECORD

Field

Source Data

staker_account

traceaction_tracesactdataactor

transaction_id

traceid

amount

traceaction_tracesactdataamount / 1000000000

Trigger: fio.token:retire and action_ordinal = 1

Table: token_transfers ​
Status
colourGreen
titleNEW RECORD

Field

Source Data

payer_account

traceaction_tracesactdataactor

payee_account

transaction_id

traceid

amount

traceaction_tracesactdataquantity / 1000000000

type

“retire”

memo

traceaction_tracesactdatamemo

Trigger: fio.token:unstakefio and action_ordinal = 1

Table: token_staking
Status
colourGreen
titleNEW RECORD

Field

Source Data

staker_account

traceaction_tracesactdataactor

transaction_id

traceid

amount

Negative of (traceaction_tracesactdataamount / 1000000000)

Trigger: fio.address:regdomain and action_ordinal = 1

Table: domains
Status
colourGreen
titleNEW RECORD
or
Status
colourYellow
titleupdate
(if exists based on domain)

Field

Source Data

domain

traceaction_tracesactdatafio_domain

account

traceaction_tracesactdataowner_fio_public_key hashed to account

is_public

“false”

expiration

responseexpiration

status

“active"

Table: domain_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

domain

traceaction_tracesactdatafio_domain

transaction_id

traceid

type

“register”

Table: account_activity
Status
colourGreen
titleNEW RECORD

Only insert if traceaction_tracesactdataactor is not traceaction_tracesactdataowner_fio_public_key hashed to account.

Field

Source Data

account

traceaction_tracesactdataowner_fio_public_key hashed to account

transaction_id

traceid

type

“receiver”

Trigger: fio.address:renewdomain and action_ordinal = 1

Table: domains
Status
colourYellow
titleupdate

Field

Source Data

domain

traceaction_tracesactdatafio_domain

expiration

responseexpiration

Table: domain_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

domain

traceaction_tracesactdatafio_domain

transaction_id

traceid

type

“renew”

Trigger: fio.address:xferdomain and action_ordinal = 1

Table: domains
Status
colourYellow
titleupdate

Field

Source Data

domain

traceaction_tracesactdatafio_domain

account

traceaction_tracesactdatanew_owner_fio_public_key hashed to account

Table: domain_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

domain

traceaction_tracesactdatafio_domain

transaction_id

traceid

type

“transfer”

Table: account_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

traceaction_tracesactdatanew_owner_fio_public_key hashed to account

transaction_id

traceid

type

“receiver”

Trigger: fio.address:setdomainpub and action_ordinal = 1

Table: domains
Status
colourYellow
titleupdate

Field

Source Data

domain

traceaction_tracesactdatafio_domain

is_public

traceaction_tracesactdatais_public (1 - true; 0 - false)

Table: domain_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

domain

traceaction_tracesactdatafio_domain

transaction_id

traceid

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
colourYellow
titleupdate

Field

Source Data

domain

traceaction_tracesactdatafio_domain

account

“fio.oracle”

Table: domain_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

domain

traceaction_tracesactdatafio_domain

transaction_id

traceid

type

“wrap”

Table: account_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

“fio.oracle”

transaction_id

traceid

type

“receiver”

Trigger: fio.address:xferescrow

Table: domains
Status
colourYellow
titleupdate

Field

Source Data

domain

traceaction_tracesactdatafio_domain

account

traceaction_tracesactdatapublic_key hashed to account

Table: domain_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

domain

traceaction_tracesactdatafio_domain

transaction_id

traceid

type

“unwrap”

Table: account_activity ​
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

traceaction_tracesactdatapublic_key hashed to account

transaction_id

traceid

type

“receiver”

Field

Source Data

account

“fio.oracle”

transaction_id

traceid

type

“sender”

Trigger: fio.address:regaddress and action_ordinal = 1

Table: handles
Status
colourGreen
titleNEW RECORD
or
Status
colourYellow
titleupdate
(if exists based on handle)

Field

Source Data

handle

traceaction_tracesactdatafio_address

domain

Domain from (traceaction_tracesactdatafio_address) split by @ and take second param.

account

traceaction_tracesactdataowner_fio_public_key hashed to account

encryption_key

traceaction_tracesactdataowner_fio_public_key

encryption_key_set

“false”

bundled_tx

“100”

expiration

responseexpiration

status

“active"

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“register”

Table: account_activity
Status
colourGreen
titleNEW RECORD

Only insert if traceaction_tracesactdataactor is not traceaction_tracesactdataowner_fio_public_key hashed to account.

Field

Source Data

account

traceaction_tracesactdataowner_fio_public_key hashed to account

transaction_id

traceid

type

“receiver”

Table: pub_addresses
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

chain_code

“FIO”

token_code

“FIO”

public_address

traceaction_tracesactdataowner_fio_public_key

Trigger: fio.address:renewaddress and action_ordinal = 1

Table: handles
Status
colourYellow
titleupdate

Field

Source Data

handle

traceaction_tracesactdatafio_address

bundled_tx

Increment current value by “100”

expiration

responseexpiration

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“renew”

Trigger: fio.address:xferaddress and action_ordinal = 1

Table: handles
Status
colourYellow
titleupdate

Field

Source Data

handle

traceaction_tracesactdatafio_address

account

traceaction_tracesactdatanew_owner_fio_public_key hashed to account

encryption_key

traceaction_tracesactdatanew_owner_fio_public_key

encryption_key_set

“false”

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“transfer”

Table: account_activity ​
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

traceaction_tracesactdatanew_owner_fio_public_key hashed to account

transaction_id

traceid

type

“receiver”

Table: pub_addresses
Status
colourRed
titleDELETE
and
Status
colourGreen
titleNEW RECORD

Remove all objects matching in traceaction_tracesactdatafio_address and add:

Field

Source Data

handle

traceaction_tracesactdatafio_address

chain_code

“FIO”

token_code

“FIO”

public_address

traceaction_tracesactdatanew_owner_fio_public_key

Table: nft_signatures
Status
colourRed
titleDELETE

Remove all objects matching in traceaction_tracesactdatafio_address

Trigger: fio.address:addbundles and action_ordinal = 1

Table: handles
Status
colourYellow
titleupdate

Field

Source Data

handle

traceaction_tracesactdatafio_address

bundled_tx

Increment current value by traceaction_tracesactdatabundle_sets * 100

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“add_bundles”

Trigger: fio.address:addaddress and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“add_pubbadd”

Table: pub_addresses
Status
colourGreen
titleNEW RECORD
or
Status
colourYellow
titleupdate
(if exists)

For each object in traceaction_tracesactdatapublic_addresses update or insert new record

Field

Source Data

handle

traceaction_tracesactdatafio_address

chain_code

traceaction_tracesactdatapublic_addresseschain_code

token_code

traceaction_tracesactdatapublic_addressestoken_code

public_address

traceaction_tracesactdatapublic_addressespublic_address

Table: handles
Status
colourYellow
titleupdate

Update only if encryption_key_set = false and chain_code = “FIO” and (token_code = “FIO” or token_code = “*”)

Field

Source Data

handle

traceaction_tracesactdatafio_address

encryption_key

traceaction_tracesactdatapublic_addressespublic_address

Trigger: fio.address:remaddress and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“rem_pubbadd”

Table: pub_addresses
Status
colourRed
titleDELETE

Remove each object in traceaction_tracesactdatapublic_addresses which matches

Field

Source Data

handle

traceaction_tracesactdatafio_address

chain_code

traceaction_tracesactdatapublic_addresseschain_code

token_code

traceaction_tracesactdatapublic_addressestoken_code

public_address

traceaction_tracesactdatapublic_addressespublic_address

Trigger: fio.address:remalladdr and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“rem_all_pubbadd”

Table: pub_addresses
Status
colourRed
titleDELETE

Remove all objects matching in traceaction_tracesactdatafio_address

Trigger: fio.address:addnft and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“add_nft”

Table: nft_signatures
Status
colourGreen
titleNEW RECORD
or
Status
colourYellow
titleupdate
(if exists)

For each object in traceaction_tracesactdatanfts update or insert new record

Field

Source Data

handle

traceaction_tracesactdatafio_address

chain_code

traceaction_tracesactdatanfts-> chain_code

contract_address

traceaction_tracesactdatanftscontract_address

token_id

traceaction_tracesactdatanftstoken_id

url

traceaction_tracesactdatanftsurl

hash

traceaction_tracesactdatanftshash

metadata

traceaction_tracesactdatanftsmetadata

Trigger: fio.address:remnft and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“rem_nft”

Table: nft_signatures
Status
colourRed
titleDELETE

Remove each object in traceaction_tracesactdatanfts which matches

Field

Source Data

handle

traceaction_tracesactdatafio_address

chain_code

traceaction_tracesactdatanfts-> chain_code

contract_address

traceaction_tracesactdatanftscontract_address

token_id

traceaction_tracesactdatanftstoken_id

url

traceaction_tracesactdatanftsurl

hash

traceaction_tracesactdatanftshash

metadata

traceaction_tracesactdatanftsmetadata

Trigger: fio.address:remallnfts and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“rem_all_nft”

Table: nft_signatures
Status
colourRed
titleDELETE

Remove all objects matching in traceaction_tracesactdatafio_address

Trigger: fio.address:updcryptkey and action_ordinal = 1

Table: handles
Status
colourYellow
titleupdate

Field

Source Data

handle

traceaction_tracesactdatafio_address

encryption_key

traceaction_tracesactdataencrypt_public_key

encryption_key_set

“true”

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

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
colourYellow
titleupdate

Field

Source Data

handle

traceaction_tracesactdatafio_address

status

“burnt”

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“self_burn”

Table: pub_addresses
Status
colourRed
titleDELETE

Remove all objects matching in traceaction_tracesactdatafio_address

Table: nft_signatures
Status
colourRed
titleDELETE

Remove all objects matching in traceaction_tracesactdatafio_address

Trigger: fio.address:newfundsreq and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatapayee_fio_address

transaction_id

traceid

type

“new_request”

Table: account_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

traceaction_tracesactdataactor

transaction_id

traceid

type

“receiver”

Field

Source Data

account

Look-up handlesaccount where handle is traceaction_tracesactdatapayer_fio_address

transaction_id

traceid

type

“receiver”

Table: fio_requests
Status
colourGreen
titleNEW RECORD

Field

Source Data

id

responsefio_request_id

payee_handle

traceaction_tracesactdatapayee_fio_address

payer_handle

traceaction_tracesactdatapayer_fio_address

content

traceaction_tracesactdatacontent

payee_pub_key

Look-up accountsencrypt_key where account is owner of traceaction_tracesactdatapayee_fio_address

payer_pub_key

Look-up accountsencrypt_key where account is owner of traceaction_tracesactdatapayer_fio_address

status

“pending”

transaction_id

traceid

Trigger: fio.address:cancelfndreq and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“cancel_request”

Table: fio_requests
Status
colourYellow
titleUPDATE

Field

Source Data

id

traceaction_tracesactdatafio_request_id

status

“cancelled”

Trigger: fio.address:recordobt and action_ordinal = 1

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

traceaction_tracesactdatafio_address

transaction_id

traceid

type

“record_obt”

Table: account_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

account

traceaction_tracesactdataactor

transaction_id

traceid

type

“receiver”

Field

Source Data

account

Look-up handlesaccount where handle is traceaction_tracesactdatapayer_fio_address

transaction_id

traceid

type

“receiver”

Table: fio_data
Status
colourGreen
titleNEW RECORD

Field

Source Data

request_id

traceaction_tracesactdatafio_request_id

payee_handle

traceaction_tracesactdatapayee_fio_address

payer_handle

traceaction_tracesactdatapayer_fio_address

content

traceaction_tracesactdatacontent

payee_pub_key

Look-up accountsencrypt_key where account is owner of traceaction_tracesactdatapayee_fio_address

payer_pub_key

Look-up accountsencrypt_key where account is owner of traceaction_tracesactdatapayer_fio_address

status

“sent_to_blockchain”

transaction_id

traceid

Table: fio_requests
Status
colourYellow
titleUPDATE

Update only if traceaction_tracesactdatafio_request_id is present

Field

Source Data

id

traceaction_tracesactdatafio_request_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 has action_name: burnexpired

  • is_public for kvovaluename in domains table has not changed

  • expiration for kvovaluename in domains table has not changed

Table: domains
Status
colourYellow
titleupdate

Field

Source Data

domain

kvovaluename

status

“burnt”

Table: domain_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

domain

kvovaluename

transaction_id

transaction id of transaction with action_name: burnexpired

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 has action_name: burnexpired and its traces do not have a trace with action_name: burnaddress and action_ordinal = 1

Table: handles
Status
colourYellow
titleupdate

Field

Source Data

handle

kvovaluename

status

“burnt”

Table: handle_activity
Status
colourGreen
titleNEW RECORD

Field

Source Data

handle

kvovaluename

transaction_id

transaction id of transaction with action_name: burnexpired

type

“auto_burn”

API

/get_blocks

Returns block information.

Request

Parameter

Description

time_start

Status
colourGreen
titleOPTIONAL
Filters block by timestamp

time_end

Status
colourGreen
titleOPTIONAL
Filters block by timestamp

producer

Status
colourGreen
titleOPTIONAL
Filters block by producer

sort

Status
colourGreen
titleOPTIONAL
Sorting:

  • block_num_asc (default)

  • block_num_desc

  • timestamp_asc (default)

  • timestamp_desc

Query

Return records from blocks which match all request parameters.

Sort by:

  • block_num_asc: blocksnumber ASC

  • block_num_desc: blocksnumber DESC

  • timestamp_asc: blockstimestamp ASC

  • timestamp_desc: blockstimestamp DESC

Response

Group

Field

Source Data

blocks

number

blocksnumber

blocks

id

blocksid

blocks

timestamp

blockstimestamp

blocks

producer

blocksproducer

blocks

schedule_version

blocksschedule_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
languagejson
{
	"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

Status
colourGreen
titleOPTIONAL
Filters block by timestamp

time_end

Status
colourGreen
titleOPTIONAL
Filters block by timestamp

block_number

Status
colourGreen
titleOPTIONAL
Filters block by block_number

action_account

Status
colourGreen
titleOPTIONAL
Filters block by action_account

action_name

Status
colourGreen
titleOPTIONAL
Filters block by action_name

impacted_account

Status
colourGreen
titleOPTIONAL
Filters by impacted account (see below)

impacted_account_direction

Status
colourGreen
titleOPTIONAL
Filters by impacted account direction (see below)

  • both (default)

  • sender

  • receiver

include_traces

Status
colourGreen
titleOPTIONAL
If true include traces

  • true (default)

  • false

sort

Status
colourGreen
titleOPTIONAL
Sorting of results:

  • timestamp_asc (default)

  • timestamp_desc

limit

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

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 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: blockstimestamp ASC

  • timestamp_desc: blockstimestamp DESC

Response

Group

Field

Source Data

transactions

id

transactionsid

transactions

block_number

transactionsblock_number

transactions

timestamp

blockstimestamp

transactions

action_account

transactionsaction_account

transactions

action_name

transactionsaction_name

transactions

sender_account

account_activityaccount where type is “sender”

transactions

receiver_account

account_activityaccount where type is “receiver”

transactions

impacted_account_direction

See impacted_account above:

  • “sender”

  • “receiver”

Blank if impacted_account not supplied.

transactions

tpid

transactionstpid

transactions

fee

transactionsfee

transactions

request_data

transactionsrequest_data

transactions

request_data

transactionsresponse_data

transactions

status

transactionsstatus

transactions

type_specific_data

This element contains data which is specific to certain types of transactions from the joint tables:

  • token_transfers

    • payer_account

    • payee_account

    • amount

    • type

    • memo

  • domain_activity

    • domain

    • type

  • handle_activity

    • handle

    • type

  • token_staking

    • staker_account

    • amount

  • fio_requests

    • payee_handle

    • payer_handle

    • content

    • payee_pub_key

    • payer_pub_key

    • status

  • fio_data

    • payee_handle

    • payer_handle

    • content

    • payee_pub_key

    • payer_pub_key

    • status

transactions

traces array

traces where tracestransaction_id matches.

For each trace:

  • id

  • receiver

  • action_ordinal

  • action_account

  • action_name

  • request_data

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
languagejson
{
	"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

Status
colourGreen
titleOPTIONAL
Filters accounts by timestamp

time_end

Status
colourGreen
titleOPTIONAL
Filters accounts by timestamp

sort

Status
colourGreen
titleOPTIONAL
Sorting:

  • timestamp_asc (default)

  • timestamp_desc

limit

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

Query

Return records from accounts which match all request parameters.

Sort by:

  • timestamp_asc: timestamp ASC

  • timestamp_desc: timestamp DESC

Response

Group

Field

Source Data

accounts

account

accountsaccount

accounts

public_key

accountspublic_key

accounts

timestamp

accountstimestamp

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
languagejson
{
	"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

Status
colourGreen
titleOPTIONAL
Account of domain owner

is_public

Status
colourGreen
titleOPTIONAL
is_public flag. Default is not present (both are returned)

  • true

  • false

status

Status
colourGreen
titleOPTIONAL
Status of domain

  • active (default)

  • burnt

  • both

sort

Status
colourGreen
titleOPTIONAL
Sorting:

  • alphabetical (default)

  • expiration_asc

  • expiration_desc

limit

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

Query

Return records from domains which match all request parameters.

Sort by:

  • alphabetical: domain ASC

  • expiration_asc: expiration ASC

  • expiration_asc: expiration DESC

Response

Group

Field

Source Data

domains

domain

domainsdomain

domains

account

domainsaccount

domains

is_public

domainsis_public

domains

expiration

domainsexpiration

domains

status

domainsstatus

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
languagejson
{
	"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

Status
colourGreen
titleOPTIONAL
Handle name

account

Status
colourGreen
titleOPTIONAL
Account of handle owner

domain

Status
colourGreen
titleOPTIONAL
Domain of handle

status

Status
colourGreen
titleOPTIONAL
Status of handle

  • active (default)

  • burnt

  • both

bundled_tx_max

Status
colourGreen
titleOPTIONAL
Maximum number of bundled_tx. When supplied only handles which have less than or equal number of bundled_tx will be returned.

limit

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

Query

Return records from handles which match all request parameters.

Sort by:

  • alphabetical: handle ASC

Response

Group

Field

Source Data

handles

handle

handleshandle

handles

account

handlesaccount

handles

domain

handlesdomain

handles

encryption_key

handlesencryption_key

handles

encryption_key_set

handlesencryption_key_set

handles

bundled_tx

handlesbundled_tx

handles

expiration

handlesexpiration

handles

status

handlesstatus

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
languagejson
{
	"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

Status
colourGreen
titleOPTIONAL
Handle name

account

Status
colourGreen
titleOPTIONAL
Account of handle owner

chain_code

Status
colourGreen
titleOPTIONAL
Chain code

token_code

Status
colourGreen
titleOPTIONAL
Token code

public_address

Status
colourGreen
titleOPTIONAL
Public Address

limit

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

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

handleshandle

handles

account

handlesaccount

handles → pub_addresses

chain_code

pub_addresseschain_code

handles → pub_addresses

token_code

pub_addressestoken_code

handles → pub_addresses

public_address

pub_addressespublic_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
languagejson
{
	"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

Status
colourGreen
titleOPTIONAL
Handle name

account

Status
colourGreen
titleOPTIONAL
Account of handle owner

chain_code

Status
colourGreen
titleOPTIONAL
Chain code

contract_address

Status
colourGreen
titleOPTIONAL
Contract Address

token_id

Status
colourGreen
titleOPTIONAL
Token ID

limit

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

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

handleshandle

handles

account

handlesaccount

handles → nft_signatures

chain_code

nft_signatureschain_code

handles → nft_signatures

contract_address

nft_signaturescontract_address

handles → nft_signatures

token_id

nft_signaturestoken_id

handles → nft_signatures

url

nft_signaturesurl

handles → nft_signatures

hash

nft_signatureshash

handles → nft_signatures

metadata

nft_signaturesmetadata

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
languagejson
{
	"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

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

time_end

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

payer_account

Status
colourGreen
titleOPTIONAL
Payer account

payee_account

Status
colourGreen
titleOPTIONAL
Payee account

type

Status
colourGreen
titleOPTIONAL
Tranfser type

limit

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

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

transactionsid

token_transfers

timestamp

transactionstimestamp

token_transfers

payer_account

token_transferspayer_account

token_transfers

payee_account

token_transferspayee_account

token_transfers

amount

token_transfersamount

token_transfers

type

token_transferstype

token_transfers

memo

token_transfersmemo

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
languagejson
{
	"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

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

time_end

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

payee_handle

​​

Status
colourGreen
titleOPTIONAL
Payee FIO Handle

payer_handle

​​

Status
colourGreen
titleOPTIONAL
Payer FIO Handle

payee_account

​​

Status
colourGreen
titleOPTIONAL
Payee account

payer_account

​​

Status
colourGreen
titleOPTIONAL
Payer account

status

​​

Status
colourGreen
titleOPTIONAL
Request status

limit

​​

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

​​

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

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_requestsid

fio_requests

timestamp

transactionstimestamp

fio_requests

payer_account

handlesaccount

fio_requests

payee_account

handlesaccount

fio_requests

payee_handle

fio_requestspayee_handle

fio_requests

payer_handle

fio_requestspayer_handle

fio_requests

content

fio_requestscontent

fio_requests

payee_pub_key

fio_requestspayee_pub_key

fio_requests

payer_pub_key

fio_requestspayer_pub_key

fio_requests

status

fio_requestsstatus

fio_requests

transaction_id

transactionsid

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
languagejson
{
	"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

​​

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

time_end

​​

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

payee_handle

​​​

Status
colourGreen
titleOPTIONAL
Payee FIO Handle

payer_handle

​​​

Status
colourGreen
titleOPTIONAL
Payer FIO Handle

payee_account

​​​

Status
colourGreen
titleOPTIONAL
Payee account

payer_account

​​​

Status
colourGreen
titleOPTIONAL
Payer account

status

​​​

Status
colourGreen
titleOPTIONAL
Data status

limit

​​​

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

​​​

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

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_datarequest_id

fio_data

timestamp

transactionstimestamp

fio_data

payer_account

handlesaccount

fio_data

payee_account

handlesaccount

fio_data

payee_handle

fio_datapayee_handle

fio_data

payer_handle

fio_datapayer_handle

fio_data

content

fio_datacontent

fio_data

payee_pub_key

fio_datapayee_pub_key

fio_data

payer_pub_key

fio_datapayer_pub_key

fio_data

status

fio_datastatus

fio_data

transaction_id

transactionsid

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
languagejson
{
	"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

​​

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

time_end

​​

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

domain

​​​

Status
colourGreen
titleOPTIONAL
Domain name

type

​​​

Status
colourGreen
titleOPTIONAL
Type

owner_account

​​​

Status
colourGreen
titleOPTIONAL
Domain owner account

limit

​​​

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

​​​

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

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_activitydomain

domain_activity

transaction_id

transactionsid

domain_activity

timestamp

transactionstimestamp

domain_activity

account

domainsaccount

domain_activity

type

domain_activitytype

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
languagejson
{
	"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

​​

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

time_end

​​

Status
colourGreen
titleOPTIONAL
Filters by timestamp of associated transaction

handle

​​​

Status
colourGreen
titleOPTIONAL
Handle name

type

​​​

Status
colourGreen
titleOPTIONAL
Type

owner_account

​​​

Status
colourGreen
titleOPTIONAL
Handle owner account

limit

​​​

Status
colourGreen
titleOPTIONAL
Number of results to include. Default: 100

offset

​​​

Status
colourGreen
titleOPTIONAL
Offset for pagination. Default: 0

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_activityhandle

handle_activity

transaction_id

transactionsid

handle_activity

timestamp

transactionstimestamp

handle_activity

account

handle_activityaccount

handle_activity

type

handle_activitytype

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
languagejson
{
	"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": ""
	}
}