Two kinds of hooks, one launch. This page walks through how each executes, why remote hooks are asynchronous, and what WORMHOOK carries between Solana and IMD.
A token is created by the Solana Launch Factory with a HookConfig (the stack: hooks, shares, triggers) and a FeeVault that collects the hook fee.
Every buy and sell pays the hook fee into the FeeVault, split by share. Triggers are checked as fees accrue.
When a trigger is met the hook fires: locally on Solana, or remotely through WORMHOOK to IMD — returning a receipt.
User
↓
IMDHOOKS
↓
Solana Launch Factory
↓
Token + HookConfig + FeeVault
├── Local Solana Hooks (Burn · Holder · Loyalty)
└── Remote IMD Hooks (Research · Build · Swarm · POOL4)
↓
WORMHOOK → Wormhole → EVM Hook Gateway → IMD / POOL4 / future hooksBurn, Holder and Loyalty read the FeeVault and act in the same epoch. The Solana transaction is the proof — no receipts needed.
A remote hook creates a HookCall on Solana with a budget and payload. WORMHOOK posts it as a Wormhole message; guardians sign it; a relayer delivers it to the EVM Hook Gateway, which checks the budget and dispatches the IMD adapter. The result comes home as a receipt.
An EVM hook cannot execute inside a Solana swap — different chains, different finality, and jobs that take minutes. The trade only records the HookCall. Everything after happens asynchronously, and we show it rather than hide it.
A Solana program and an EVM gateway that speak one canonical message format over Wormhole. It validates emitters, sequences calls, rejects replays and expired calls, and routes receipts back.
// WORMHOOK message v1 (planned)
struct HookCallMessage {
version: u8 // 1
call_id: [u8; 32] // hc_…
launch: Pubkey // token mint
hook_id: u16 // registry id
adapter: [u8; 20] // EVM adapter
budget: u64 // max spend (USD 1e6)
nonce: u64 // per-launch, monotonic
expires_at: i64 // unix seconds
payload_hash: [u8; 32] // keccak(payload)
}Research, Build and Swarm hooks only send a message: the EVM side pays from a prefunded budget. Only POOL4 moves value cross-chain, through a separate token-transfer path with its own risk. Wormhole NTT is only used if a token itself must exist on both chains.
A Hook Receipt is the message the EVM gateway sends back after execution. It is stored against the HookCall on Solana and shown on the token page.
call_idWhich HookCall this settles
statussuccess · failed · expired
result_hashReport, artifact or position id
spentExact budget consumed
A receipt proves the job ran and what it cost. It does not prove the output is good — that is still on IMD and on you. See receipts on $HKD →
Everything above describes the planned production system. In this build, every token, price, trade, hook execution, Wormhole message and receipt is mock data served through typed service interfaces. No Solana programs, EVM contracts or relayers are deployed. Nothing has been audited.
Full status