A guide to ease of life utilities built into the Unmarshal Metabase Server
The Unmarshal Schema
Houses a host of useful information for your various analysing needs. There may be times when your dashboard may require
information like a token or a contract’s symbol or its current live price. The unmarshal schema houses this and a wide
variety of other useful information.
Tables
Live Token Prices
Table name: LIVE_TOKEN_PRICE
This table houses a snapshot of the Unmarshal Price Store for usage within Metabase. Updated every 5 minutes, it houses
the latest prices of verified tokens tracked at any time by our services.
Name | Type | Significance |
updated_at | Timestamp with Timezone | Holds the time the present value last changed. Only updated when the value of any field within is modified |
contract_address | text | Contract Addresses of the token |
chain_name | text | The name of the chain to which the token belongs. |
chain_id | text | The ChainID of the chain to which the token belongs to (where applicable) |
price | numeric | The current price in USD |
price_change24_h | numeric | The amount of variance in the price of the token in the last 24 hours |
price_change_percentage24_h | numeric | The price change in % |
Token Details
Table name: TOKEN_DETAILS
This table houses token related metadata such as the symbol, the decimals and the name. It’s a quick and easy way to get
information about a token whose existence is only made aware by a contract address.
Name | Type | Significance |
updated_at | Timestamp with Timezone | Holds the time the present value last changed. Only updated when the value of any field within is modified |
name | text | The name of the token saved |
symbol | text | The token’s symbol as saved in its smart contract |
contract_address | text | Contract Addresses of the token |
decimal | bigint | The number of decimal places to add on to a token when determining its true amount |
chain_name | text | The name of the chain to which the token belongs. |
chain_id | text | The ChainID of the chain to which the token belongs (where applicable) |
total_supply | text | The total available supply of the token as stated when it was created |
Chains Name to ID
Table name: CHAIN_NAME_TO_ID_REFERENCE
This table contains Chain IDs of the chains.
Name | Type | Significance |
chain_name | text | The name of the chain |
chain_id | number | The ChainID of the chain |
Views
Complete Token Data
View name: COMPLETE_TOKEN_DATA
This View combines LIVE_TOKEN_PRICES
and TOKEN_DETAILS
into a single view to allow common access to available data
in
both the tables.
Name | Type | Significance |
name | text | The name of the token saved |
symbol | text | The token’s symbol as saved in its smart contract |
contract_address | text | Contract Addresses of the token |
decimal | bigint | The number of decimal places to add on to a token when determining its true amount |
chain_name | text | The name of the chain to which the token belongs. |
chain_id | text | The ChainID of the chain to which the token belongs (where applicable) |
total_supply | text | The total available supply of the token as stated when it was created |
price | numeric | The current price in USD |
price_change24_h | numeric | The amount of variance in the price of the token in the last 24 hours |
price_change_percentage24_h | numeric | The price change in % |
Routines/Functions
The unmarshal schema adds in various Routines or functions that help simplify various requests
Getting the live price
The schema includes various functions that help you get the live price of each token saved. The following are some
functions that aid in that effort.
With the Symbol (get_live_price_with_symbol(symbol text)
):
This function returns the live price for the first symbol it sees a match for (sorted in ascending by the chain name)
Parameters:
This function accepts a single parameter, symbol
of type text
Return Value:
The function returns a single numeric
value showcasing the price of the token
Modifications:
To get a more specific token’s price, the following self-explanatory functions are also available.
-
get_live_price_with_symbol_and_chain_name(symbol text, chain_name text)
- The
chain_name
refers to the similarly named column inlive_token_prices
- The
-
get_live_price_with_symbol_and_chain_id(symbol text, chain_id text)
- The
chain_id
refers to the similarly named column inlive_token_prices
- The
With the Contract Address (get_live_price_with_contract_address(contract_address text)
):
This function returns the live price for the first contract_address
it sees a match for (sorted in ascending by the
chain name)
Parameters:
This function accepts a single parameter, contract_address
of type text
Return Value:
The function returns a single numeric
value showcasing the price of the token
Modifications:
To get a more specific token’s price, the following self-explanatory functions are also available.
-
get_live_price_with_contract_address_and_chain_name(contract_address text, chain_name text)
- The
chain_name
refers to the similarly named column inlive_token_prices
- The
-
get_live_price_with_contract_address_and_chain_id(contract_address text, chain_id text)
- The
chain_id
refers to the similarly named column inlive_token_prices
- The
Getting the Symbol
These are a set of routines made available to fetch the symbol for a given token. All of them require a contract_address
to be passed
With just the Contract Address (get_symbol_with_contract_address(contract_address text)
):
It returns the saved symbol for the given contract_addresse
. While a collision is usually unlikely, we do provide
routines to make the fetch even more specific
Modifications:
-
get_symbol_with_contract_address_and_chain_id(contract_address text, chain_id text)
- The
chain_id
refers to the similarly named column intoken_details
- The
-
get_symbol_with_contract_address_and_chain_name(contract_address text, chain_name text)
- The
chain_name
refers to the similarly named column intoken_details
- The
Getting the decimal adjusted value of the Token transferred
The value of a token transferred may often be misleading to the uninitiated. This set of functions allows a user to get
a decimal adjusted value of a token amount to get a more intuitive sense of the amount involved.
With the Contract Address and Chain ID ( get_decimal_adjusted_value_with_contract_address_and_chain_id(contract_address text, chain_id text, value numeric)
) :
You pass in the contract_address
, chain_id
and the amount you want converted. It returns a numeric
result which
represents the actual decimal value of the transfer.
With the Contract Address and Chain Name ( get_decimal_adjusted_value_with_contract_address_and_chain_id(contract_address text, chain_name text, value numeric)
) :
You pass in the contract_address
, chain_name
and the amount you want converted. It returns a numeric
result which
represents the actual decimal value of the transfer.