Non-Coder's Dune Guide - Lesson 1

Education Series - 001

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 = 0x3dfa75b4fa84b2c7028dcd42fa54678bcfe6264e93d5ff4357a0961f8184a216
  • Click Run

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


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


Quest 1: Find Your First Token Transfers

Goal: Find all USDC transfers into a specific wallet

What to do

  • Go to USDC Contract on Etherscan and pick any wallet address from recent transfers (or your own!)

  • Modify the lesson's query to show transfers WHERE "to" = your chosen address AND limit results to only USDC transfers

  • Run it!

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 0x8e0e...")

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

  • Hint: Your WHERE clause should look like this:

WHERE= 0x.... -- Paste your wallet address here
   AND contract_address  = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 -- USDC Contract

⏱️ Estimated Time: 5-10 minutes

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


What’s next?


Source: @SeoulDataLabs