Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

No-Code Quick Start

Run a blockchain data pipeline without writing Python — just a YAML config file.

1. Install

pip install "tiders[duckdb]"

2. Create a config file

Create tiders.yaml:

project:
  name: erc20_transfers
  description: Fetch ERC-20 Transfer events and write to DuckDB.

provider:
  kind: rpc
  url: "https://mainnet.gateway.tenderly.co" # or change to read from the .env file ${PROVIDER_URL}

contracts:
  - name: erc20
    address: "0xae78736Cd615f374D3085123A210448E74Fc6393" # rETH contract, we need a erc20 reference to download the ABI.
    # An abi: ./erc20.abi.json config will be added after using CLI command `tiders abi` in this folder

query:
  kind: evm
  from_block: 18000000
  to_block: 18000100
  logs:
    - topic0: erc20.Events.Transfer.topic0
  fields:
    log: [address, topic0, topic1, topic2, topic3, data, block_number, transaction_hash, log_index]

steps:
  - kind: evm_decode_events
    config:
      event_signature: erc20.Events.Transfer.signature
      output_table: transfers
      allow_decode_fail: true
      hstack: false
  - kind: hex_encode

writer:
  kind: duckdb
  config:
    path: data/transfers.duckdb

3. Environment Variables

Use ${VAR_NAME} placeholders anywhere in the YAML to keep secrets and environment-specific values out of your config file. This works for any string field — provider URLs, credentials, file paths, etc.

provider:
  kind: rpc
  url: ${PROVIDER_URL}
  bearer_token: ${PROVIDER_BEARER_TOKEN}

At startup, the CLI automatically loads a .env file from the same directory as the config file, then substitutes all ${VAR_NAME} placeholders with their values. If a variable is referenced in the YAML but not defined, the CLI raises an error.

Create a .env file alongside your config:

PROVIDER_URL=https://mainnet.gateway.tenderly.co
PROVIDER_BEARER_TOKEN=12345678

You can also point to a different .env file using the --env-file flag:

tiders start --env-file /path/to/.env tiders.yaml

4. Download ABIs

Tiders CLI provides a command to make it easy to download ABIs defined in the YAML file and save them in the folder.

tiders abi

5. Run

tiders start

The CLI auto-discovers tiders.yaml in the current directory. However, you can also pass a path explicitly:

tiders start path/tiders.yaml

5. Generate a Python script (optional)

Once your YAML pipeline is working, you can generate an equivalent Python script using tiders codegen:

tiders codegen

This reads the same YAML file and outputs a standalone Python script that constructs and runs the same pipeline using the tiders Python SDK. By default, the output file is named after the project in snake_case (e.g. erc20_transfers.py). You can specify a custom output path with -o:

tiders codegen -o my_pipeline.py

This is useful when you want to move beyond YAML and customize the pipeline logic in Python — for example, adding custom transformation steps, conditional logic, or integrating with other libraries.

Next steps