Skip to content
PULSE

06 — Docs

Contracts

Not yet deployed.

Contracts

Not yet deployed. When they are, the addresses go here and into deployments/mainnet.json.

contractaddress
PairLaunchpad—
FeeVault—
QuoteRegistry—
CompositeQuoteGate—
EkuboQuoteGate—
PairToken class—

01What they talk to

address
Ekubo core — the launch venue0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b
Ekubo oracle extension (measurement only)0x005e470ff654d834983a46b8f29dfa99963d5044b993cb7b9c92243a69dab38f
Pragma oracle0x02a85bd616f912537c50a49a4076db02c00b29b2cdc8a197ce92ed1837fa875b
STRK (launch fee)0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d

Every address above must be verified on a block explorer before a deployment points at it.

02The calls worth knowing

PairLaunchpad.launch(cfg) — the whole launch. Takes ticks, not prices; the SDK plans the range. Needs an approval of the launch fee (and of the dev buy, if any) in the same multicall.

PairLaunchpad.predict_token(creator, salt) — where a launch will land. The token takes no constructor arguments, so its address is a pure function of the salt and the class hash, and a creator can mine a salt that puts the coin below the pair asset.

FeeVault.collect(token) — sweeps a coin's fees and pays everyone. Anyone may call it.

FeeVault.claim(token) — withdraws a payout the vault could not push.

FeeVault.set_fee_route(token, route) / set_fee_recipient(token, recipient) — the creator's own settings.

QuoteRegistry.status(quote) — whether a coin may be paired against, and why not.

EkuboQuoteGate.watch(token) / poke(token) — put a coin forward for witnessing, and take a reading. Both permissionless.

03Where the liquidity is

There is no lock contract and no locked LP token. The position is a slot in Ekubo's core keyed by the vault's address, and the vault has no code path that reduces it. Read it with core.get_position(pool_key, { salt: token, owner: vault, bounds }).