SuiForge
A modern, developer-friendly framework for building on the Sui blockchain
SuiForge simplifies the entire Sui smart contract development workflow—from scaffolding to deployment. Think Hardhat for Ethereum, Anchor for Solana, but built specifically for Sui Move.
Why SuiForge?
The Sui ecosystem lacks modern, intuitive tooling. SuiForge solves this by:
- Abstracting complexity: No more wrestling with raw Sui CLI commands
- Automating workflows: One command to scaffold, build, test, and deploy
- Providing reusable modules: Battle-tested Move libraries for common patterns
- Generating client SDKs: Auto-generate TypeScript/Rust/Swift clients from your contracts
- Offering great DX: Human-friendly errors, sensible defaults, full customization
Installation
Or build from source:
Quick Start
# Create a new project
# Navigate to project
# Build the Move contracts
# Run tests
# Deploy to devnet
# Generate TypeScript SDK
Commands
suiforge init <project-name>
Scaffold a new Sui Move project with opinionated structure and templates.
Options:
--template <type>: Choose frombasic,nft,token,marketplace,defi,game--no-git: Skip git initialization
Example:
suiforge build
Compile Move contracts with enhanced error messages.
Options:
--release: Build with optimizations--watch: Rebuild on file changes
suiforge test
Run Move unit tests and integration tests.
Options:
--filter <pattern>: Run specific tests--coverage: Generate coverage report
suiforge deploy <network>
Deploy contracts to specified network (devnet, testnet, mainnet).
Options:
--gas-budget <amount>: Set custom gas budget--skip-verify: Skip post-deployment verification
Example:
suiforge generate <target>
Generate client SDKs from deployed contracts.
Targets: ts, rust, swift, python
Example:
suiforge node start|stop|status
Manage local Sui node for development.
suiforge install <plugin>
Install community plugins (Phase 2).
Project Structure
my-project/
├── Move.toml # Move package manifest
├── suiforge.config.json # SuiForge configuration
├── suiforge.lock.json # Deployment metadata (auto-generated)
├── sources/
│ └── main.move # Main contract code
├── tests/
│ └── main_tests.move # Move unit tests
├── scripts/
│ └── deploy.ts # Deployment scripts
└── build/ # Build artifacts (auto-generated)
Templates
SuiForge provides production-ready templates:
- basic: Minimal Move project
- nft: NFT collection with minting and transfers
- token: Fungible token with supply management
- marketplace: NFT marketplace with listings and sales
- defi: DeFi primitives (vaults, staking, swaps)
- game: On-chain game mechanics
SuiForge Modules Library
Import battle-tested Move modules into your projects:
[]
= { = "https://github.com/yourusername/suiforge-modules", = "modules" }
Available modules:
AccessControl: Role-based permissionsPausable: Emergency stop mechanismTokenUtils: Fungible token helpersNFTUtils: Non-fungible token helpersVault: Secure asset storageEscrow: Two-party escrow systemPaymentSplitter: Revenue distributionOwnable: Ownership management
Example usage:
use suiforge::access_control::{Self, Role};
use suiforge::pausable::{Self, Pausable};
Configuration
suiforge.config.json:
Best Practices
- Use templates: Start with a template that matches your use case
- Leverage modules: Don't reinvent the wheel—use SuiForge modules
- Test thoroughly: Write comprehensive Move tests before deploying
- Version control: Commit
suiforge.lock.jsonto track deployments - Generate SDKs: Auto-generate type-safe clients for your frontend
- Local testing: Use
suiforge node startfor fast iteration
Contributing
SuiForge is open-source and welcomes contributions!
# Clone the repo
# Run tests
# Build
See CONTRIBUTING.md for guidelines.
Roadmap
- Core CLI commands
- Project scaffolding
- Template system
- Build & test automation
- Deployment automation
- SDK generation (TypeScript)
- Plugin ecosystem
- SDK generation (Rust, Swift, Python)
- Interactive mode
- Contract verification
- Gas optimization analyzer
- Security audit tools
License
MIT License - see LICENSE for details.
Support
- Documentation: https://suiforge.dev
- Discord: https://discord.gg/suiforge
- Twitter: @suiforge
- Issues: https://github.com/yourusername/suiforge/issues
Built with ❤️ for the Sui community