Prop AMM Teardown
The wall#13 other closed program

Raydium Launchlab

LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3ujSolscan
0.00
USDC in the pot
0
backers
0
attempts
est. 415,385
transactions in 24 h
Chip in

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

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

Escrow BkLxME…mTz9cE · USDC account BWQeHi…85Ezjc

print of ELF sha256 30985f5e1f232840…, 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
446,221,802
ELF sha256
30985f5e1f232840adc006befacd95cac2bf09f33e467c3b1cbc4a0ff4a8d00b
ELF size
1,151,544 bytes (1.10 MB)
Snapshot taken
2026-11-02 15: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.

125,260
sBPF instructions in .text
731
functions reached by internal calls
6,788
internal call sites
14
syscalls used

Sections

.text1,053,808
.rodata23,208
.data.rel.ro12,520
.dynamic176
.dynsym408
.dynstr248
.rel.dyn60,240
.shstrtab72

Syscalls

abortsol_create_program_addresssol_get_clock_sysvarsol_get_rent_sysvarsol_invoke_signed_rustsol_log_sol_log_datasol_log_pubkeysol_memcmp_sol_memcpy_sol_memmove_sol_memset_sol_panic_sol_try_find_program_address

sBPF flags 0, names read from .dynsym

Largest functions

Offset in .textBytes
0x1300015,864
0x1753014,032
0x68b1011,888
0x6b9d811,888
0x75d8011,888
0x78c4811,888
0x804a011,888
0x9618810,784
0x1e20810,640
0x907009,840
0x1ac009,776
0x5f2b09,648

Strings in .rodata (90)

+3<*;:capacity overflow
The given account is not mutable
sindex out of bounds: the len is
AccountNotAssociatedTokenAccount
RefCell already mutably borrowedtransfer_fee_extension_authorityA signer constraint was violatedAn owner constraint was violatedProgramError caused by account: src/lib.rs
programs/launchpad/src/instructions/platform/create_platform_config.rs
programs/launchpad/src/states/vesting.rs
programs/launchpad/src/curve/linear_price.rs
library/alloc/src/fmt.rs
programs/launchpad/src/instructions/platform/update_platform_config.rs
programs/launchpad/src/instructions/platform/update_platform_curve_rule.rs
library/alloc/src/string.rs
library/core/src/fmt/num.rs
programs/launchpad/src/instructions/admin/migrate_to_cpswap.rs
src/bpf_writer.rs
/home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.15.4/src/raw/mod.rs
library/alloc/src/raw_vec/mod.rs
programs/launchpad/src/instructions/admin/update_config.rs
src/instruction.rs
programs/launchpad/src/states/platform_config.rs
programs/launchpad/src/instructions/buy_exact_in.rs
/home/runner/work/platform-tools/platform-tools/out/rust/library/std/src/io/mod.rs
src/error.rs
src/de/mod.rs
programs/launchpad/src/curve/fixed_price.rs
programs/launchpad/src/instructions/sell_exact_out.rs
src/extension/mod.rs
programs/launchpad/src/utils/inner_cpi.rs
programs/launchpad/src/states/events.rs
programs/launchpad/src/lib.rs
src/state.rs
library/core/src/unicode/printable.rs
src/syscalls.rs
/home/runner/work/platform-tools/platform-tools/out/rust/library/core/src/iter/traits/accum.rs
src/internal.rs
/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/string.rs
/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/slice.rs
library/core/src/str/mod.rs
src/generated/instructions/create_metadata_account_v3.rs
programs/launchpad/src/states/platform_allow_config.rs
src/common.rs
programs/launchpad/src/instructions/sell_exact_in.rs
src/ser/helpers.rs
library/alloc/src/slice.rs
library/core/src/fmt/mod.rs
programs/launchpad/src/instructions/platform/remove_platform_curve_rule.rs
programs/launchpad/src/utils/math.rs
src/encode.rs
programs/launchpad/src/curve/constant_product.rs
programs/launchpad/src/instructions/initialize_with_token_2022.rs
programs/launchpad/src/utils/token.rs
programs/launchpad/src/utils/account.rs
src/ser/mod.rs
programs/launchpad/src/states/pool.rs
programs/launchpad/src/states/config.rs
programs/launchpad/src/instructions/admin/migrate_to_amm.rs
programs/launchpad/src/states/platform_curve_rule.rs
/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/raw_vec/mod.rs
/home/runner/work/platform-tools/platform-tools/out/rust/library/core/src/iter/traits/iterator.rs
programs/launchpad/src/instructions/buy_exact_out.rs
src/extension/transfer_fee/instruction.rs
src/v1.rs
Unable to find a viable program address bump seedfailed to fill whole buffer()a Display implementation returned an error unexpectedlyUnexpected length of inputfalse
poolcode
Name <= true
Errorcalled `Result::unwrap()` on an `Err` valueTryFromSliceErrorCustomInvalidArgumentInvalidInstructionDataInvalidAccountDataAccountDataTooSmallInsufficientFundsIncorrectProgramIdMissingRequiredSignatureAccountAlreadyIn…
FNotFoundTimedOut
Kmetadata (bytes
amm_poolIO Error
Deadlock
fee_ratej
programs/launchpad/src/curve/fixed_price.rsprograms/launchpad/src/curve/constant_product.rsprograms/launchpad/src/curve/linear_price.rsNot supported. Please use initialize_v2 instructionprograms/launchpad/src/instruction…
vault_auth_seedprograms/launchpad/src/instructions/initialize_v2.rsprograms/launchpad/src/instructions/initialize_with_token_2022.rspool_vaultprograms/launchpad/src/instructions/buy_exact_in.rsplatform_fee_vault_auth_see…
AccountNotSignerPermissionDeniedcpswap_authorityAddrNotAvailable right` failed: metadata_account0123456789abcdefdivision by zeroInvalidProgramIdburn liquidityprograms/launchpad/src/instructions/admin/collect_excess_lampo…
programs/launchpad/src/instructions/platform/create_platform_config.rsamm_configprograms/launchpad/src/instructions/platform/update_platform_config.rsprograms/launchpad/src/instructions/platform/claim_platform_fee_from_v…
"Instruction: CreateConfigInstruction: UpdateConfigInstruction: CollectFeeInstruction: CollectMigrateFeeInstruction: InitializeInstruction: InitializeV2Instruction: InitializeWithToken2022Instruction: BuyExactInInstructi…
called `Result::unwrap()` on an `Err` value
failed to write whole buffercalled `Result::unwrap()` on an `Err` value
Unable to find a viable program address bump seeda Display implementation returned an error unexpectedlyErrorCustomInvalidArgumentInvalidInstructionDataInvalidAccountDataAccountDataTooSmallInsufficientFundsIncorrectProgr…
called `Result::unwrap()` on an `Err` valueIoInvalidUtf8EncodingInvalidBoolEncodingInvalidCharEncodingInvalidTagEncodingDeserializeAnyNotSupportedSizeLimitSequenceMustHaveLengthCustomUtf8Errorvalid_up_toerror_len12345678…
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…
Hash table capacity overflowErrorcapacity overflowa formatting trait implementation returned an error when the underlying stream did not
0attempt to add with overflowattempt to subtract with overflowattempt to multiply with overflowattempt to shift left with overflow)..RefCell already borrowedcalled `Option::unwrap()` on a `None` value but the index is ==…
right:
left: : { , {
,0x00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899invalid utf-8 seq…
[...]begin <= end (`byte index is not a char boundary; it is inside ) of ` is out of bounds of `
)14:EFIJNOde
INOWY^_
attempt to divide by zerorange start index out of range for slice of length slice index starts at but ends at

Instruction sample

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

First 8 bytesCountAccountsData length
e445a52e51cb9a1d51×5155B×5
75f1c6a8f8da501d59×58B×5
faea0d7bd59c13ec318×332B×3
1a618acb84ab8dfc38×38B×3
9527de9bd37c981a218×232B×2

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
446,221,80230985f5e1f232840adc006befacd95cac2bf09f33e467c3b1cbc4a0ff4a8d00b1.10 MB2026-11-02 15:45 UTC