Prop AMM Teardown
The wall#40 other closed program

Sanctum

SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHySolscan
0.00
USDC in the pot
0
backers
0
attempts
est. 2,378
transactions in 24 h
Chip in

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

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

Escrow C8fCPt…6zcs2C · USDC account 7GM5CN…Hnvr6z

print of ELF sha256 e8ec6a95faf385e6…, 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
429,882,117
ELF sha256
e8ec6a95faf385e6f9cab746ad6e79ffd1b8aac16eb83da68fa407593d4d1b16
ELF size
338,912 bytes (331.0 KB)
Snapshot taken
2026-11-02 16: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.

35,006
sBPF instructions in .text
424
functions reached by internal calls
2,011
internal call sites
12
syscalls used

Sections

.text290,128
.rodata17,512
.data.rel.ro7,576
.dynamic176
.dynsym384
.dynstr227
.rel.dyn21,968
.shstrtab72

Syscalls

abortsol_create_program_addresssol_get_return_datasol_get_sysvarsol_invoke_signed_rustsol_log_sol_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
0x3534010,088
0x315609,424
0x24fe06,848
0x3a8906,616
0x06,440
0x219185,416
0x449205,392
0x1aaf04,856
0x198884,712
0x23f584,232
0xfaa83,912
0x18a303,672

Strings in .rodata (53)

, expected src/lib.rs
program/src/processor.rs
library/alloc/src/fmt.rs
program/src/big_vec.rs
library/alloc/src/string.rs
library/alloc/src/raw_vec/mod.rs
src/instruction.rs
src/error.rs
src/de/mod.rs
src/extension/mod.rs
src/state.rs
library/core/src/unicode/printable.rs
src/syscalls.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
program/src/inline_mpl_token_metadata.rs
src/ser/helpers.rs
library/core/src/fmt/mod.rs
src/encode.rs
/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/raw_vec/mod.rs
Unable to find a viable program address bump seedError: UnknownError: InvalidArgumentError: InvalidInstructionDataError: InvalidAccountDataError: AccountDataTooSmallError: InsufficientFundsError: IncorrectProgramIdError:…
Instruction: UpdateTokenMetadataInstruction: CreateTokenMetadata
Error: AccountAlreadyInitializedInstruction: SetFundingAuthorityindex out of bounds: the len is
RefCell already mutably borrowed
is the current possible maximumError: UninitializedAccountError: NotEnoughAccountKeysError: AccountBorrowFailedError: MaxSeedLengthExceededError: InvalidSeedsError: BorshIoErrorError: AccountNotRentExemptError: Unsupport…
) when slicing `Stake pre merge Error: Immutablerange end index PermissionedBurnValidator stake
PermissionDeniedTokenGroupMemberAddrNotAvailable0123456789abcdefError: IncorrectAuthorityfailed to write whole bufferfailed to fill whole buffera Display implementation returned an error unexpectedlyUnexpected length of …
SPL Stake Pool
project_url
https://www.solana-program.com/docs/stake-pool
contacts
link:https://github.com/solana-program/stake-pool/security/advisories/new,email:security@anza.xyz,discord:https://solana.com/discord
policy
https://github.com/solana-program/stake-pool/blob/master/SECURITY.md
preferred_languages
source_code
https://github.com/solana-program/stake-pool
source_release
program@v2.0.3
auditors
https://github.com/anza-xyz/security-audits#stake-pool
called `Result::unwrap()` on an `Err` valueIoInvalidUtf8EncodingInvalidBoolEncodingInvalidCharEncodingInvalidTagEncodingDeserializeAnyNotSupportedSizeLimitSequenceMustHaveLengthCustomUtf8Errorvalid_up_toerror_lencodeKind…
called `Result::unwrap()` on an `Err` valueIoInvalidUtf8EncodingInvalidBoolEncodingInvalidCharEncodingInvalidTagEncodingDeserializeAnyNotSupportedSizeLimitSequenceMustHaveLengthCustomUtf8Errorvalid_up_toerror_len
Maximum permitted data length exceeded123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzUnsupported AddressErrorUnexpected length of inputWouldBlockOsmessageErrorCustomerrorConnectionRefusedConnectionResetHostUnr…
Errorcapacity overflowa formatting trait implementation returned an error when the underlying stream did not
)..RefCell already borrowedcalled `Option::unwrap()` on a `None` value but the index is : { , {
,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^_
range start index out of range for slice of length slice index starts at but ends at

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

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
429,882,117e8ec6a95faf385e6f9cab746ad6e79ffd1b8aac16eb83da68fa407593d4d1b16331.0 KB2026-11-02 16:45 UTC