14 KiB
{% docs overview %}
Welcome to the Flipside Crypto Ethereum Models Documentation!
What does this documentation cover?
The documentation included here details the design of the Ethereum tables and views available via Flipside Crypto. For more information on how these models are built, please see the github repository.
How do I use these docs?
The easiest way to navigate this documentation is to use the Quick Links below. These links will take you to the documentation for each table, which contains a description, a list of the columns, and other helpful information.
If you are experienced with dbt docs, feel free to use the sidebar to navigate the documentation, as well as explore the relationships between tables and the logic building them.
There is more information on how to use dbt docs in the last section of this document.
Quick Links to Table Documentation
Click on the links below to jump to the documentation for each schema.
Core Tables (ethereum.core)
Dimension Tables:
Fact Tables:
- fact_blocks
- fact_decoded_traces
- fact_eth_balances
- fact_event_logs
- fact_token_balances
- fact_traces
- fact_transactions
Convenience Tables:
- ez_balance_deltas
- ez_current_balances
- ez_decoded_event_logs
- ez_decoded_traces
- ez_native_transfers
- ez_token_transfers
Price Tables (ethereum.price)
DeFi Tables (ethereum.defi)
- ez_dex_swaps
- dim_dex_liquidity_pools
- ez_liquid_staking_deposits
- ez_liquid_staking_withdrawals
- ez_bridge_activity
- ez_lending_borrows
- ez_lending_deposits
- ez_lending_flashloans
- ez_lending_liquidations
- ez_lending_repayments
- ez_lending_withdraws
NFT Tables (ethereum.nft)
- dim_nft_collection_metadata
- ez_nft_sales
- ez_nft_transfers
- ez_lending_liquidations
- ez_lending_loans
- ez_lending_repayments
- ez_mev_arbitrage
- fact_mev_arbitrage_events
Stats Tables (ethereum.stats)
Beacon Chain Tables (ethereum.beacon_chain)
- fact_blocks
- fact_blob_sidecars
- fact_attestations
- fact_deposits
- fact_pending_deposits
- fact_pending_partial_withdrawals
- fact_pending_consolidations
- fact_withdrawals
- fact_validators
- fact_validator_balances
- ez_deposits
- ez_withdrawals
ENS Tables (ethereum.ens)
Uniswap v3 Tables (ethereum.uniswapv3)
L2 Tables (ethereum.l2)
Helpful User-Defined Functions (UDFs)
UDFs are custom functions built by the Flipside team that can be used in your queries to make your life easier.
Please visit LiveQuery Functions Overview for a full list of helpful UDFs.
Data Model Overview
The Ethereum models are built a few different ways, but the core fact tables are built using three layers of sql models: bronze, silver, and gold (or core).
- Bronze: Data is loaded in from the source as a view
- Silver: All necessary parsing, filtering, de-duping, and other transformations are done here
- Gold (or core): Final views and tables that are available publicly
The dimension tables are sourced from a variety of onchain and offchain sources.
Convenience views (denoted ez_) are a combination of different fact and dimension tables. These views are built to make it easier to query the data.
Contract Decoding
Adding a contract for decoding
To add a contract for decoding, please visit here.
Assuming the submitted ABI is valid, records will be decoded within 24 hours. If records are not decoded within 24 hours, or for any ABI updates, please submit a ticket within our Discord.
General Process Overview
The majority of our ABIs have been sourced from Etherscan, and we are constantly asking Etherscan for new ABIs. However, this is not comprehensive, and therefore we must also rely on our users to submit ABIs for decoding.
If we are unable to locate an ABI for the contract from either Etherscan or our users, we will attempt to match the contract to a similar ABI. This is done by comparing the contract bytecode to a list of known contract bytecodes. If we are able to match the contract to a similar ABI, we will decode the contract using the similar ABI. You can see the source of each ABI in the dim_contract_abis table within the abi_source column.
Once ABIs have been verified, events within the last day of blocks will be decoded within approximately 90 minutes. Events older than 1 day will be decoded within 24 hours in the majority of cases. The exception here is if the contract has a massive number of events, in which case it may take longer.
Using dbt docs
Navigation
You can use the Project and Database navigation tabs on the left side of the window to explore the models in the project.
Database Tab
This view shows relations (tables and views) grouped into database schemas. Note that ephemeral models are not shown in this interface, as they do not exist in the database.
Graph Exploration
You can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models.
On model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the Expand button at the top-right of this lineage pane, you'll be able to see all of the models that are used to build, or are built from, the model you're exploring.
Once expanded, you'll be able to use the --models and --exclude model selection syntax to filter the models in the graph. For more information on model selection, check out the dbt docs.
Note that you can also right-click on models to interactively filter and explore the graph.
More information
{% enddocs %}