Soil¶
Soil is a blockchain framework for building blockchains. It is based on Substrate, the framework originally developed for the Polkadot ecosystem.
Substrate is a powerful and battle-tested framework, but its tight coupling to Polkadot has introduced complexity that is unnecessary for projects operating outside that ecosystem. Soil aims to provide a cleaner, more focused alternative for teams that want Substrate's proven architecture without the Polkadot-specific overhead.
Why Soil?¶
Lightweight and stable core. Years of Polkadot-driven development added layers of abstraction and indirection to Substrate. Soil strips these away, resulting in a smaller and more approachable codebase.
Swappable components. Substrate historically locked you into specific choices for the executor (Wasm) and storage backend (Patricia-Merkle trie). Soil makes these components pluggable, so you can use a custom executor or an alternative trie backend.
Reduced technical debt. Soil redesigns crate boundaries to be clearer and more consistent, eliminating the circular dependencies and structural issues inherited from upstream Substrate.
Independent of Polkadot. Soil cleanly separates genuinely generic blockchain primitives from Polkadot-specific functionality. Solo chain builders only pay for what they use.
How It Works¶
A Soil-based blockchain is split into two main layers:
-
Runtime — the on-chain state transition function. You compose it from pallets (modular building blocks that each handle a specific piece of logic, such as account balances or consensus). The runtime compiles to Wasm and executes deterministically on every node.
-
Client — the off-chain node software. It handles networking, block production, consensus, RPC, and storage. The client drives the runtime by feeding it blocks and transactions.
Soil provides both layers out of the box, along with a library of pallets covering common blockchain functionality. You configure and extend them to build your chain.
Next Steps¶
- Architecture — understand how the codebase is organized.
- Getting Started — set up your development environment.
- Building a Minimal Node — walk through the code for a working node.
- Crate Reference — naming conventions and a guide to every crate.