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.
Deploy Dojo worlds to local Katana, testnet, or mainnet using sozo. Use when you need to start a local sequencer or deploy your game to Starknet.
/plugin marketplace add dojoengine/book/plugin install book@dojoengineThis skill is limited to using the following tools:
Deploy your Dojo world to local Katana sequencer, Sepolia testnet, or Starknet mainnet.
Handles deployment workflows:
sozo migrateLocal development:
"Start Katana and deploy my world"
Testnet deployment:
"Deploy my world to Sepolia"
Mainnet deployment:
"Deploy to Starknet mainnet"
Start Katana:
katana --dev --dev.accounts 10
Deploy world:
sozo migrate --name my_game
Verify:
# Check manifest for addresses
cat target/dev/manifest.json
Configure profile:
# dojo_sepolia.toml
[env]
rpc_url = "https://api.cartridge.gg/x/starknet/sepolia"
account_address = "YOUR_ACCOUNT"
private_key = "YOUR_KEY"
Deploy:
sozo migrate --profile sepolia
Configure profile:
# dojo_mainnet.toml
[env]
rpc_url = "https://api.cartridge.gg/x/starknet/mainnet"
account_address = "YOUR_ACCOUNT"
private_key = "YOUR_KEY"
Deploy:
sozo migrate --profile mainnet
Instant (default):
katana --dev
Mines block immediately on transaction.
Interval:
katana --dev --block-time 6000
Mines block every 6 seconds.
On-demand:
katana --dev --no-mining
Manual block production.
Default accounts:
katana --dev --dev.accounts 10
Generates 10 pre-funded accounts.
Custom seed:
katana --dev --seed 0x123
Deterministic account generation.
Fork Sepolia:
katana --dev --fork https://api.cartridge.gg/x/starknet/sepolia
Fork at block:
katana --dev --fork https://... --fork-block-number 100000
# Build project
sozo build
# Build and verify
sozo build --check
# Deploy to default (Katana)
sozo migrate
# Deploy with profile
sozo migrate --profile sepolia
# Deploy with name
sozo migrate --name my_game_v2
# Call a system
sozo execute SYSTEM_CONTRACT FUNCTION_NAME --calldata ARG1,ARG2
# Example: spawn
sozo execute actions spawn
# Read a model
sozo model get Position 0x123
# Read with composite key
sozo model get Tile 10,20
sozo test)dojo-review skill)dojo-config skill)sozo build)sozo migrate)target/*/manifest.json)dojo-indexer skill)dojo-client skill)dojo-world skill)# Terminal 1: Start Katana
katana --dev --dev.accounts 10
# Terminal 2: Build and deploy
sozo build
sozo migrate
# Terminal 3: Start Torii
torii --world WORLD_ADDRESS --rpc http://localhost:5050
# Build
sozo build
# Deploy to Sepolia
sozo migrate --profile sepolia
# Verify
sozo model get Position PLAYER_ADDRESS --profile sepolia
# Final checks
sozo test
sozo build --check
# Deploy to mainnet
sozo migrate --profile mainnet
# Verify deployment
sozo model get Config CONFIG_ID --profile mainnet
After deployment, target/*/manifest.json contains:
Example:
{
"world": {
"address": "0x...",
"class_hash": "0x..."
},
"models": [
{
"name": "Position",
"class_hash": "0x..."
}
],
"contracts": [
{
"name": "actions",
"address": "0x..."
}
]
}
sozo build before migratingtarget/ and rebuild--max-fee flag if neededhttp://localhost:50500xb3ff441a68610b30fd5e2abbf3a1548eb6ba6f3559f2862bf2dc757e5828ca0x2bbf4f9fd0bbb2e60b0316c1fe0b76cf7a4d0198bd493ced9b8df2a3a24d68ahttps://api.cartridge.gg/x/starknet/sepoliahttps://api.cartridge.gg/x/starknet/mainnetAfter deployment:
dojo-indexer skill to set up Toriidojo-client skill to connect frontenddojo-world skill to configure permissionsdojo-migrate skill for updatesThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.