Prop AMM Teardown
The wall#71 other closed program

Cropper

H8W3ctz92svYg6mkn1UtGfu2aQr2fnUFHM1RhScEtQDtSolscan
0.00
USDC in the pot
0
backers
0
attempts
1
transactions in 24 h
Chip in

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

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

Escrow 6mjRkS…Fw5o79 · USDC account 44xDbP…NDK5pG

print of ELF sha256 600da789e452e9af…, 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
264,411,854
ELF sha256
600da789e452e9af90ee78bc8be1d1313220cd114f4a2f9c71bd1add47d01261
ELF size
992,488 bytes (969.2 KB)
Snapshot taken
2026-11-02 20:00 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.

112,289
sBPF instructions in .text
1,179
functions reached by internal calls
9,236
internal call sites
12
syscalls used

Sections

.text919,312
.rodata17,911
.data.rel.ro7,424
.dynamic176
.dynsym360
.dynstr208
.rel.dyn46,160
.shstrtab72

Syscalls

abortsol_get_clock_sysvarsol_get_rent_sysvarsol_invoke_signed_rustsol_log_sol_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
0xaba4813,384
0x8dfe011,616
0x2b7e010,736
0x61be810,288
0x677e010,264
0x76ae810,112
0x7c9d010,064
0x5d1508,568
0x586288,264
0x79d507,680
0x990f87,592
0x21d407,080

Strings in .rodata (26)

src/accounts/account_loader.rs
src/sysvar/mod.rsfailed to write whole buffera Display implementation returned an error unexpectedly/Users/runner/work/bpf-tools/bpf-tools/out/rust/library/alloc/src/string.rsalready mutably borrowedcalled `Option::unwra…
index out of bounds: the len is MultiplicationShiftRightOverflowAccountNotAssociatedTokenAccountProgramError caused by account: The given account is not mutablePosition has already been openedInstruction: OpenBundledPosi…
filename (bytes Positionposition
fee_tier
_ dDeadlockNotFoundreceiverTimedOut8K
attempt to calculate the remainder with a divisor of zeroprograms/whirlpool/src/instructions/collect_reward.rsprograms/whirlpool/src/instructions/initialize_config.rsprograms/whirlpool/src/instructions/initialize_fee_tie…
attempt to divide by zeroprograms/whirlpool/src/math/tick_math.rsprograms/whirlpool/src/math/u256_math.rsprograms/whirlpool/src/state/config.rsprograms/whirlpool/src/state/fee_tier.rsprograms/whirlpool/src/state/position…
PositionBundleNotDeletableBundledPositionAlreadyClosedBundledPositionAlreadyOpenedInvalidBundleIndexDuplicateTwoHopPoolInvalidIntermediaryMintAmountRemainingOverflowAmountCalcOverflowTickArraySequenceInvalidIndexAmountIn…
PermissionDeniedtick_array_lowerInvalidProgramIdbundled_positiontick_array_one_0CreateIdempotentTokenMaxExceededtick_array_two_0WhirlpoolsConfigtick_array_two_1tick_array_uppertick_array_two_2. Error Number: ) when slici…
kindcodebaserentfrom
KindlineNoneconfigfundersystem_programfee_authoritytoken_mint_atoken_mint_bassociated_token_programposition_bundle_metadatametadata_update_authreward_minttick_arrayownerposition_metadata_accountnew_collect_protocol_fees_…
assertion failed: `` does not match ``AssociatedTokenAccountInstruction::Create |
AssociatedTokenAccountInstruction::CreateIdempotentsrc/instruction.rsRecoverNestedCreate
src/state.rs
a Display implementation returned an error unexpectedly/Users/runner/work/bpf-tools/bpf-tools/out/rust/library/alloc/src/string.rs
called `Option::unwrap()` on a `None` valuesrc/common.rs. Error Code: . Error Message: .ProgramError thrown in :ProgramError occurred. Error Code: Left:Right:Left: Right: AnchorError caused by account: AnchorError thrown…
src/encode.rsalready mutably borrowedcalled `Result::unwrap()` on an `Err` valuesrc/account_info.rssrc/entrypoint.rssrc/pubkey.rsProgramDerivedAddressUnable to find a viable program address bump seedMaxAccountsDataSizeEx…
Account 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 that hasn't been initialize…
BufferTooSmallErrormessageOsError: memory allocation failed, out of memoryUnsupportedCustomerrorUncategorizedOtherOutOfMemoryUnexpectedEofInterruptedArgumentListTooLongInvalidFilenameTooManyLinksCrossesDevicesExecutableF…
)..BorrowErrorBorrowMutError but the index is called `Option::unwrap()` on a `None` value:panicked at '', `: {
[]library/core/src/fmt/num.rs0x000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939…
library/core/src/str/mod.rs[...]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.rsTryFromIntErrorErrorUtf8Errorvalid_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
264,411,854600da789e452e9af90ee78bc8be1d1313220cd114f4a2f9c71bd1add47d01261969.2 KB2026-11-02 20:00 UTC