Skip to main content

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

No 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 a confirmWith 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


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 exposes sign_solana_message and send_solana_transaction. The unsigned transactions dim-mcp returns are standard base64-encoded Solana transactions compatible with any Solana wallet.