Prop AMM Teardown
The wall#7 other closed program

Riptide

riptK81hDxhe5pW5jSzSM9iRA8azgEgLJ4dXkPtBS7jSolscan
0.00
USDC in the pot
0
backers
0
attempts
est. 1,591,160
transactions in 24 h
Chip in

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

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

Escrow EDjgVG…tDruJL · USDC account 3sG9MG…R7toiT

print of ELF sha256 5b6548fd3cc08147…, 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
440,010,891
ELF sha256
5b6548fd3cc081472dea87c1f3c676799486ca633f1556b465d594bd2e707814
ELF size
255,992 bytes (250.0 KB)
Snapshot taken
2026-11-02 15:19 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.

28,223
sBPF instructions in .text
269
functions reached by internal calls
967
internal call sites
11
syscalls used

Sections

.text231,432
.rodata7,847
.data.rel.ro3,120
.dynamic176
.dynsym360
.dynstr200
.rel.dyn11,920
.shstrtab72

Syscalls

abortsol_get_sysvarsol_invoke_signed_csol_keccak256sol_log_sol_log_datasol_memcmp_sol_memcpy_sol_memset_sol_set_return_datasol_try_find_program_address

sBPF flags 0, names read from .dynsym

Largest functions

Offset in .textBytes
0xeb2016,864
0x2b22013,952
0x1c41012,968
0xc8188,968
0x144407,312
0x19e407,032
0x2ee585,968
0x187f05,712
0x364f85,216
0x4f604,584
0x75203,824
0x203083,760

Strings in .rodata (82)

Unable to find a viable program address bump seedsrc/syscalls.rscore/src/unicode/unicode_data.rs
solana-program/src/penalty/cu.rs
Yindex out of bounds: the len is
src/logger.rsfailed to fill whole bufferfailed to write whole bufferassertion failed: min <= max/home/runner/work/platform-tools/platform-tools/out/rust/library/core/src/cmp.rs/home/runner/work/platform-tools/platform-to…
a Display implementation returned an error unexpectedly
marketOracle data is invalid
Cannot close market with non-zero reserves: reserves_a=, reserves_b=solana-program/src/instructions/market_initialize.rsArithmetic over- or underflowInvalid oracle dataAmount exceeds max u128solana-program/src/math/oracl…
CY\JXI
Moby Dick sighted
Megalodon awakens
Cthulhu stirs
The kraken is released
Flying Dutchman appears
Tsunami incoming
Bermuda triangle opens
Charybdis whirlpool
Legendary Kraken spotted
Poseidon's trident
Leviathan rises
Atlantis discovered
Neptune's blessing
Mythical sea serpent
Ancient whale song
Davy Jones' locker
Maelstrom vortex
Sirens calling
Mermaid's kiss
Great white breach
Bioluminescence glow
Shipwreck treasure
Pirate's bounty
Mermaid sighting
Treasure chest unlocked
Hammerhead hunting
Swordfish strike
Electric eel shock
Giant squid tentacle
Nautilus shell found
Barnacle bonanza
Dolphin pod passing
Jellyfish spotted
Starfish aligned
Seal of approval
Turtle power
Coral reef discovered
Seagull overhead
Pelican dive
Crab scuttle
Octopus ink cloud
Seahorse gallop
Manta ray glide
Anglerfish lurking
Lobster trap
Riding the wave
Caught in the riptide
Making a splash
Smooth sailing
Drifting along
Paddling through
alloc/src/fmt.rsFloating by
MarketInitialize) when slicing ` is not writable is not a signer has wrong ownerrange end index has wrong seeds0123456789abcdefCruising the current
Going with the flow
Catching some surf
Bobbing along
Tide's turning
Wading in
Skimming the surface
Coasting through
solana-program/src/routers/orca_busybox.rssolana-program/src/utility/account.rsAttempt to get account info at index but there are only accounts (bytes Account has wrong address is not one of the allowed addresses is n…
Riptide AMM Program
project_url
https://riptide.so
contacts
email:security@riptide.so
policy
mailto:security@riptide.so
version
src/intrinsics/native/divmod.rssrc/encode.rs123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzsrc/lib.rs/home/runner/work/platform-tools/platform-tools/out/rust/library/alloc/src/slice.rsError: memory allocation …
)14:EFIJNOde
INOWY^_
attempt to divide by zeronumber not in the range 0..=
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

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

First 8 bytesCountAccountsData length
0200bca065010000113×112B×1
0200ca9a3b000000113×112B×1
0228230000000000113×112B×1
02b5e34a02000000113×112B×1
02805cd705000000113×112B×1
0260489800000000113×112B×1
020084d717000000113×112B×1
0254832800000000113×112B×1
02fe243000000000113×112B×1
021cf60300000000113×112B×1
02bd803005000000113×112B×1
0260c7b509000000113×112B×1
02fd7f3a06000000113×112B×1
021d5a2300000000113×112B×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
440,010,8915b6548fd3cc081472dea87c1f3c676799486ca633f1556b465d594bd2e707814250.0 KB2026-11-02 15:19 UTC