One workflow for Soroban smart contracts
BlockSmith is the all-in-one toolkit for Stellar Soroban developers.
No JavaScript. No glue code. From local testing to deployment, everything stays in Rust — and once you ship, prove your contract matches its source.
Developing on
Stellar could be more efficient.
Soroban Testing is split
Logic runs in the VM, but integration over RPC often means rewriting tests in JavaScript.
Integration Development at Production Fidelity
Local environments lack mainnet state and real-world complexity.
Missing Support for Complex Test Scenarios
Contracts are hard to validate under adversarial or high-entropy conditions.
Limited Assistance for Fixing Contract Issues
Most contract fixes still require manual analysis and patching.
No Practical Way to Run Internal Pre-Audit
Teams lack tooling to catch issues before formal audits.
No Way to Prove On-Chain Code Matches Its Source
Users and auditors must trust a deployed contract's Wasm with no reproducible link back to the source.
Meet BlockSmith
BlockSmith is an all-in-one development toolkit purpose-built for Stellar smart contracts on Soroban.
It unifies testing, deployment, local networks, performance analysis, and on-chain source verification into a single, Rust-native workflow.
Verifiable Source,
Reproducible Builds
Prove that a deployed contract's on-chain Wasm was built from the source it claims — rebuilt in an isolated sandbox and compared byte for byte.

[nova] Starting local node...
✓ Local Soroban node is running
[nova] Stopping local node...
✓ All services stopped
[nova] Resetting local node...
✓ Node state cleared and ready to start
Local Node Lifecycle Management
Start, stop, reset, and manage local Soroban nodes with simple commands — fully integrated into your testing workflow.

#[tokio::test]
async fn test() {
// let invoker = RpcClient::new("http://localhost:9000/rpc").await.unwrap();
let ctx = Ctx::new(invoker);
let admin = ctx.generate_address().await;
// ...
// deploy contract, initialize state
// ...
let mut token = token_mod::Contract::new(
ctx.invoker_handle(),
contract_id.to_string(),
);
token.get_admin().await;
}
Unified Rust Testing
Write your tests once in Rust and run them against an in-memory VM or a real Soroban node — with a simple configuration switch


$ blocksmith test --measure
Contract: withdraw_request
──────────────────────────────
CPU Instructions 4,765,041 / 5,000,000 ✓
Memory Bytes 10,002,275 / 10,000,000 ⚠︎
Entry Reads 6 / 10,000 ✓
Entry Writes 3 / 10,000 ✓


$ blocksmith test --measure
Contract: withdraw_request
──────────────────────────────
CPU Instructions 4,765,041 / 5,000,000 ✓
Memory Bytes 10,002,275 / 10,000,000 ⚠︎
Entry Reads 6 / 10,000 ✓
Entry Writes 3 / 10,000 ✓

Testing That Matches Production
Simulate, measure, and understand your contracts before deployment.
Unlock the Future, Exciting Features Await
Embark on a journey of innovation as we prepare to unveil groundbreaking features that will transform your experience.
Mainnet Forking for Soroban
Run contracts against a fully mutable fork of real mainnet state, not just a static snapshot.
Idea to Deployed POC in Days
Agents carry raw project material through a signed scope, implementation, tests, and deployment.
x402 · Pay-per-Call MCP Tools
BlockSmith's toolchain and contract data become MCP tools — agents call what they need and pay per request.
Designed for Soroban, Proven by Modern Tooling
BlockSmith brings modern smart contract tooling patterns to Soroban without forcing developers into workflows that don't fit.
Traditional Stack
With BlockSmith
Start building with BlockSmith
Join the private beta and build Soroban contracts with a unified Rust workflow.
