Prop AMM Teardown
The wall#14 other closed program

Kipseli

3TK9D8aoBFYjYZtKCjciPrVrRStsnvo7KmpcJqDavpaUSolscan
0.00
USDC in the pot
0
backers
0
attempts
est. 367,973
transactions in 24 h
Chip in

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

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

Escrow HbEBL5…YN8Ch2 · USDC account A2z93W…cfY5iu

print of ELF sha256 31cefe10f86eeab4…, 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
464,825,748
ELF sha256
31cefe10f86eeab49f2d88ead2ac9ca09df25992d87997afb37a19ecf73e1e91
ELF size
727,664 bytes (710.6 KB)
Snapshot taken
2026-11-03 09:45 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.

75,988
sBPF instructions in .text
513
functions reached by internal calls
3,340
internal call sites
14
syscalls used

Sections

.text652,248
.rodata23,344
.data.rel.ro10,688
.dynamic176
.dynsym408
.dynstr257
.rel.dyn39,600
.shstrtab72

Syscalls

abortsol_create_program_addresssol_get_clock_sysvarsol_get_rent_sysvarsol_get_stack_heightsol_invoke_signed_rustsol_log_sol_log_datasol_log_pubkeysol_memcpy_sol_memmove_sol_memset_sol_sha256sol_try_find_program_address

sBPF flags 0, names read from .dynsym

Largest functions

Offset in .textBytes
0x728d817,608
0x20da016,760
0x4ba3814,384
0x314c812,824
0x34fe012,416
0x2b67010,696
0x4390010,672
0x556e810,392
0x3f5409,336
0x856a89,256
0x12fc88,912
0x8cc288,568

Strings in .rodata (70)

sequenceNotFoundTimedOut
(bytes
Deadlock
called `Result::unwrap()` on an `Err` value/Users/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/collections/btree/node.rs
src/lib.rs
src/states/pool.rs
/Users/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/collections/btree/navigate.rs
library/alloc/src/fmt.rs
/Users/runner/work/platform-tools/platform-tools/out/rust/library/core/src/iter/adapters/enumerate.rs
src/instructions/update_pool_tip_fee_tiers.rs
src/intrinsics/native/divmod.rs
src/states/ban_entry.rs
library/alloc/src/string.rs
src/utils.rs
src/bpf_writer.rs
library/alloc/src/raw_vec/mod.rs
src/instruction.rs
library/core/src/num/flt2dec/strategy/grisu.rs
/Users/runner/work/platform-tools/platform-tools/out/rust/library/core/src/iter/range.rs
/Users/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/raw_vec/mod.rs
src/instructions/migrate_pool.rs
src/de/mod.rs
src/instructions/swap_v3.rs
src/instructions/create_pool.rs
src/state.rs
library/core/src/unicode/printable.rs
/Users/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/slice.rs
src/internal.rs
library/core/src/num/bignum.rs
src/instructions/withdraw_pool_sol.rs
src/events.rs
library/core/src/str/mod.rs
/Users/runner/work/platform-tools/platform-tools/out/rust/library/core/src/iter/traits/iterator.rs
src/common.rs
library/alloc/src/slice.rs
library/core/src/num/flt2dec/strategy/dragon.rs
library/core/src/fmt/mod.rs
/Users/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/string.rs
src/int/ops.rs
src/accounts/account_loader.rs
src/instructions/update_pool_fee_tiers.rs
src/ser/mod.rs
/Users/runner/work/platform-tools/platform-tools/out/rust/library/core/src/iter/traits/accum.rs
src/states/config.rs
library/core/src/num/flt2dec/mod.rs
library/core/src/num/diy_float.rs
The given account is not mutable(
min_slippage_in_ppm must be <= 0index out of bounds: the len is
AccountNotAssociatedTokenAccountInstruction: ResetPriceExpiredAt
RefCell already mutably borrowedInstruction: UpdatePoolAuthorityA signer constraint was violatedassertion failed: idx < CAPACITYAn owner constraint was violatedProgramError caused by account: failed to fill whole buffer(…
poolcode
Kindfromkind
src/states/pool.rssrc/instructions/create_pool.rssrc/instructions/update_pool_price.rssrc/instructions/update_pool_price_with_fee.rssrc/instructions/update_pool_state.rs
bansrc/instructions/swap_v3.rssrc/instructions/configure.rssrc/instructions/update_pool_authority.rssrc/instructions/withdraw_liquid.rssrc/instructions/pool_authority_withdraw.rssrc/instructions/withdraw_pool_sol.rssrc/i…
ConstraintHasOneConstraintSignerassertion `left ) when slicing `range end index . Error Number:
global_authorityAccountNotSignerPermissionDeniedAddrNotAvailable right` failed: floating point `0123456789abcdefInvalidProgramIdNot authorized addressThe price was expiredSigner is not authorized to manage this poolSlipp…
Instruction: IdlCreateAccountanchor:idlInstruction: IdlResizeAccountdata_len should always be >= the current account spaceInstruction: IdlCloseAccountInstruction: IdlCreateBufferInstruction: IdlWritesrc/lib.rsInstruction…
>invalid value: , expected invalid length an array of length 32variant index 0 <= i < 4a Display implementation returned an error unexpectedlyErrorMaxSeedLengthExceededInvalidSeedsIllegalOwnerCustomInvalidArgumentInvalid…
The arguments provided to a program instruction were invalidAn instruction's data contents was invalidAn account's data contents was invalidAn account's data was too smallAn account's balance was too small to complete th…
Errorcapacity overflowa formatting trait implementation returned an error when the underlying stream did not
assertion failed: d.mant > 0assertion failed: d.minus > 0assertion failed: d.plus > 0assertion failed: buf.len() >= MAX_SIG_DIGITSassertion failed: d.mant.checked_sub(d.minus).is_some()assertion failed: d.mant.checked_ad…
assertion failed: d.mant + d.plus < (1 << 61)assertion failed: !buf.is_empty()assertion failed: d.mant < (1 << 61)
;assertion failed: buf[0] > b'0'assertion failed: parts.len() >= 4.0.-+NaNinf0assertion failed: buf.len() >= maxlenattempt to add with overflowattempt to subtract with overflowattempt to multiply with overflowattempt to …
but the index is ==!=matches right` failed
right:
left: : { , {
,0x0001020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989900000000000000000…
)14:EFIJNOde
INOWY^_
assertion failed: noborrowassertion failed: digits < 40assertion failed: other > 0attempt to divide by zerorange start index out of range for slice of length slice index starts at but ends at copy_from_slice: source sl…

Instruction sample

23 instructions to this program in 23 recent transactions (3 reached by CPI), grouped by their first 8 bytes. A preview; the judge's corpus is the full set.

First 8 bytesCountAccountsData length
0c86e38072d85f56202×2032B×20
f0e02621b01ff1af315×325B×3

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
464,825,74831cefe10f86eeab49f2d88ead2ac9ca09df25992d87997afb37a19ecf73e1e91710.6 KB2026-11-03 09:45 UTC
464,747,04019ab77b874af5e5772ef02969e7352c740f8d5b1962f57432dcc0703178c0fb8706.6 KB2026-11-03 03:30 UTC
464,642,767da998ee706c1546d0a5bff742c44acd8ecf675511a6f99ae53bbf46b1c89bad9702.8 KB2026-11-02 21:15 UTC
464,523,165b3454e3a95e51d717cec52d418f6e1064d6f9b3658658b031db82f66d9741ed4699.1 KB2026-11-02 15:19 UTC