Prop AMM Teardown
The wall#58 other closed program

Crema

CLMM9tUoggJu2wagPkkqs9eFG4BWhVBZWkP1qv3Sp7tRSolscan
0.00
USDC in the pot
0
backers
0
attempts
425
transactions in 24 h
Chip in

USDC goes to this target's escrow with the Memo teardown:chip:CLMM…p7tR. You can take your share back any time before a PASS.

The wallet opens only when you click. Minimum 5 USDC.

Escrow Eupbq7…i8cwJS · USDC account C3Yqrv…2ioUSA

print of ELF sha256 5a086ad2a968c86e…, lock at 0.00% match

Snapshot.
Read from mainnet and frozen for this deploy slot.

Loader
Upgradeable loader (v3)
Program data
Upgrade authority
Last deploy slot
169,658,954
ELF sha256
5a086ad2a968c86ef6381895212b2a40f097b9a2adcd87a675a54b0410b71e3b
ELF size
1,162,504 bytes (1.11 MB)
Snapshot taken
2026-11-02 18:15 UTC
OtterSec verify
no verified build
Corpus
built by the judge machine: up to 1,000 recent mainnet instructions and 10,000 fuzzed variants; the real N is printed once it exists

Teardown kit.
Computed from the ELF and recent transactions, no AI. Hunters start here.

127,306
sBPF instructions in .text
1,622
functions reached by internal calls
11,009
internal call sites
13
syscalls used

Sections

.text1,051,864
.rodata21,007
.data.rel.ro9,952
.dynamic176
.dynsym384
.dynstr221
.rel.dyn77,952
.shstrtab72

Syscalls

abortsol_get_clock_sysvarsol_get_rent_sysvarsol_invoke_signed_rustsol_log_sol_log_datasol_log_pubkeysol_memcmp_sol_memcpy_sol_memmove_sol_memset_sol_sha256sol_try_find_program_address

sBPF flags 0, names read from .dynsym

Largest functions

Offset in .textBytes
0x8fcf815,152
0x4478815,080
0x8af2014,808
0xa62f814,752
0x64f2013,160
0xa233811,456
0x7a6b811,432
0x74e9011,128
0x8197011,024
0x7e0d810,984
0x70d4810,696
0x5b19810,576

Strings in .rodata (39)

battempt to multiply with overflow
attempt to add with overflowprograms/clmmpool/src/instructions/collect_fee.rs
Kindliner
!clmmpool.is_pause
ClmmpoolMetadataFee rate illegalPermissionDeniedtick_spacing > 1tick_array_lowerInvalidProgramIdNextTickNotFoundtick_array_upperError thrown at InvalidAuthority. Error Number: ) when slicing `division by zeroAddrNotAvail…
attempt to divide by zeroprograms/clmmpool/src/instructions/collect_partner_fee.rsInvalid bool representation:
attempt to calculate the remainder with a divisor of zeroInvalid Option representation: . The first byte must be 0 or 1programs/clmmpool/src/instructions/collect_rewarder.rsInvariant failed: invalid create pool authority…
config.create_pool_authority == ctx.accounts.payer.key()programs/clmmpool/src/instructions/create_clmmpool.rs
filename (bytes Positionposition(
fee_tier$
&clmmpoolDeadlockNotFoundTimedOut8K
Clmmpoolz+
Crema LPprograms/clmmpool/src/instructions/create_fee_tier.rspartnerprograms/clmmpool/src/instructions/create_partner.rsstart_time < end_timestart_time > current_timestampname too longname.chars().count() < Partner::MAX_…
attempt to subtract with overflowprograms/clmmpool/src/instructions/swap.rsSwapStart current_liquidity: current_tick_index: by_amount_in: a2b:CLMMPOOLS: Cross tick: direction:rightStepSwap current_liquidity: current_tick…
sqrt_price_limit >= MIN_SQRT_PRICE_X64pool.current_sqrt_price < sqrt_price_limit &&
sqrt_price_limit <= MAX_SQRT_PRICE_X64account.owner == ctx.program_idtick_arrayaccount.key == &expect_addressloader.load()?.clmmpool == ctx.accounts.clmmpool.key()result.amount_out >= amount_limitassertion failed: idx < …
library/core/src/slice/memchr.rsindex out of bounds: the len is AccountNotAssociatedTokenAccountProgramError caused by account: The given account is not mutableTickarray start_index is illegalresult.amount_in <= amount_l…
partner.end_time >= current_timestampprograms/clmmpool/src/instructions/update_rewarder_emission.rsattempt to shift left with overflow
attempt to shift right with overflowprograms/clmmpool/src/math/clmm_math.rsprograms/clmmpool/src/math/tick_math.rsprograms/clmmpool/src/state/clmm_config.rsprotocol_fee_rate <= ClmmConfig::MAX_PROTOCOL_FEE_RATEname.chars…
attempt to negate with overflow/home/runner/work/bpf-tools/bpf-tools/out/rust/library/alloc/src/collections/btree/map/entry.rsarray_index as usize >= TickArrayMap::MIN_BIT_INDEX &&
array_index as usize <= TickArrayMap::MAX_BIT_INDEXprograms/clmmpool/src/state/tick_array.rstick_index >= min && tick_index <= maxself.is_in_array(tick_index)Invalid tick array bitprograms/clmmpool/src/state/tick_array_m…
programs/clmmpool/src/lib.rsInstruction: IdlCreateAccountInstruction: IdlCreateBufferInstruction: IdlWriteInstruction: IdlSetAuthorityInstruction: IdlSetBufferInstruction: InitializeClmmConfigInstruction: CreateFeeTierIn…
)Fcalled `Result::unwrap()` on an `Err` value
Ysrc/instruction.rs
attempt to add with overflowsrc/state.rs
UnknownBumpTokenAccountIsNonZeroOptionUnwrapFailedInvariantFailedInvalidATAOwnerMismatchIntegerOverflowProgramIDMismatchATAMismatchKeyMismatchBump not found.
The provided token account is non-zero: amount must be zero, it should not have a delegate, and it should not have a close authority.Keys must not match.Option unwrap failed.Invariant failed.The provided token account is…
src/bpf_writer.rs
attempt to add with overflowsrc/common.rs. Error Code: . Error Message: .ProgramError thrown in :ProgramError occurred. Error Code: Left:Right:Left: Right: AnchorError caused by account: AnchorError thrown in AnchorError…
attempt to add with overflowsrc/account_info.rs123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
src/encode.rssrc/entrypoint.rssrc/instruction.rssrc/ser/mod.rssrc/pubkey.rsProgramDerivedAddressUnable to find a viable program address bump seedsrc/rent.rsMaxAccountsDataSizeExceededIllegalOwnerUnsupportedSysvarAccountN…
already mutably borrowedAccount data reallocation was invalidIO Error: Failed to borrow a reference to account data, already borrowedThe instruction expected additional account keysAn attempt to operate on an account tha…
called `Result::unwrap()` on an `Err` valueBufferTooSmallCustomSequenceMustHaveLengthSizeLimitDeserializeAnyNotSupportedInvalidTagEncodingInvalidCharEncodingInvalidBoolEncodingInvalidUtf8EncodingIoErrormessageOsError: me…
..BorrowErrorBorrowMutErrorcalled `Option::unwrap()` on a `None` value:panicked at '', but the index is `: {
[]library/core/src/fmt/num.rs0x000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939…
[...]byte index is out of bounds of `begin <= end ( is not a char boundary; it is inside ) of `library/core/src/unicode/printable.rs
INOWY^_
)14:EFIJNOde\
library/core/src/unicode/unicode_data.rsErrorUtf8Errorvalid_up_toerror_len

Instruction sample

Sampling recent transactions: the cron reads a few at a time from public RPC.

Full kit from the judge

Disassembly, discriminator map over the full corpus, writable and signer patterns, account sizes and owners, CPI targets: computed by the judge machine for this snapshot and published here.

Pot.
Every transfer in and out of the escrow, read from Solana.

0 USDC, no backers yet. The first chip-in opens this pot.

Attempts.
Match percentages and hashes. The source stays encrypted until the verdict.

No attempts yet. Submit a rebuild.

Upgrade history.
One snapshot per deploy slot. A submission is judged against the snapshot it targeted.

Deploy slotELF sha256SizeTaken
169,658,9545a086ad2a968c86ef6381895212b2a40f097b9a2adcd87a675a54b0410b71e3b1.11 MB2026-11-02 18:15 UTC