Scaffolding Stellar and Soroban applications historically required developers to manually orchestrate multiple disconnected tooling systems: client libraries, custom wallet adapter wrappers, smart contract bindings, environment setups, and testing frameworks.
stellar-starter-kit resolves these friction points by providing a pre-configured, production-ready monorepo template. It establishes immediate compile-safe bindings between contract interfaces, React frontend states, unit tests, and multi-wallet providers, allowing developers to go from zero to a live mainnet dApp in minutes.
| Feature / Tool | stellar-starter-kit |
Manual SDK Scaffolding | Standard React templates |
|---|---|---|---|
| Monorepo Ready | Yes (pnpm + Turbo) | No | No |
| Pre-configured Wallets | Yes (Freighter/Albedo/Rabe/Hana) | No | No |
| Soroban Bindings Sync | Yes | Manual | No |
| Conventional Commits | Yes (Commitlint + Husky) | No | No |
| Automated Releases | Yes (Changesets) | No | No |
| Shared Styling System | Yes (Cosmic Theme CSS) | No | No |
graph TD
subgraph apps/
Web[web - Next.js 15 App Portal]
end
subgraph packages/
SDK[sdk - High-level Orchestration]
Core[core - Stellar Horizon wraps]
Hooks[hooks - React state & wallet balance]
Wallets[wallets - Multi-wallet Context]
UI[ui - Component Library]
Contracts[contracts - Typed bindings]
Testing[testing - Mock environments]
Types[types - TS interfaces]
Utils[utils - Math/format helpers]
Config[config - Shared project settings]
end
Web --> SDK
Web --> Hooks
Web --> Wallets
Web --> UI
SDK --> Core
Hooks --> Wallets
Testing --> Types
Utils --> Types
Core --> Config
flowchart LR
web[@stellar-starter-kit/web] --> sdk[@stellar-starter-kit/sdk]
web --> hooks[@stellar-starter-kit/hooks]
web --> ui[@stellar-starter-kit/ui]
web --> wallets[@stellar-starter-kit/wallets]
sdk --> core[@stellar-starter-kit/core]
hooks --> wallets
testing[@stellar-starter-kit/testing] --> types[@stellar-starter-kit/types]
utils[@stellar-starter-kit/utils] --> types
stellar-starter-kit/
βββ .changeset/ # Version release configurations (Changesets)
βββ .github/ # GitHub pipelines and templates
β βββ workflows/ # CI, PR and Release Actions
β βββ ISSUE_TEMPLATE/ # Custom GitHub issues templates
βββ apps/ # Next.js applications
β βββ web/ # Next.js 15 dashboard portal
βββ packages/ # Shared workspace modular libraries
β βββ cli/ # Command line tools for code generation
β βββ config/ # Shared constants & build configurations
β βββ contracts/ # Smart contract configurations
β βββ core/ # Raw Horizon & RPC SDK client wraps
β βββ hooks/ # Custom React hooks (wallet balance, etc.)
β βββ sdk/ # Standard Client SDK API endpoint exports
β βββ testing/ # Test mocking libraries & simulators
β βββ types/ # Common TypeScript interface types
β βββ ui/ # Components library (Shadcn + Framer Motion)
β βββ utils/ # Math, unit converters and address formatters
β βββ wallets/ # Unified wallet connectivity context
βββ examples/ # Quickstart tutorials
βββ basic-payment/ # CLI Stellar XLM Payment builder demo
Interact with Soroban smart contracts directly from the UI with real-time transaction logs and state synchronization.
Clone the repository and install dependencies using pnpm:
git clone https://github.com/SorobanForge/stellar-starter-kit.git
cd stellar-starter-kit
pnpm installCopy the env template file and update configurations:
cp .env.example .env.localStart a local standalone Quickstart Docker node for development:
- Using pnpm (Recommended):
pnpm run node:local
- Windows (PowerShell):
./scripts/setup-local-node.ps1
- macOS / Linux (Bash):
./scripts/setup-local-node.sh
- Direct Docker Compose:
docker compose up -d
(To stop the local node at any time, run docker compose down)
Build and run the next.js dashboard portal:
pnpm run devNavigate to http://localhost:3000.
You can compile, optimize, deploy, and invoke our flagship Counter smart contract on-chain using:
# Build Rust workspace contracts to WASM
pnpm build:contracts
# Optimize WASM binaries for minimum gas size
pnpm optimize
# Deploy to Stellar Testnet and generate typed TypeScript client bindings
pnpm deploy:counter
# Verify execution by invoking on-chain
pnpm invoke:counterOur reference smart contract is actively deployed on Stellar Testnet:
- Contract ID:
CCH5B5TFLLN56KB4B762CA2IVX4MYRDDMYXDYIEITCXYIGMIEMLWWCSF - Stellar.expert Explorer: View Contract Details
- WASM Upload Transaction: Explorer Link
- Contract Deploy Transaction: Explorer Link
import { formatAddress, formatStroopsToXlm } from '@stellar-starter-kit/utils';
const displayKey = formatAddress('GD3W5PQLX6Y6S7WLMCP6UFRT4N4IELKJD3X54V5A7LNLNEQ5Z6L4HJK3');
// GD3W...HJK3
const balanceXlm = formatStroopsToXlm(10000000);
// "1"import { StellarClient } from '@stellar-starter-kit/sdk';
const client = new StellarClient('https://horizon-testnet.stellar.org');
const server = client.getServer();The kit exposes these primary modular namespaces:
@stellar-starter-kit/sdk:StellarClientclass to retrieve Horizon Servers.@stellar-starter-kit/utils:formatAddress(address: string, chars?: number): stringandformatStroopsToXlm(stroops: string | number | bigint): string.@stellar-starter-kit/hooks:useStellarNetworkStatus(): booleantracking connection properties.@stellar-starter-kit/testing:createMockAccount(): { publicKey: string, secret: string }for test run mocks.
Compile your Soroban Rust contract to WASM, then run soroban contract bindings typescript pointing to the WASM file, and save the resulting files inside packages/contracts.
The repository uses Changesets. When making a pull request, run pnpm changeset to generate a markdown version patch configuration. Once merged to main, GitHub Actions auto-versions the packages and publishes releases.
Yes. The network passphrase, Horizon API, and Soroban RPC URL are fully configurable in .env.local.
- v0.1: Scaffold Monorepo workspace layouts, Next.js 15 dashboard, and mock test coverage.
- v0.2: Integrate wallet adapter hooks (
useWallet) for Freighter, Albedo, Hana, and Rabe. - v0.5: Smart contracts compiler templates and auto-generated bindings pipeline.
- v1.0: Production audit checks, multi-network switch layouts, and sandbox testing.
Contributions of any size are welcome! Please review the CONTRIBUTING.md guide and the Code of Conduct before submitting pull requests.
Distributed under the MIT License. See LICENSE for more details.

