A toolkit for downloading, disassembling, and analyzing Solana programs. Designed to be extensible for adding multiple programs.
.
├── programs/ # Analyzed programs
│ └── <program-name>/
│ ├── README.md # Program-specific documentation
│ ├── program.so # Downloaded BPF binary
│ ├── idl.json # Anchor IDL (if available)
│ └── disassembly/
│ └── program.asm # Disassembled bytecode
├── scripts/ # Automation scripts
│ ├── analyze.sh # Full analysis pipeline
│ ├── download.sh # Download program binary
│ ├── disassemble.sh # Disassemble BPF bytecode
│ └── fetch_idl.sh # Fetch Anchor IDL
├── docs/ # Documentation
│ └── analysis-guide.md # How to analyze programs
└── config/
└── programs.json # Registry of programs
- Solana CLI (v1.14+)
- Anchor CLI (optional, for IDL fetching)
- LLVM (for disassembly)
# macOS
brew install solana llvm
# Install Anchor (optional)
cargo install --git https://github.com/coral-xyz/anchor anchor-cli# Using the full pipeline
./scripts/analyze.sh <program-id> <program-name>
# Example: Analyze Jupiter Aggregator
./scripts/analyze.sh JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 jupiter# 1. Download program binary
./scripts/download.sh <program-id> <program-name>
# 2. Fetch IDL (if Anchor program)
./scripts/fetch_idl.sh <program-id> <program-name>
# 3. Disassemble
./scripts/disassemble.sh <program-name>| Program | Address | Type | Status |
|---|---|---|---|
| DFlow Swap Orchestrator | DF1ow4tspfHX9JwWJsAb9epbkA8hmpSEAtxXy1V27QBH |
DEX Aggregator (Anchor) | Complete |
| DFlow Outcome Token Engine | pReDicTmksnPfkfiz33ndSdbe2dY43KYPg4U2dbvHvb |
Prediction Market Engine (Native) | Complete |
| Jupiter Prediction Market | 3ZZuTbwC6aJbvteyVxXUS7gtFYdf7AuXeitx6VyvjvUp |
Prediction Market (Anchor) | Complete |
| Jupiter v6 Aggregator | JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 |
DEX Aggregator (Hybrid) | Complete |
| Squads Smart Account | SMRTzfY6DfH5ik3TKiyLFfXexV8uSG3d2UksSCYdunG |
Multisig Smart Account (Anchor) | Complete |
-
Add the program to
config/programs.json:{ "name": "my-program", "address": "PROGRAM_ADDRESS_HERE", "cluster": "mainnet-beta", "type": "anchor" } -
Run the analysis:
./scripts/analyze.sh PROGRAM_ADDRESS my-program
-
Create documentation in
programs/my-program/README.md
- Analysis Guide - Detailed guide on analyzing Solana programs
- DFlow Swap Orchestrator - DEX aggregator analysis
- DFlow Outcome Token Engine - Prediction market outcome tokens
- Jupiter Prediction Market - Jupiter's prediction market program
- Jupiter v6 Aggregator - Jupiter DEX aggregator
- Squads Smart Account - Squads multisig
| Tool | Purpose |
|---|---|
solana program dump |
Download program binary from chain |
anchor idl fetch |
Fetch Anchor IDL from chain |
llvm-objdump |
Disassemble eBPF bytecode |
strings |
Extract readable strings from binary |
jq |
Parse and format JSON |
MIT