Sim IDX is a framework that radically simplifies the process of indexing blockchain data. This guide will walk you through installing the CLI, initializing a sample project, and running your first listener test.

Install CLI

1

Download & Install Dependencies

First, ensure you have Node.js v20.x or later installed. You can download it from Nodejs.org.

# Check your node version
node -v 
2

Install the CLI

curl -L https://simcli.dune.com | bash

You’ll see the following output:

[INFO] Installing sim CLI v0.0.53
[INFO] Installing sim to /root/.local/bin/sim
[INFO] sim CLI installed successfully!
[INFO] Added sim CLI to PATH in /root/.bashrc

After the installer finishes, run source ~/.bashrc (or the appropriate profile file) so the sim executable is available in your PATH.

3

Verify Installation

Verify that the CLI is working:

sim --version

You’ll see:

sim v0.0.53 (eaddf2 2025-06-22T18:01:14.000000000Z)
For a full reference of the CLI, see the CLI Overview.

Initialize Sample App

First, create a new folder.

mkdir my-first-idx-app
cd my-first-idx-app

Next, initialize your new Sim IDX app.

sim init

This command initializes a pre-configured sample app that indexes every new Uniswap V3 trading pool created across multiple chains including Ethereum, Base, and Unichain. It sets up a complete app structure for you, including a listener contract, tests, and a boilerplate API.

sim init also initializes a new Git repository and makes the first commit. Make sure Git is installed and configured. Otherwise the command might fail.

After successfully running init, you’ll see:

INFO sim::init: Successfully initialized a new Sim IDX app

Authentication

Create a new API key in the Sim dashboard so you can authenticate in the CLI and test your new sample app.

To generate a new API key, visit the Keys page and click the New button.

Give your new API key a unique name and select Sim IDX CLI for the key’s purpose. After you’ve created your key, copy its value, go back to the CLI, and run:

sim authenticate

Paste the API key you created and press Enter. Once you’ve successfully authenticated, you’ll see the following:

INFO sim::authenticate: Verifying API Key...
INFO sim::authenticate: API Key verified successfully.
INFO sim::authenticate: API Key successfully saved.

Test Your Listener

Now you can test to make sure your sample app’s listener is working correctly:

sim listeners evaluate \
  --start-block 22757345 \
  --chain-id 1

In this case, sim listeners evaluate processes only a single block. See the CLI Overview for details.

After the command finishes, you’ll see a summary of indexed events. If everything succeeds, your listener is working correctly.

Next Steps

You’ve now got a working contract listener. Next, you’ll deploy your app so it can index data continuously. If you’d like to go further, you can refine and extend your listener to capture even more onchain data.