Flipside Docs
  • Welcome to Flipside!
    • Welcome to Flipside
    • Growth Services
    • Data
      • Choose your Flipside plan
        • Free
        • Builder
        • Pro
          • Get Started in Snowflake
          • Incremental Table Pattern
          • Copy Data from Snowflake to AWS
          • Copy Data from Snowflake to GCP
          • Copy Data from Snowflake to Azure
        • Snowflake Data Shares
          • Mounting a Snowflake Data Share
    • Earn
    • Community
  • Data
    • Flipside Data
      • Table Docs by Chain
      • Data Modeling Approach
      • Labels
        • Centralized Exchange Label Type
        • Decentralized Exchange Label Type
        • Operator Label Type
        • Chain Admin Label Type
        • Decentralized Finance Label Type
        • NonFungible Tokens Label Type
        • Games Label Type
        • Bridge Label Type
        • Decentralized Applications Label Type
        • Token Label Type
        • Flotsam Label Type
      • Tags
      • Table Freshness Targets
      • Contribute to Our Data
        • Contract Decoding & ABIs
        • How to Add Your Own Tags
        • Community Curation
          • Getting Started
            • Contribution Workflow
          • Model Standards
            • dbt Tips
          • PR Checklist
    • Data Products
      • Data Studio (SQL Analysts)
        • Get Started
          • Write/fork your first query
        • Flipside AI
        • Studio in Depth
          • Query Editor
            • Query Referencing
            • Pro Tips for Querying
            • Keyboard Shortcuts
            • Hex-to-Integer Function
          • Create a Chart
            • Advanced Visualization
          • Build a Dashboard
            • Markdown Reference
          • Team Accounts
        • Tutorials
          • How to Analyze Web3 Data
          • Video Tutorials
            • Overview of Schemas & Tables
            • Ethereum Tutorials
              • Getting Started with Decoded Ethereum Events
              • Getting Started with Ethereum Balances
              • Block Level and Daily Balances
              • Finding Centralized Exchange Flows
            • Solana Tutorials
              • Solana Schema & Tables: Video Walkthrough
              • Solana Specialty Tables: Video Walkthrough
              • Exploring Transactions in solana.events
            • THORChain Tutorials
              • THORChain Schema & Tables
              • Calculating IL for THORChain
          • More Tools & Resources
        • Get Inspired
      • LiveQuery
        • Get Started
        • LiveQuery in Depth
          • Functions
            • 🤝Partner Functions
            • 🧙‍♂️EVM Functions
              • 💡Seaport: Real-time Orders
              • 💡WETH Pool Balances
              • 💡General EVM Node Queries
            • 🤖API Functions
              • 💡Query TheGraph
              • 💡Query Defi Llama
            • ⚙️Utility Functions
              • 💡Hex Converters
              • 💡JSON RPC Request Builder
              • 💡EVM Logs Decoder
              • 💡Keccak256 Encoder
          • QuickNode Setup Guide
        • Secrets Manager
        • Get Inspired
      • Snowflake
      • API/SDK (Developers)
        • Get Started - Your first API call in < 2 min
        • SDK in Depth
          • JSON RPC methods
          • Run A Query
          • Query Results
          • Pagination
          • Sorting
          • Filtering
          • Query Seconds
          • Caching (maxAgeMinutes)
          • Rate Limits
          • Errors
          • More Examples
          • Archive
            • [ARCHIVED] JS/TS SDK
            • ShroomDK Migration Guide
            • [LEGACY] R
        • Tutorials
          • Have Questions?
        • Get Inspired
    • Insights and Tools
  • Earn
    • Flipside Earn
    • Onchain Rewards
      • Quests
    • Analyst Rewards
      • Top Dashboards
        • Top Dashboard Guidelines
        • Skill Tree
      • Ambassador Program
      • Direct to Analyst Commissions
    • Wallet Management
    • Tax Center
  • Support
    • General Support
    • Open a Ticket
      • That email doesn't look quite right
    • 🌟Product Special Releases
      • 2025
        • 2025-02-06 | EVM Blockchain Standardization
          • Table Change Overview
      • 2024
        • 2024-06-13 | Solana native and wrapped addresses
        • 2024-05-01 | Improvements to Pricing Data
          • Actions for Data Studio Users
          • Actions for API Users
          • Action for Data Share Users
    • 🗒️Release Notes
      • 2025
        • 2025-05-01 | Release Notes
        • 2025-04-17 | Release Notes
        • 2025-04-03 | Release Notes
        • 2025-03-20 | Release Notes
        • 2025-03-06 | Release Notes
        • 2025-02-20 | Release Notes
        • 2025-02-06 | Release Notes
        • 2025-01-23 | Release Notes
      • 2024
        • 2024-12-24 | Release Notes
        • 2024-12-12 | Release Notes
        • 2024-11-27 | Release Notes
        • 2024-11-14 | Release Notes
        • 2024-10-31 | Release Notes
        • 2024-10-03 | Release Notes
        • 2024-10-17 | Release Notes
        • 2024-09-19 | Release Notes
        • 2024-09-05 | Release Notes
        • 2024-08-22 | Release Notes
        • 2024-08-08 | Release Notes
        • 2024-07-25 | Release Notes
        • 2024-07-11 | Release Notes
        • 2024-06-27 | Release Notes
        • 2024-06-14 | Release Notes
        • 2024-05-30 | Release Notes
        • 2024-05-16 | Release Notes
        • 2024-05-02 | Release Notes
        • 2024-04-18 | Release Notes
        • 2024-04-05 | Release Notes
        • 2024-03-18 | Release Notes
        • 2024-03-05 | Release Notes
        • 2024-02-20 | Release Notes
        • 2024-02-05 | Release Notes
    • 📊Studio Change log
  • Flipside Community
    • Get Started
    • Ambassador Program
    • Join Our Discord
    • Join Our Guild
Powered by GitBook
On this page

Was this helpful?

  1. Data
  2. Flipside Data
  3. Contribute to Our Data
  4. Community Curation
  5. Getting Started

Contribution Workflow

PreviousGetting StartedNextModel Standards

Last updated 2 years ago

Was this helpful?

[ this workflow will be actively updated and enhanced as we receive feedback ]

Create and contribute your first model

  1. Understand the modeling structure

    • Data models iterate through different “layers”. Generally speaking these are bronze, silver, and core. How these layers interact is defined in .

  2. Create model file within the proper layer and naming convention

    • Naming convention for file is <layer name>__<table name>.sql

    • Example for silver layer: ./models/silver/silver__my_new_table.sql

  3. Create a corresponding .yml file

    • This should hold any model/column descriptions and tests for the model/columns

    • Example for silver layer: ./models/silver/silver__my_new_table.yml

  4. Start writing SQL code

    • Write code in Snowflake Web UI (Snowsight):

    • Snowsight documentation:

  5. Turn SQL code into DBT SQL

    • dbt combines sql with Jinja, see more:

    • Copy sql code into the file created earlier

    • Add config section

      • See existing models for examples

      • Dbt docs for available configurations

    • Convert SQL elements into Jinja

      • Commonly this is changing table name to references and adding incremental loading logic

      • Ref:

      • Incremental logic:

        1. See existing curated models for examples on how to implement incremental logic. ethereum-models/models/silver/silver__transactions.sql

  6. Run the dbt model to put it into the community dev database. You must run this command within the dbt-console. If you have exited the console run make dbt-console again

    • dbt run -s <path to model>

    • Run:

    • If this is your 1st time using dbt run in this docker container, you may need to run dbt deps command

    • Models will be deployed to <BLOCKCHAIN>_COMMUNITY_DEV database within Snowflake. This database refreshes daily at 04:00 AM UTC, any non-production resources will be erased.

  7. Run the test file

    • dbt test -s <path to mode>

    • Tests:

  8. Create GitHub Pull Request and write a summary on your updates/changes, as well as attaching passing test logs

  9. Request Reviewer from one of the GitHub handles below

    • austinFlipside

    • juls858

    • James-Mission

    • desmond-hui

  10. Fix Review Comments

  11. Re-Request Reviewer after fixing review comments

  12. If your PR has been approved, merge it to production

  13. Congratulations! You’ve successfully contributed a data model!

Model Standards
https://app.snowflake.com/us-east-1/vna27887
https://docs.snowflake.com/en/user-guide/ui-snowsight.html
https://docs.getdbt.com/docs/building-a-dbt-project/jinja-macros
https://docs.getdbt.com/reference/resource-configs/snowflake-configs
https://docs.getdbt.com/reference/dbt-jinja-functions/ref
https://docs.getdbt.com/docs/building-a-dbt-project/building-models/configuring-incremental-models
https://docs.getdbt.com/reference/commands/run
https://docs.getdbt.com/docs/building-a-dbt-project/tests