Skip to content

Terminals and indexers

Candle welcomes integration by trading terminals, wallets, aggregators, bots, and market-data providers, including Axiom, GMGN, and Fomo.family.

Supporting Uniswap or Meteora alone does not provide complete Candle support. Before graduation, Candle tokens trade on Candle bonding curves; after graduation, execution moves to the venue selected by the launch.

A complete integration should support:

  1. Canonical market discovery.
  2. Current lifecycle detection.
  3. Exact pre-graduation buy and sell quotes.
  4. Native and ERC-20 quote assets.
  5. Graduation-crossing caps and refunds.
  6. Solana Meteora discovery after migration.
  7. Hood v3 pool and v4 PoolKey discovery after migration.
  8. Recovery as a claim flow rather than a trade.
  9. Event and custom-error decoding.

Start from CandleCurveRegistry. A curve created by the canonical factory is registered atomically with its token, quote token, migrator, fee recipient, implementation version, and configuration hash. The factory’s CurveCreated event supplies the creator and DEX version in the same transaction.

Do not treat an arbitrary contract implementing the Candle getters as canonical. Do not trust an API row when it conflicts with the on-chain registry.

For a candidate Hood address:

  • Curve: require CandleCurveRegistry.isRegistered(address) == true, then read getRecord(address).
  • Launched token: call curveForBaseToken(token) and require a nonzero curve whose active record names the same token.
  • New-market discovery: index CurveRegistered logs emitted by the canonical registry. Join the factory’s CurveCreated log from the same transaction when creator, DEX-version, and configuration-hash fields are needed.
  • Migrated market: require the registered curve’s lifecycle and migration events to confirm migration. Pool existence alone is insufficient.

See Hood market integration for the exact addresses, validation sequence, and contract-role rules.

Current Solana launch transactions include Candle’s attribution address as a required read-only signer and invoke the canonical Candle bonding-curve program’s initialize_pool instruction. This applies to Open and Exclusive launches across the supported quote assets.

Use the signer for fast discovery, then confirm the program and instruction before attributing the mint to Candle. To backfill history or reconcile an index, enumerate the program’s Pool accounts directly rather than replaying transactions.

The program publishes its Anchor IDL on chain, so Program.fetchIdl returns a working client with no vendored interface file and program.account.pool.all() returns every curve. See Solana market identification for that path, and for the discriminators and byte-level layout a non-Anchor client needs instead.

CandidateCanonical confirmation
Solana launch or mintCandle attribution signer plus a Candle-program initialize_pool instruction, matched on its discriminator
Solana pre-graduation poolAccount owned by the canonical Candle program, carrying the Pool discriminator, and tied to the decoded base and quote mints
Hood curveActive record in the canonical CandleCurveRegistry
Hood launched tokenNonzero curveForBaseToken(token) mapping to an active record for that token
Hood v3/v4 marketRegistered curve plus confirmed migrated lifecycle and canonical migrator event
LifecycleExecution venue
TradingCandle curve
GraduatedNo trading; wait for migration or recovery
Migrated v3Uniswap v3
Migrated v4Uniswap v4
RecoveryCandle recovery claim

Before claiming Candle support, test:

  • Open native-quote curve buy and sell.
  • Open ERC-20-quote approve, buy, and sell.
  • Exclusive NFT-gated rejection and success.
  • A graduation-crossing buy with a partial refund.
  • Graduated-state buy and sell rejection.
  • Migrated v3 buy and sell.
  • Migrated v4 buy and sell using the complete PoolKey.
  • Recovery eligibility and claim.
  • Slippage, wrong quote mode, lifecycle, and approval failures.

The Candle monorepo maintains generated Hood terminal fixtures under:

packages/gated-launch-evm/fixtures/hood-terminal-fixtures.json

Fixtures contain exact integer outputs, calldata, lifecycle capabilities, and pool derivation examples. Verify the fixture schema version and deployment-status metadata before consuming them. Deployed addresses must come from the current deployment reference.

There is currently one common Candle integration contract rather than terminal-specific execution rules. Axiom, GMGN, Fomo.family, and other terminals should implement the same lifecycle and fixture matrix above.

Integration status and terminal-specific limitations should be published only after the terminal has completed the acceptance matrix. Contact Candle for a shared test-market set and production readiness review.