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.
Recipe
Evaluate Steel when Pinocchio feels too raw but Anchor CU/binary cost is too high.
When to reach for this:
- Want typed account helpers without full Anchor.
- Building games or marketplaces with many instructions.
- Team knows native validation rules.
Working Example
// Steel patterns vary by version - typical flow:
// 1. Define instruction enum
// 2. Use steel account parsers
// 3. CPI with thin wrappersWhat this demonstrates:
- Steel reduces boilerplate vs raw Pinocchio.
- Still requires security discipline.
- Check steel repo for Agave 4.1.1 compatibility.
Deep Dive
Positioning
| Steel | Pinocchio | Anchor | |
|---|---|---|---|
| Ergonomics | Mid | Low | High |
| CU | Low-mid | Lowest | Higher |
Integration
Can CPI to Anchor and native programs.
Rust Notes
// Read steel examples for current macro surface.Gotchas
- Assume Anchor parity - Fewer auto checks.. Fix: Manual audit list.
- Version drift - Steel younger ecosystem.. Fix: Pin git tags.
- Macro magic hidden - Read expansions.. Fix: Understand emitted code.
- No IDL by default - Codama still needed.. Fix: Publish schema.
- Skip profiling - Steel not free CU.. Fix: Simulate hot paths.
Alternatives
| Alternative | Use When | Don't Use When |
|---|---|---|
| Pinocchio only | Min deps | More boilerplate |
| Anchor | IDL | CU |
| Native | Max control | Slowest |
FAQs
Steel production?
Evaluate per project maturity needs.
Steel vs Pinocchio CU?
Profile - Steel slightly more.
Anchor migration?
See interop page.
IDL?
External codegen.
Token support?
Via spl CPI.
Tests?
LiteSVM.
Learning?
After native basics.
Docs?
Steel repository README.
Upgrade?
Standard program upgrade.
Security?
Same as native.
Agave?
Pin versions.
Community examples?
Check ecosystem repos.
Related
- Lightweight Frameworks Overview - Context
- Pinocchio Basics - Minimal base
- When to Use Which Framework - Choose
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.