Overview
By default,@dimcool/mcp manages signing internally using a Solana keypair you provide via DIM_WALLET_PRIVATE_KEY. If you already use a wallet MCP server like Phantom, you can skip the private key entirely and let your existing wallet handle all signing.
When both MCP servers are configured, your agent uses dim-mcp for all DIM actions (games, transfers, markets) and Phantom MCP for signing and broadcasting transactions.
Setup with Phantom MCP
- Claude Desktop
- Cursor
DIM_WALLET_PRIVATE_KEY needed. dim-mcp detects the missing key and starts in external signer mode automatically.
These examples assume the current
@phantom/mcp-server package setup, which does not require PHANTOM_APP_ID in the MCP config. For the latest wallet connection steps, follow the @phantom/mcp-server npm page.How signing works
When a dim-mcp tool needs a signature, it returns the unsigned payload along with aconfirmWith hint. Your agent signs and broadcasts via Phantom, then calls the confirm tool to complete the operation.
Each signing flow is three steps:
Flow reference
Log in
Deposit for a paid game
Send USDC
Tip a user
Buy prediction market shares
Donate to a game pot
Operations that don’t require signing
These work the same regardless of wallet setup:Using a different wallet MCP
This setup works with any wallet MCP that exposessign_solana_message and send_solana_transaction. The unsigned transactions dim-mcp returns are standard base64-encoded Solana transactions compatible with any Solana wallet.