Non-Coder's Dune Guide - Lesson 1

Education Series - 001

Overwhelmed by blockchain data? This series is for anyone who has never written SQL but wants to understand and analyze on-chain activities using Dune.

A year ago, I discovered Dune while desperately searching for Solana validator data with nothing but a CS 141 ‘Hello World’ under my belt. When I first stumbled onto Dune, I felt completely overwhelmed, and every tutorial seemed written for people who already knew how to code. I struggled to find beginner-friendly resources.

This series is for anyone starting from scratch. No jargon, no assumptions, just simple lessons that get you from zero to analyzing blockchain data. I will explain concepts as simply as possible, keep each lesson bite-sized, and give you practical quests you can try.

Because the best way to master blockchain data isn't memorizing syntax. It's by doing.

What You'll Learn Today

  • What Dune is and how to get started

  • How to write your first query

  • How to find token transfers on Ethereum

  • How to read and understand query results

What is Dune?

  • Dune is a platform that lets you explore blockchain data (i.e. transactions, tokens, NFTs) and turn it into tables and charts

  • You write a simple instruction called a "query," run it, and get results you can save and share

  • Think "asking questions to a very large spreadsheet," not "learning to code"

  • In a nutshell, a query tells Dune exactly what data you are looking for

  • Examples:

    • Show me USDC inflows into this specific Ethereum address

    • How many people deposited into this DeFi vault?

    • What's the trading volume for this token?


Let’s write your first query

  • Create an account on Dune.

  • Click Create on the left panel, then select New Query

  • Paste this simple query into the editor:

SELECT
    evt_block_time
    , contract_address
    , evt_tx_hash
    , "from"
    , "to"
    , value -- raw token amount (we will convert to human units later)
FROM erc20_ethereum.evt_transfer
WHERE evt_tx_hash = 0xe87bd158e919b66b1b2661ef3c01c98e59d5a8f8b552cc2f89cb0c6538c9b22d
  • Click Run

Result

Plain-Language Translation

Now let’s break it down and read the query as a sentence:

  • SELECT evt_block_time, contract_address, tx_hash, etc

    • “Show me these columns”

  • FROM erc20_ethereum.evt_transfer

    • “Look in the ERC-20 token transfers table.”

  • WHERE evt_tx_hash = 0x3dfa75b4.......84a216

    • “Show only rows for this specific transaction.”

Altogether: “Show me these columns from the ERC-20 transfers table, but only for the transaction with this specific hash”

Note: The words “from” and “to” are in quotes because they are special terms in SQL (the language you are writing in). To avoid conflicts with SQL commands, column names that match these keywords must be quoted.

What Each Column Means

  • evt_block_time: Timestamp showing when the transaction occurred

  • contract_address: The smart contract address (e.g., USDC contract)**

  • evt_tx_hash: Unique transaction ID (like a receipt number)

  • from / to: Wallet addresses of sender and recipient

  • value: Raw token amount in base units (often a very large number). We will convert this into human-readable units later

**Note: On Ethereum, there are many smart contract addresses that represent very different functions and entities (vaults, transactions, etc). In this context, you specifically need the token's own contract address (for example, the official USDC contract on Etherscan), or your query will show the wrong token or no results.


Common Pitfalls and Quick fixes

  • No results? Check that the transaction hash starts with 0x and is complete.

  • Multiple rows? A single transaction can trigger several ERC-20 transfers. That's completely normal.

  • Query error? Check that all quotes, commas, and syntax are copied correctly

  • No CEX transfers? Internal transfers inside centralized exchanges (CEX) such as Coinbase or Kraken are recorded off-chain, so those transactions will not appear in onchain query results

Now that you have inspected a single transaction in detail, you will use the same pattern to find all USDC transfers into a specific wallet.


Quest 1: Find Your First Token Transfers

⏱️ Estimated Time: 5-10 minutes

Goal: Find all USDC transfers into a specific wallet

What to do

  • Use this wallet address: 0x8f415EC2fA87E4A20c291ac26504Ed84068972a6.

  • Modify the lesson’s query to show transfers where "to" equals this wallet and limit results to only USDC transfers.

  • Run it!

Hint: Your WHERE clause should look like this:

WHERE "to" = 0x8f415EC2fA87E4A20c291ac26504Ed84068972a6
    AND contract_address = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 -- USDC contract

What to submit

  • Screenshot of your query + results

  • One sentence explaining what your query does (e.g. "This query shows all USDC transfers to wallet 0x8f415...")

  • Tag @SeoulDataLabs on X with your Quest 1 screenshot and summary

  • Feel free to reach out to me if you have any questions!

That's a wrap on Lesson 1. Can't wait to see your Quest 1 results!


Sample answer

SELECT
    evt_block_time
    , contract_address
    , evt_tx_hash
    , "from"
    , "to"
    , value -- raw token amount (we will convert to human units later)
FROM erc20_ethereum.evt_Transfer
WHERE "to" = 0x8f415EC2fA87E4A20c291ac26504Ed84068972a6
    AND contract_address = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

What’s next?

  • Have a topic you'd like me to cover or a question? Reach out on Telegram or X (@SeoulDataLabs)

  • Found this helpful? Follow @SeoulDataLabs on X for new lessons and crypto data analysis


Source: @SeoulDataLabs

Previous
Previous

The Case for Asset-Backed Securities on Blockchain