Meteora Hooks
MAINNET
09 / Compiler

One plan, one transaction.

@pump-hooks/transaction-compiler turns operations across engines into a single atomic v0 transaction: dependency order, merged account roles, required signers, exact byte size and a compute budget. A plan that does not fit is refused with a reason; it is never split.
01

Plan → order

wrap, hooked transfer, unwrap
As writtenKindAfter
bob-unwrapsunwrapsend
alice-wrapswrap—
sendhooked-transferalice-wraps
Compiled order
1. alice-wraps
2. send
3. bob-unwraps
InstructionProgramAccountsData
0compute-budget05 B
1token-wrapper1124 B
2token-2022710 B
3token-wrapper1124 B

The hooked transfer's extra accounts were resolved from the live token policy, not supplied by hand.

Size
912 / 1232 bytes
Instructions
4 (incl. compute budget)
Accounts
18
Signers
3
Static CU limit
165,300
Executed CU
58,624 (success)
Limit after simulation
64,787
Account table (18)
EazAwDoXW972pHpDGaS5GyVapdpMFTEbZJA5tELjfegbsigner · writablestatic
7KLdMniakNwCDrYVab2EWxCShQrvX1cmRKEif6YyrMrjsignerstatic
Hp6q1R9z9VboWoD9tBtBG1kf3QDLQWrajiW24J7EUBursignerstatic
dyysQ1xDidgiXRyCU3zNd3NME4aHehT2siaibft1wZawritablestatic
CBdwZUip9KR9gUw9E9PWQG9JXP5Ae1YEUspLCJnvpixawritablestatic
BTBb3uJeVKpfDx7tyUiYaGwmEz5Soqy1sjQMLpRBvchPwritablestatic
5zEM9F4FeTMY5GvEpChSoKwzyVe4Vd2RK5n6UVX7dfpKwritablestatic
FkzKgGqgYZozBRy5kRjNVsGMrKZ1xgAtzZGhjPVFNA2Hwritablestatic
2rmc3F9Me1j1qviTbXyDZug9soLLQsYsBpSLE7mbZqyTwritablestatic
CLZhjGg2JzStBdia99uRED1QVhELEr1DjHPryeS4dQQcwritablestatic
BJjLaKLF4x5cLDjCNHoDiKxzbMF5r1zEPhwGHfGGQhkvwritablestatic
ComputeBudget111111111111111111111111111111readonlystatic
841vHKyD8HXQKsNSp2A2pzNjDHuFDBu9JPt6xsJc7vbhreadonlystatic
2Hamw4Ui4oTaq6xfBcYWSUEaQs2ANRzDbR38gzRafkSUreadonlystatic
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DAreadonlystatic
TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEbreadonlystatic
FZBBkQQamgfMCAoNk6PAdZi9nYZGMsGw9gDyTMNC3v54readonlystatic
GSEbAPFac9Wr4oG1ZEmdiof7Vp7jNUnKcFfcCbugYw5Creadonlystatic
02

Atomic failure

A wrap followed by a transfer of more than the user holds. The transfer fails, so the wrap before it is undone too: only the fee payer's balance changes.

Status
failed
Error
InstructionError(2, Custom(1))
Accounts changed
fee payer
03

Refusals

typed errors, never a partial plan
PlanCodeMessage
dependency cyclecycledependency cycle: a -> b -> a
signer not providedmissing-signermissing signatures: 8tcx56x5K84jBSTpnhWYQkN9DfmmDV5VDnqcCbFzeoCi (a)
40 writable accounts, no lookup tabletoo-largetransaction is 1572 bytes (limit 1232). It is not split automatically, because a split would no longer be atomic. 40 accounts could move to an address lookup table (saves up to 1240 bytes).
Provenance: commit 9327d8e, generated 2026-10-20
Commit
9327d8e27103
Generated
2026-10-20T18:16:25.064Z
Runtime
LiteSVM (node, litesvm 1.6.1) with the compiled .so files
token_hooks.so sha256
969dd56de202ba3e740f6b6aa6875d43406aee7679c4b2522266b49d196b7e36
token_wrapper.so sha256
d37cdbe6acab5c349bbc42ece5b86fe37219cb73fd69d8ec2a2bfde7f401c067
anti_jit_hook.so sha256
ee6c37e94d71f2b8ebe153607ee1b0b2ee5b914e1d982b585184db56236b506d
pnpm --filter @pump-hooks/web export-data