
dojo-deploy
by dojoengine
The Dojo Book
SKILL.md
name: dojo-deploy description: Deploy Dojo worlds to local Katana, testnet, or mainnet. Configure Katana sequencer and manage deployments with sozo. Use when deploying your game or starting local development environment. allowed-tools: Read, Bash, Grep
Dojo Deployment
Deploy your Dojo world to local Katana sequencer, Sepolia testnet, or Starknet mainnet.
When to Use This Skill
- "Deploy my world to Katana"
- "Start Katana sequencer"
- "Deploy to Sepolia testnet"
- "Deploy to mainnet"
What This Skill Does
Handles deployment workflows:
- Start and configure Katana sequencer
- Deploy worlds with
sozo migrate - Verify deployments
- Manage world addresses
- Configure network settings
Quick Start
Local development:
"Start Katana and deploy my world"
Testnet deployment:
"Deploy my world to Sepolia"
Mainnet deployment:
"Deploy to Starknet mainnet"
Deployment Workflow
1. Local Development (Katana)
Start Katana:
katana --dev --dev.no-fee
This launches Katana with:
- RPC server at
http://localhost:5050 - 10 pre-funded accounts
- Instant block mining
- Gas fees disabled
Build and deploy:
sozo build && sozo migrate
Verify:
# Preview deployment
sozo inspect
# Execute a system
sozo execute dojo_starter-actions spawn
2. Testnet Deployment (Sepolia)
Configure profile:
# dojo_sepolia.toml
[world]
name = "My Game"
seed = "my-game-sepolia"
[env]
rpc_url = "https://api.cartridge.gg/x/starknet/sepolia"
account_address = "YOUR_ACCOUNT"
private_key = "YOUR_KEY"
[namespace]
default = "my_game"
[writers]
"my_game" = ["my_game-actions"]
Deploy:
sozo build --profile sepolia
sozo migrate --profile sepolia
3. Mainnet Deployment
Configure profile:
# dojo_mainnet.toml
[world]
name = "My Game"
seed = "my-game-mainnet"
[env]
rpc_url = "https://api.cartridge.gg/x/starknet/mainnet"
account_address = "YOUR_ACCOUNT"
keystore_path = "~/.starknet_accounts/mainnet.json"
[namespace]
default = "my_game"
[writers]
"my_game" = ["my_game-actions"]
Deploy:
sozo build --profile mainnet
sozo migrate --profile mainnet
Katana Configuration
Quick Start (Development)
katana --dev --dev.no-fee
Mining Modes
Instant (default):
katana --dev --dev.no-fee
Mines block immediately on transaction.
Interval:
katana --block-time 10000
Mines block every 10 seconds.
Persistent Storage
katana --db-dir ./katana-db
Network Forking
Fork Starknet mainnet:
katana --fork.provider https://api.cartridge.gg/x/starknet/mainnet
Fork at specific block:
katana --fork.provider https://api.cartridge.gg/x/starknet/mainnet --fork.block 1000000
Sozo Commands
Build
sozo build
Inspect (Preview Deployment)
# See what will be deployed/changed
sozo inspect
Migrate (Deploy)
# Deploy with default dev profile
sozo migrate
# Deploy with specific profile
sozo migrate --profile sepolia
Execute System
# Call a system function
sozo execute <CONTRACT_TAG> <FUNCTION> [ARGS...]
# Example: spawn
sozo execute dojo_starter-actions spawn
# Example: move with argument
sozo execute dojo_starter-actions move 1
Deployment Checklist
Pre-Deployment
- All tests passing (
sozo test) - Code reviewed (
dojo-reviewskill) - Configuration set (
dojo-configskill) - Target network funded (for gas)
- Private key secured (not committed)
Deployment
- Build succeeds (
sozo build) - Inspect looks correct (
sozo inspect) - Migration succeeds (
sozo migrate) - Manifest generated (check
manifest_<profile>.json) - World address recorded
Post-Deployment
- Deployment verified (execute systems, query models)
- Torii indexer configured (
dojo-indexerskill) - Client connected (
dojo-clientskill) - World permissions verified (
dojo-worldskill)
Development Workflow
Terminal 1: Start Katana
katana --dev --dev.no-fee
Terminal 2: Build and deploy
sozo build && sozo migrate
Terminal 3: Start Torii
torii --world <WORLD_ADDRESS>
Sample Deploy Script
This skill includes deploy_local.sh, a template script for automated local development.
Copy it into your project's scripts/ directory and customize it for your needs.
Setup:
- Copy the script to your project:
cp deploy_local.sh your-project/scripts/ - Adjust configuration variables (profile name, URLs) as needed
- Make executable:
chmod +x scripts/deploy_local.sh
Run:
# Default dev profile
./scripts/deploy_local.sh
# Specific profile
PROFILE=staging ./scripts/deploy_local.sh
What it does:
- Checks for required tools (katana, sozo, torii, jq)
- Starts Katana with health checking
- Builds and deploys contracts
- Extracts addresses from the manifest
- Starts Torii indexer
- Cleans up all services on exit (Ctrl+C)
Customization points:
PROFILE: Default build/deploy profileRPC_URL: Katana endpoint (default:http://localhost:5050)TORII_URL: Torii endpoint (default:http://localhost:8080)- Add project-specific post-deploy steps (e.g., seeding data, running migrations)
Manifest File
After deployment, manifest_<profile>.json contains:
- World address
- Model addresses and class hashes
- System/contract addresses
- ABI information
Example:
{
"world": {
"address": "0x...",
"class_hash": "0x..."
},
"models": [
{
"tag": "dojo_starter-Position",
"address": "0x..."
}
],
"contracts": [
{
"tag": "dojo_starter-actions",
"address": "0x..."
}
]
}
Troubleshooting
"Account not found"
- Ensure account is deployed on target network
- Check account address in profile config
- Verify account has funds for gas
"Class hash mismatch"
- Run
sozo buildbefore migrating - Check Scarb.toml for correct Dojo version
- Clear
target/and rebuild
"Insufficient funds"
- Fund account with ETH/STRK for gas
- Use Sepolia faucet: https://faucet.starknet.io
"Profile not found"
- Ensure
dojo_<profile>.tomlexists - Check spelling matches the
--profileflag
Network Information
Katana (Local)
- RPC:
http://localhost:5050 - Pre-funded accounts printed on startup
Sepolia (Testnet)
- RPC:
https://api.cartridge.gg/x/starknet/sepolia - Faucet: https://faucet.starknet.io
- Explorer: https://sepolia.voyager.online
Mainnet
- RPC:
https://api.cartridge.gg/x/starknet/mainnet - Explorer: https://voyager.online
Next Steps
After deployment:
- Use
dojo-indexerskill to set up Torii - Use
dojo-clientskill to connect frontend - Use
dojo-worldskill to configure permissions - Use
dojo-migrateskill for updates
Related Skills
- dojo-config: Configure deployment profiles
- dojo-migrate: Update deployments
- dojo-indexer: Index deployed world
- dojo-client: Connect clients to deployment
- dojo-world: Manage world permissions
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です
