A collection of awesome resources for learning sBPF Assembly (Solana eBPF). PRs welcome!
- sbpf - a tool to quickly bootstrap, build, deploy and test sbpf assembly programs
- ezbpf - a simple sBPF disassembler library with a CLI and WASM bindings
- vscode-sbpf-asm - VSCode plugin for sBPF ASM syntax and autocomplete
- bpf.wtf opcodes - waybackmachine archive of @riptl old website explaining opcodes.
- bpf.wtf syscalls - waybackmachine archive of @riptl old website explaining syscall APIs.
- rbpf opcodes - the opcodes of the ebpf library used in agave with inline documentation in code comments.
- firedancer rbpf opcodes - the opcodes of sbpf used in firedancer's vm
- assembly directives - glossary of assembly directives used by lld, the default linker used by LLVM
- sbpf-asm-macros - some useful macros for inline ASM in rust to save CUs
- sbpf-inline-asm - an example of writing inline assembly in a Rust contract
- TOKEN.sbpf - a sample of a hand-rolled token contract
- solana-program-rosetta - a collection of contracts implemented in C, Rust, Zig and sBPF ASM
- sbpf-asm-noop - a bytecode optimal noop program with a custom linker file demonstrating extreme binary optimization
- sbpf-asm-slippage - a tiny slippage detection instruction in just 4CUs
- solaba-fibonacci-asm - a fibonacci number solver written in sBPF assembly
- sbpf-asm-noop - a heavily optimized sBPF assembly implementation of noop
- sbpf-asm-slippage - a tiny IX for slippage checks written in sBPF ASM
- sbpf-asm-sha256 - a simple example of using assembly to hash a string and return it in base64
- sbpf-asm-memo - a memo program in sBPF assembly
- sbpf-asm-afterburner - a program to burn the remaining number of CUs in a transaction
- sbpf-asm-timeout - an sBPF ASM optimized slot-height based cancel instruction
- sbpf-asm-timeout-account - account version of sbpf-asm-timeout
- sbpf-asm-abort - an sBPF implementation to shut down a program in a recoverable way in a single transaction
- sbpf-asm-pda - a program to derive and validate PDAs in sBPF Assembly
- sbpf-asm-cpi - an sBPF assembly program to transfer lamports via CPI
- sbpf-asm-vault - a Solana vault program written in sBPF Assembly