slot-paymaster
Slot Paymaster
Manage paymasters that sponsor transaction fees, enabling gasless experiences for users. Zero integration required — when enabled, eligible transactions are automatically sponsored.
Availability
- Testnet: Automatically enabled, no setup required
- Mainnet: Self-served via Slot CLI
Creating a Paymaster
Requires an authenticated session (slot auth login) and a team with credits.
slot paymaster <name> create --team <team> --budget <amount> --unit CREDIT
The budget is deducted from the team's credit balance. 1 CREDIT = $0.01 USD.
Budget Management
# Increase budget
slot paymaster <name> budget increase --amount <amount> --unit CREDIT
# Decrease budget
slot paymaster <name> budget decrease --amount <amount> --unit CREDIT
Policy Management
Policies define which contracts and entrypoints the paymaster will sponsor.
Add from preset (recommended)
Use verified contract presets from the Dojo ecosystem:
slot paymaster <name> policy add-from-preset --name <preset-name>
Presets are maintained at https://github.com/cartridge-gg/presets/tree/main/configs
Add a single policy
slot paymaster <name> policy add --contract <address> --entrypoint <entry-point>
Add from JSON
slot paymaster <name> policy add-from-json --file <path>
JSON format:
[
{
"contractAddress": "0x1234...abcd",
"entrypoint": "move_player"
},
{
"contractAddress": "0x5678...efgh",
"entrypoint": "attack",
"predicate": {
"address": "0x9abc...1234",
"entrypoint": "check_attack_eligibility"
}
}
]
Predicates are optional.
When present, the predicate contract is called first — the transaction is only sponsored if it returns true.
Remove policies
# Remove one
slot paymaster <name> policy remove --contract <address> --entrypoint <entry-point>
# Remove all (requires confirmation)
slot paymaster <name> policy remove-all
# List current policies
slot paymaster <name> policy list
Info and Configuration
# View paymaster details, budget, and policy count
slot paymaster <name> info
# Rename
slot paymaster <name> update --name <new-name>
# Transfer to different team
slot paymaster <name> update --team <new-team>
# Enable/disable
slot paymaster <name> update --active false
slot paymaster <name> update --active true
Monitoring
Stats
slot paymaster <name> stats --last <period>
Period options: 1hr, 2hr, 24hr, 1day, 2day, 7day, 1week.
Transaction history
slot paymaster <name> transactions [OPTIONS]
Options:
--filter SUCCESS|REVERTED|ALL--last <period>--order-by FEES_ASC|FEES_DESC|EXECUTED_AT_DESC|EXECUTED_AT_ASC--limit <n>(max 1000)
Dune Analytics
Generate SQL queries for Dune dashboards:
# With actual timestamps
slot paymaster <name> dune --last 24hr
# With template parameters for Dune dashboards
slot paymaster <name> dune --dune-params
Common Workflow: New Game Setup
# Create paymaster
slot paymaster my-game-pm create --team my-team --budget 1000 --unit CREDIT
# Add game contract policies
slot paymaster my-game-pm policy add --contract 0x123...abc --entrypoint move_player
slot paymaster my-game-pm policy add --contract 0x123...abc --entrypoint attack_enemy
# Verify setup
slot paymaster my-game-pm info
More from cartridge-gg/docs
controller-setup
Integrate Cartridge Controller wallet into Starknet applications. Use when setting up Controller for the first time, installing packages, configuring chains/RPC endpoints, or troubleshooting basic integration issues. Covers installation, Controller instantiation, ControllerConnector vs SessionConnector choice, chain configuration, and package compatibility.
69controller-sessions
Configure session keys and policies for Cartridge Controller to enable gasless, pre-approved transactions. Use when defining contract interaction policies, setting spending limits, configuring signed message policies, or implementing error handling for session-based transactions. Covers SessionPolicies type, policy definitions, verified sessions, and error display modes.
68controller-react
Integrate Cartridge Controller into React applications using starknet-react. Use when building React/Next.js web apps with Controller, setting up StarknetConfig provider, using hooks like useConnect/useAccount, or implementing wallet connection components. Covers ControllerConnector setup, provider configuration, and transaction execution patterns.
67controller-signers
Configure authentication methods for Cartridge Controller including passkeys, social login, and external wallets. Use when implementing user authentication, adding multiple signers for account recovery, customizing signup options, or integrating external wallets like MetaMask or Phantom. Covers WebAuthn passkeys, Google/Discord/Twitter OAuth, wallet connections, and dynamic authentication flows.
65controller-backend
Integrate Cartridge Controller into backend services using Node.js, Rust, or headless mode. Use when building server-side applications, game backends, automated bots, or any non-browser environment that needs to execute Starknet transactions. Covers SessionProvider for Node.js, Rust SDK setup, and headless Controller with custom signing keys.
61slot-vrng
Integrate Cartridge's verifiable random number generator (vRNG) into onchain games.
59