Program reference

Everything you need to verify Dojo on-chain.

Program ID

NetworkProgram ID
X1 testnetGL4GGQeNXw15sMVygu91n9nsp3tCTPGAiUyUJ7wVnvqu
X1 mainnetnot deployed yet

IDL

Download the full Anchor IDL:

dojo.idl.json — 26 instructions, 9 account types, ~130 KB.

Drop it into any Anchor-compatible client to decode accounts, build transactions, and subscribe to events.

Fee tiers

Each pool belongs to an AmmConfig that fixes the fee rate and tick spacing. Fee math:

  • trade_fee_rate / 1_000_000 = percentage taken from each swap.
  • Of that trade fee, protocol_fee_rate / 1_000_000 flows to the protocol.
  • fund_fee_rate / 1_000_000 flows to an ecosystem fund.
  • The remainder goes to liquidity providers in the pool's active ranges.

The live testnet AmmConfig is Fh9o18d7fZY6JwTHaUH5CPEzJAgCYzaqWGcfrNNsReYe — 0.25% trade fee, tick spacing 60.

Account model

Dojo stores pool and position state across a small number of Anchor-serialized account types:

  • AmmConfig — fee tier + tick spacing, set per config index.
  • PoolState — one per token pair + config, holds price, liquidity, fees accrued.
  • ObservationState — per pool, ring-buffer of oracle observations.
  • TickArrayState — per 60-tick segment of a pool's range.
  • PersonalPositionState — one per LP position, keyed by the position NFT mint.

Every account is derivable from well-known seeds; see the IDL for exact byte layouts.

Source

Dojo is built on Raydium's open-source CLMM, deployed on X1. We don't modify the program: what you see on-chain is the audited Raydium CLMM, compiled for X1 and deployed to our program ID.

Explorer

Every program account, pool, and position has a direct link on explorer.x1.xyz. The program page:

View program on X1 Explorer