Prop AMM Teardown
The wall#26 other closed program

Perps

PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJuSolscan
0.00
USDC in the pot
0
backers
0
attempts
est. 38,332
transactions in 24 h
Chip in

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

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

Escrow 57WuB2…KrNqrS · USDC account 82p4M5…LX3kHs

print of ELF sha256 3f3e98031af3e52c…, 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
465,131,236
ELF sha256
3f3e98031af3e52cd970b7095d9d705c35029f676e4976bca996ca403bc55bd1
ELF size
2,586,336 bytes (2.47 MB)
Snapshot taken
2026-11-04 04:30 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.

294,626
sBPF instructions in .text
2,229
functions reached by internal calls
26,397
internal call sites
15
syscalls used

Sections

.text2,413,368
.rodata30,031
.data.rel.ro12,752
.dynamic176
.security.txt16
.dynsym456
.dynstr281
.rel.dyn128,224
.shstrtab86

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_set_return_datasol_sha256sol_try_find_program_address

sBPF flags 0, names read from .dynsym

Largest functions

Offset in .textBytes
0xe0e4826,072
0x17a85025,896
0x13e31025,848
0x183d9825,608
0x1607a025,528
0x13517024,608
0x12ca7824,480
0x14bc4024,472
0x170f7823,056
0x1584a022,216
0xd1f6821,024
0x145b0820,080

Strings in .rodata (66)

/home/runner/work/platform-tools/platform-tools/out/rust/library/core/src/iter/adapters/enumerate.rs
attempt to add with overflowcapacity overflow
/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/vec/spec_from_iter_nested.rs
assertion failed: idx < CAPACITYInstruction: CreateTokenMetadata
global:instant_increase_positionNew Max Global Long Size Too Low
A signer constraint was violated
Max total staked amount exceededAn owner constraint was violatedlibrary/core/src/slice/memchr.rs
index out of bounds: the len is AccountNotAssociatedTokenAccountProgramError caused by account: global:instant_decrease_positionThe given account is not mutableInstruction: CloseBorrowPositionInstruction: SetPerpetualsCo…
Position leverage limit exceededOverflow in arithmetic operationcollateral_custody_token_account
internal error: entered unreachable codesrc/accounts/program.rssrc/sysvar/mod.rs
src/extension/mod.rssrc/de/mod.rs
attempt to subtract with overflowfailed to fill whole buffer/home/runner/work/platform-tools/platform-tools/out/rust/library/std/src/io/impls.rsa Display implementation returned an error unexpectedly/home/runner/work/pla…
mint ->
PoolSome>
kindcode
poolbase
Cannot liquidatePermissionDenied
?StaleOraclePriceInvalidProgramIdCreateIdempotentUnsupportedTokenfloating point `Invalid argumentMaxPriceSlippage. Error Number: ) when slicing `AddrNotAvailabledoves ag price: ConstraintHasOnealready borrowedKeeperATAMi…
?ConstraintSigner
L>, publish time: range end index AccountNotSignerposition_requestlp_token_accountalready mutably borrowedassertion failed: mid <= self.len()src/ser/mod.rsFor portability reasons we do not allow to deserialize NaNs.Inval…
Invalid Option representation: . The first byte must be 0 or 1programs/perpetuals/src/instructions/add_custody.rscustodycustody_token_accountprograms/perpetuals/src/instructions/add_pool.rsprograms/perpetuals/src/instruc…
stake_infostake_accountCreated and initialized stake account transfer_authorityDelegated lamports to stake account programs/perpetuals/src/instructions/create_token_ledger.rsprograms/perpetuals/src/instructions/init.rsp…
programs/perpetuals/src/instructions/create_decrease_position_request2.rsprograms/perpetuals/src/instructions/create_increase_position_market_request.rs
(bytes referralPositionB>DFl
position
sequenceDeadlockNotFoundTimedOutoperator
r7metadata
programs/perpetuals/src/instructions/decrease_position4.rsExit price: has_profit: , pnl_delta: Collected fee: Update existing positionCheck position risksAmount out: pnl_token_amount: programs/perpetuals/src/instructions…
programs/perpetuals/src/instructions/instant_create_tpsl.rsprograms/perpetuals/src/instructions/instant_decrease_position.rsprograms/perpetuals/src/instructions/instant_decrease_position2.rs
programs/perpetuals/src/instructions/instant_increase_position.rsprograms/perpetuals/src/instructions/instant_increase_position_pre_swap.rsglobal:set_token_ledgerTransfer tokens inprograms/perpetuals/src/instructions/ins…
attempt to multiply with overflowprograms/perpetuals/src/state/position.rsprograms/perpetuals/src/state/position_request.rsLpTokenPriceChangeLimitExceededExceededMaxTotalStakedAmountCannotDelegateStakeCannotLiquidateWith…
Perpetuals
project_url
https://github.com/jup-ag/perpetuals
contacts
email:feedback@jup.ag
policy
preferred_languages
auditors
programs/perpetuals/src/lib.rsanchor:idlInstruction: IdlCreateAccountInstruction: IdlResizeAccountdata_len should always be >= the current account spaceInstruction: IdlCloseAccountInstruction: IdlCreateBufferInstruction:…
src/token.rs
Index out of bounds/home/runner/work/platform-tools/platform-tools/out/rust/library/core/src/slice/sort.rscalled `Result::unwrap()` on an `Err` valuesrc/instruction/metadata.rsassertion failed: `` does not match ``Associ…
AssociatedTokenAccountInstruction::CreateIdempotentsrc/instruction.rsRecoverNestedCreate
attempt to add with overflow/home/runner/work/platform-tools/platform-tools/out/rust/library/core/src/iter/traits/accum.rssrc/extension/mod.rssrc/state.rs
attempt to add with overflowsrc/instruction.rs
src/state.rsvariant index 0 <= i < 4a Display implementation returned an error unexpectedly/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/string.rs
invalid value: , expected
attempt to add with overflowsrc/bpf_writer.rssrc/common.rscalled `Option::unwrap()` on a `None` value. Error Code: . Error Message: .ProgramError thrown in :ProgramError occurred. Error Code: Left:Right:Left: Right: Anch…
attempt to add with overflow
attempt to subtract with overflow
attempt to multiply with overflow
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzsrc/encode.rscalled `Result::unwrap()` on an `Err` valuealready mutably borrowedsrc/ser/mod.rssrc/account_info.rssrc/entrypoint.rssrc/instruction.rsUnsupported Pu…
src/sysvar/instructions.rsBuiltinProgramsMustConsumeComputeUnitsMaxInstructionTraceLengthExceededMaxAccountsDataAllocationsExceededIllegalOwnerUnsupportedSysvarAccountNotRentExemptBorshIoErrorInvalidReallocInvalidSeedsMa…
Instruction trace length exceeded the maximum allowed per transactionAccount data reallocation was invalidIO Error: Failed to borrow a reference to account data, already borrowedThe instruction expected additional accoun…
BufferTooSmallCustomSequenceMustHaveLengthSizeLimitDeserializeAnyNotSupportedInvalidTagEncodingInvalidCharEncodingInvalidBoolEncodingInvalidUtf8EncodingIo
byte arraystruct varianttuple variantnewtype variantunit variantmapnewtype structOption valueunit valuestring character ``integer `boolean `.0ErrormessageOsUnsupportedCustomerrorUncategorizedOtherOutOfMemoryUnexpectedEof…
library/alloc/src/raw_vec.rscapacity overflowa formatting trait implementation returned an errorlibrary/alloc/src/fmt.rsbyteserrorFromUtf8Error
assertion failed: edelta >= 0library/core/src/num/diy_float.rs
library/core/src/num/flt2dec/strategy/dragon.rsassertion failed: d.mant > 0assertion failed: d.minus > 0assertion failed: d.plus > 0assertion failed: d.mant.checked_add(d.plus).is_some()assertion failed: d.mant.checked_s…
library/core/src/num/flt2dec/strategy/grisu.rsassertion failed: d.mant + d.plus < (1 << 61)
attempt to divide by zeroassertion failed: !buf.is_empty()called `Option::unwrap()` on a `None` valueassertion failed: d.mant < (1 << 61)library/core/src/num/flt2dec/mod.rsassertion failed: buf[0] > b\'0\'assertion faile…
[]library/core/src/fmt/num.rs0x000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939…
incomplete utf-8 byte sequence from index invalid utf-8 sequence of bytes from index [...]byte index is out of bounds of `begin <= end ( is not a char boundary; it is inside ) of `library/core/src/str/mod.rslibrary/cor…
INOWY^_
)14:EFIJNOde\
library/core/src/unicode/unicode_data.rslibrary/core/src/num/bignum.rsassertion failed: noborrowassertion failed: digits < 40assertion failed: other > 0TryFromIntErrorTryFromSliceErrorErrorUtf8Errorvalid_up_toerror_len

This program embeds a security.txt; its contacts are the place to report anything found while reading it.

Instruction sample

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

First 8 bytesCountAccountsData length
e445a52e51cb9a1d171×17216B×6 298B×1 306B×7 372B×3
a47e44b6dfa640b7720×734B×4 42B×3
e455b9704e4f4d0263×68B×6
c52656a5c71726ea416×424B×4
2e17f02c1e8a5e8c322×342B×3
8b8deec529d3ac13217×216B×2
7562427f1e3249b9120×150B×1

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
465,131,2363f3e98031af3e52cd970b7095d9d705c35029f676e4976bca996ca403bc55bd12.47 MB2026-11-04 04:30 UTC
413,092,478256407815a16b7a647c80962391ce8374c1230579b072ea61b37967efaf9262c2.48 MB2026-11-02 15:59 UTC