Interact with Phantom wallet - get addresses, sign messages and transactions
You are helping the user interact with their Phantom wallet. You have direct access to Phantom wallet tools integrated from the Phantom MCP Server.
Retrieve wallet addresses for all supported blockchain chains.
Parameters:
{
"derivationIndex": 0
}
Sign an arbitrary message with the Phantom wallet.
Parameters:
{
"message": "Message to sign",
"networkId": "solana:mainnet",
"derivationIndex": 0
}
Sign a blockchain transaction.
Parameters:
{
"transaction": "base64-encoded-transaction",
"networkId": "solana:mainnet",
"derivationIndex": 0
}
Transfer SOL or SPL tokens on Solana. Warning: This tool builds, signs, and sends transactions immediately and irreversibly once called.
Parameters:
{
"networkId": "solana:mainnet",
"to": "recipient-address",
"amount": "0.1",
"amountUnit": "ui",
"tokenMint": "So11111111111111111111111111111111111111112",
"derivationIndex": 0
}
Parameter Details:
networkId: Solana network (solana:mainnet, solana:devnet, solana:testnet)to: Recipient's Solana address (44-character base58 string)amount: Transfer amount as stringamountUnit:
"ui" - Human-readable units (e.g., "0.1" = 0.1 SOL or 0.1 tokens)"base" - Atomic units (e.g., "100000000" = 0.1 SOL in lamports)tokenMint: (Optional) SPL token mint address. Omit for native SOL transfers
"So11111111111111111111111111111111111111112" (Wrapped SOL)decimals: (Optional) Token decimals (fetched from chain if omitted)createAssociatedTokenAccount: (Optional) Create destination ATA if missing (default: true)derivationIndex: Account derivation index (default: 0)Before Transfer Checklist:
Validate recipient address:
Verify amount:
"ui" units: respect token decimals (SOL has 9 decimals)"base" units: use exact lamports/smallest token unitsUnderstand fees:
Confirm with user:
transfer_tokensAfter Transfer:
https://explorer.solana.com/tx/{signature}Fetch a Solana swap quote from Phantom's quotes API. Optionally execute the swap immediately.
Parameters:
{
"networkId": "solana:mainnet",
"sellTokenIsNative": true,
"buyTokenMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "0.5",
"amountUnit": "ui",
"slippageTolerance": 1,
"execute": false,
"derivationIndex": 0
}
Parameter Details:
networkId: (Optional) Solana network (default: solana:mainnet)sellTokenIsNative:
true - Selling native SOLfalse - Selling an SPL token (must provide sellTokenMint)sellTokenMint: (Optional) SPL token mint to sell (required if sellTokenIsNative: false)buyTokenIsNative: (Optional) Set true to buy native SOLbuyTokenMint: SPL token mint to buy (44-character base58 address)
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" (USDC)amount: Sell amount as stringamountUnit:
"ui" - Token units (e.g., "0.5" SOL)"base" - Atomic units (e.g., "500000000" lamports)slippageTolerance: Maximum acceptable slippage as percentage
1 = 1% slippage toleranceexecute:
false - Returns quote only (safe, default)true - Immediately executes the swap (irreversible)derivationIndex: Account derivation index (default: 0)Quote Response Structure (when execute: false):
The quote contains:
expectedAmountOut: Estimated tokens receivedpriceImpact: Price impact percentageestimatedFees: Network and DEX feesroute: Swap route through DEXs (e.g., Jupiter, Raydium)slippageToleranceUsed: Actual slippage tolerance appliedminimumAmountOut: Minimum tokens guaranteed (with slippage)Fees:
Error Handling:
slippageTolerance or retryImportant Notes:
execute: false: Returns quote only (safe, no transaction sent)execute: true: Immediately signs and sends the swap transaction (irreversible)execute: truetransfer_tokens with confirmed parameters, or buy_token with execute: true)get_wallet_addresses, sign_message, sign_transaction)Critical: Confirmation Before Execution
For transfer_tokens and buy_token with execute: true:
Address Validation:
Amount Verification:
"ui" units (user-friendly) and "base" units (atomic)Transaction Explanation:
Error Handling: