Configure Scarb.toml, dojo profiles, world settings, and dependencies. Use when setting up project configuration, managing dependencies, or configuring deployment environments.
Manages Dojo project configuration files like Scarb.toml and dojo_dev.toml. Use when setting up dependencies, configuring deployment profiles, or updating world settings for development and production environments.
/plugin marketplace add dojoengine/book/plugin install book@dojoengineThis skill is limited to using the following tools:
Manage Dojo project configuration including Scarb.toml, deployment profiles, and world settings.
Manages configuration files:
Scarb.toml - Package and dependenciesdojo_dev.toml - Local development profiledojo_release.toml - Production deployment profileInteractive mode:
"Update my Dojo configuration"
I'll ask about:
Direct mode:
"Add the Origami library to my dependencies"
"Configure production deployment for Sepolia"
Package manager configuration:
[package]
name = "my_game"
version = "0.1.0"
edition = "2024_07"
[dependencies]
dojo = { git = "https://github.com/dojoengine/dojo", tag = "v1.0.0" }
[[target.dojo]]
[tool.dojo]
initializer_class_hash = "0x..."
[tool.dojo.env]
rpc_url = "http://localhost:5050/"
account_address = "0x..."
private_key = "0x..."
world_address = "0x..."
Key sections:
[package] - Project metadata[dependencies] - Dojo and library versions[[target.dojo]] - Build target[tool.dojo] - Dojo-specific settings[tool.dojo.env] - Environment variablesLocal development configuration:
[env]
rpc_url = "http://localhost:5050/"
account_address = "0xb3ff441a68610b30fd5e2abbf3a1548eb6ba6f3559f2862bf2dc757e5828ca"
private_key = "0x2bbf4f9fd0bbb2e60b0316c1fe0b76cf7a4d0198bd493ced9b8df2a3a24d68a"
world_address = ""
[world]
name = "my_game"
seed = "my_game"
Production deployment configuration:
[env]
rpc_url = "https://api.cartridge.gg/x/starknet/sepolia"
account_address = "YOUR_ACCOUNT_ADDRESS"
private_key = "YOUR_PRIVATE_KEY"
world_address = "DEPLOYED_WORLD_ADDRESS"
[world]
name = "my_game_production"
seed = "my_game_prod"
Origami library:
[dependencies]
origami_token = { git = "https://github.com/dojoengine/origami", tag = "v1.0.0" }
Alexandria library:
[dependencies]
alexandria_math = { git = "https://github.com/keep-starknet-strange/alexandria" }
Development (Katana):
[env]
rpc_url = "http://localhost:5050/"
account_address = "0xb3ff441a68610b30fd5e2abbf3a1548eb6ba6f3559f2862bf2dc757e5828ca"
Testnet (Sepolia):
[env]
rpc_url = "https://api.cartridge.gg/x/starknet/sepolia"
account_address = "YOUR_ACCOUNT"
Mainnet:
[env]
rpc_url = "https://api.cartridge.gg/x/starknet/mainnet"
account_address = "YOUR_ACCOUNT"
Namespace setup:
[world]
name = "my_game"
namespace = "my_game"
seed = "my_game_v1"
Description and metadata:
[world]
name = "my_game"
description = "A provable on-chain game"
icon_uri = "https://example.com/icon.png"
cover_uri = "https://example.com/cover.png"
Create separate profile files:
dojo_dev.toml - Local Katanadojo_sepolia.toml - Sepolia testnetdojo_mainnet.toml - MainnetDeploy with:
sozo migrate --profile dev
sozo migrate --profile sepolia
sozo migrate --profile mainnet
Pin Dojo version:
[dependencies]
dojo = { git = "https://github.com/dojoengine/dojo", tag = "v1.0.0" }
Use latest:
[dependencies]
dojo = { git = "https://github.com/dojoengine/dojo" }
Development (Katana default):
account_address = "0xb3ff441a68610b30fd5e2abbf3a1548eb6ba6f3559f2862bf2dc757e5828ca"
private_key = "0x2bbf4f9fd0bbb2e60b0316c1fe0b76cf7a4d0198bd493ced9b8df2a3a24d68a"
Production (Argent/Braavos):
account_address = "YOUR_WALLET_ADDRESS"
private_key = "YOUR_PRIVATE_KEY" # Store securely!
.gitignore for dojo_release.tomlOption 1: Environment variables
[env]
private_key = "${DOJO_PRIVATE_KEY}"
Option 2: Separate secrets file
# dojo_release.toml (committed)
[env]
rpc_url = "https://api.cartridge.gg/x/starknet/mainnet"
# dojo_secrets.toml (gitignored)
[env]
account_address = "..."
private_key = "..."
# Ignore sensitive configs
dojo_release.toml
dojo_secrets.toml
dojo_*.toml
# Keep development config
!dojo_dev.toml
"World not found":
world_address is set after migration"Account not found":
"Invalid private key":
After configuration:
dojo-deploy skill to deploy with your configdojo-migrate skill when updating deploymentsdojo-init skill to regenerate configs if neededThis 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 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 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.