Steel Framework
Steel sits between Pinocchio and Anchor: lighter than Anchor 0.32.1 but more ergonomic than raw Pinocchio, with macro-light instruction and account helpers for native-style programs.
Search across all documentation pages
Steel sits between Pinocchio and Anchor: lighter than Anchor 0.32.1 but more ergonomic than raw Pinocchio, with macro-light instruction and account helpers for native-style programs.
Evaluate Steel when Pinocchio feels too raw but Anchor CU/binary cost is too high.
When to reach for this:
// Steel patterns vary by version - typical flow:
// 1. Define instruction enum
// 2. Use steel account parsers
// 3. CPI with thin wrappersWhat this demonstrates:
| Steel | Pinocchio | Anchor | |
|---|---|---|---|
| Ergonomics | Mid | Low | High |
| CU | Low-mid | Lowest | Higher |
Can CPI to Anchor and native programs.
// Read steel examples for current macro surface.| Alternative | Use When | Don't Use When |
|---|---|---|
| Pinocchio only | Min deps | More boilerplate |
| Anchor | IDL | CU |
| Native | Max control | Slowest |
Evaluate per project maturity needs.
Profile - Steel slightly more.
See interop page.
External codegen.
Via spl CPI.
LiteSVM.
After native basics.
Steel repository README.
Standard program upgrade.
Same as native.
Pin versions.
Check ecosystem repos.
Stack versions: This page was written for Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, and LiteSVM 0.6.x.
Reviewed by Chris St. John·Last updated Jul 16, 2026