Skip to content

Quickstart

After this page you will have WireTap watching a devnet program and a decoded, IDL-named error in your Telegram chat — in under ten minutes, starting from nothing.

You need: Node 20+, a Solana CLI keypair with devnet SOL (solana airdrop 2 --url devnet), a running WireTap API (docker compose -f infra/docker-compose.yml --profile full up -d, or pnpm --filter @wiretap/api dev), and a program to watch. No program of your own? Use the bundled demo program in fixtures/demo-programanchor deploy it to devnet first; it ships with deliberate failure modes.

  1. Initialize. From your project directory (or fixtures/demo-program):

    Terminal window
    npx @wiretap-labs/cli init --cluster devnet

    init detects your Anchor/IDL setup (Anchor.toml or declare_id!), registers the program(s) against the API, fetches the on-chain Anchor IDL so errors decode to names, and — on first run — mints a dev API key saved to ~/.wiretap.json. It finishes by printing a Telegram deep link.

  2. Connect Telegram. init prints a deep link:

    Connect Telegram alerts for this program:
    https://t.me/<your-bot>?start=<token>

    Open it and press Start; the bot replies ✅ connected to <program>. Then /status shows the program (with waiting for events until traffic arrives).

  3. Trigger a failing transaction. The demo program’s traffic driver fires a labeled mix of successes and deliberate failures (slippage 6001, guard 6000, compute-budget exhaustion):

    Terminal window
    pnpm --filter @wiretap/demo-program traffic -- --url https://api.devnet.solana.com

    It prints each signature and outcome. Copy a swap_like[6001] signature. (Watching your own program instead? Just send any transaction that fails — WireTap decodes it the same way.)

  4. Ask why. In your Telegram chat (or your terminal with npx @wiretap-labs/cli why <sig>):

    /why <the failing signature>

    The bot answers with the decoded story, not a raw hex code:

    ❌ trPVQ23Y…RGRL52 failed with SlippageExceeded (6001) in instruction swap_like
    on 3pbmthqR… at slot 1060. Used 2946 of 200000 CU; fee 5000 lamports still paid.
  • Mainnet: rerun npx @wiretap-labs/cli init in the project and pick mainnet-beta.
  • Catch drops and preflight failures too: add the SDK — on-chain watching alone can’t see transactions that never landed.
  • Debug with your agent: wire up the MCP server.
  • Own your data: run the whole stack yourself with docker compose.