phantom/phantom-connect-sdk/phantom-wallet

Claude Code and agent skill by phantom/phantom-connect-sdk

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Phantom wallet connected. You can transfer tokens, swap, sign messages, and more across Solana and Ethereum.

Install

npx vskill@latest install phantom/phantom-connect-sdk/phantom-wallet

SKILL.md

Phantom Wallet Operations

Phantom wallet connected. You can transfer tokens, swap, sign messages, and more across Solana and Ethereum.

You are helping the user interact with their Phantom embedded wallet. You have direct access to Phantom wallet tools integrated from the Phantom MCP Server and every wallet action is powered by Phantom.

Available Tools

get_connection_status

Lightweight local check of the wallet connection state. No network call — reads session state only. Use this first to confirm the user is authenticated.

Parameters: None

get_wallet_addresses

Retrieve wallet addresses for all supported blockchain chains (Solana, Ethereum, Bitcoin, Sui).

Parameters:

json
{
"derivationIndex": 0
}
get_token_balances

Get all fungible token balances for the authenticated wallet with live USD prices. Use this before transfers or swaps to verify the user has sufficient funds.

Parameters: None

phantom_login

Trigger Phantom authentication or re-authentication. Use this when the user wants to connect explicitly, switch accounts, or recover from an expired session.

Parameters: None

pay_api_access

Pay for daily API access when another tool returns PaymentRequiredError.

Important: This tool signs and broadcasts a Solana transaction. Do NOT call it automatically.

When a PaymentRequiredError occurs:

  1. Extract and present these fields to the user: token (what you're paying with), amount (how much), network (which chain), description (what access is being purchased). Do not display preparedTx — it is an opaque transaction passed directly to the tool.
  2. Wait for explicit user confirmation.
  3. After confirmation, call pay_api_access with the preparedTx value from the error response.
  4. Retry the original tool call on success.

Security: The tool enforces three protections before signing:

  • destructiveHint: true annotation so MCP clients surface a confirmation prompt
  • Transaction validation: only SPL token Transfer/TransferChecked + ComputeBudget priority-fee instructions are permitted; SOL transfers, ATA creation, and any unknown programs are rejected immediately
  • Simulation-before-signing: the transaction is run through Phantom's scanner; any result flagged as malicious blocks signing before anything is broadcast

Parameters:

json
{
"preparedTx": "base64-encoded-solana-transaction",
"derivationIndex": 0
}
simulate_transaction

Preview expected asset changes, warnings, and blocking conditions without submitting anything on-chain. Supports Solana, EVM, Sui, Bitcoin, and EVM message-signing simulations.

Parameters:

json
{
"chainId": "solana:mainnet",
"type": "transaction",
"params": {
"transactions": ["base58-encoded-transaction"]
}
}
send_solana_transaction

Simulate, sign, and broadcast a pre-built Solana transaction. Only use this when you already have a complete encoded transaction from an external source. For transfers use transfer_tokens; for swaps use buy_token.

Important: This is a two-step flow. First call without confirmed to simulate. Only call again with confirmed: true after explicit user approval.

Parameters:

json
{
"transaction": "base64-encoded-solana-transaction",
"networkId": "solana:mainnet",
"derivationIndex": 0,
"confirmed": false
}
sign_solana_message

Sign a UTF-8 message with the Solana wallet. Returns a base58-encoded signature. Use for authentication challenges and proof-of-ownership flows on Solana.

Parameters:

json
{
"message": "Message to sign",
"networkId": "solana:mainnet",
"derivationIndex": 0
}
send_evm_transaction

Simulate, sign, and broadcast an EVM transaction using the authenticated wallet. Pass the fields you have — nonce, gas, and gas pricing fields are fetched from the network automatically if omitted. Use this when you have a transaction object from an external source (e.g. a DeFi aggregator) or when constructing a transaction directly.

Important: This is a two-step flow. First call without confirmed to simulate. Only call again with confirmed: true after explicit user approval.

Parameters:

json
{
"chainId": 1,
"to": "0xRecipientAddress",
"value": "0x38D7EA4C68000",
"derivationIndex": 0,
"confirmed": false
}
sign_evm_personal_message

Sign a UTF-8 message using EIP-191 personal_sign with the EVM wallet. Returns a hex-encoded signature. Use for authentication challenges and proof-of-ownership flows on EVM chains.

Parameters:

json
{
"message": "Message to sign",
"chainId": 1,
"derivationIndex": 0
}
sign_evm_typed_data

Sign EIP-712 typed structured data with the EVM wallet. Used for DeFi permit signatures, order signing (0x, Seaport, Uniswap Permit2), and other structured off-chain approvals.

Parameters:

json
{
"typedData": {
"types": { "Permit": [{ "name": "owner", "type": "address" }] },
"primaryType": "Permit",
"domain": { "name": "USD Coin", "chainId": 1, "verifyingContract": "0x..." },
"message": { "owner": "0x...", "spender": "0x...", "value": "1000000000", "nonce": 0, "deadline": 1893456000 }
},
"chainId": 1,
"derivationIndex": 0
}
get_token_allowance

Check the ERC-20 allowance granted by an owner to a spender on a supported EVM chain. Use this before EVM swaps or contract interactions to determine whether an approve() transaction is needed.

Parameters:

json
{
"chainId": 8453,
"tokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"spenderAddress": "0x0000000000001ff3684f28c67538d4d072c22734"
}
transfer_tokens

Transfer native tokens or fungible tokens on Solana and EVM chains. This tool is simulation-first. First call without confirmed to preview the transfer. Only call again with confirmed: true after explicit user approval.

Parameters:

  • networkId: Network — Solana (solana:mainnet, solana:devnet) or EVM (eip155:1, eip155:8453, eip155:137, eip155:143). Arbitrum (eip155:42161) is not supported
  • to: Recipient — Solana base58 address or EVM 0x-prefixed address
  • amount: Transfer amount (e.g., "0.1", 0.1, "1000000")
  • amountUnit: "ui" for human-readable units, "base" for atomic units (default: "ui")
  • tokenMint: (Optional) Token contract — Solana SPL mint or EVM ERC-20 0x address. Omit for native token.
  • decimals: (Optional) Token decimals — Solana fetches from chain if omitted; ERC-20 requires this when amountUnit: "ui"
  • derivationIndex: Account derivation index (default: 0)
  • createAssociatedTokenAccount: (Solana only) Create destination ATA if missing (default: true)
  • confirmed: Set to true only after the user approves the simulation preview

Example (SOL):

json
{ "networkId": "solana:mainnet", "to": "recipient-address", "amount": "0.1", "amountUnit": "ui" }

Example (ETH on Base):

json
{ "networkId": "eip155:8453", "to": "0xRecipient", "amount": "0.01", "amountUnit": "ui" }

Example (ERC-20 USDC on Ethereum):

json
{
"networkId": "eip155:1",
"to": "0xRecipient",
"tokenMint": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amount": "100",
"amountUnit": "ui",
"decimals": 6
}

Before Transfer Checklist:

  1. Verify the recipient address matches the chain type (Solana base58 vs EVM 0x)
  2. Confirm balance covers amount + fees (get_token_balances)
  3. For ERC-20: confirm decimals value is correct
  4. For EVM token transfers to a spender/contract flow, check allowance if relevant with get_token_allowance
  5. Get explicit user confirmation before sending
buy_token

Fetch a swap quote from Phantom's routing engine. Supports Solana same-chain, EVM same-chain, and cross-chain swaps. Optionally execute immediately.

Parameters:

  • sellChainId: (Optional) Chain for the sell token — default: "solana:mainnet". EVM: "eip155:1", "eip155:8453", "eip155:137", etc.
  • buyChainId: (Optional) Chain for the buy token — defaults to sellChainId. Set differently for cross-chain.
  • sellTokenIsNative: Sell the native token (default: true if sellTokenMint not provided)
  • sellTokenMint: Token to sell — Solana mint or EVM 0x contract
  • buyTokenIsNative: Buy the native token
  • buyTokenMint: Token to buy — Solana mint or EVM 0x contract
  • amount: Swap amount
  • amountUnit: "ui" for token units, "base" for atomic units (default: "base")
  • exactOut: If true, amount is the buy amount instead of sell amount
  • slippageTolerance: Max slippage in percent (0-100)
  • execute: Sign and send immediately after the user approves the quote. Default: false
  • derivationIndex: Account derivation index (default: 0)
  • quoteApiUrl: Phantom-compatible API override. Leave unset for normal use.

Example (Solana — sell SOL, buy USDC):

json
{
"sellChainId": "solana:mainnet",
"sellTokenIsNative": true,
"buyTokenMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "0.5",
"amountUnit": "ui",
"slippageTolerance": 1,
"execute": true
}

Example (EVM — sell ETH, buy USDC on Base):

json
{
"sellChainId": "eip155:8453",
"sellTokenIsNative": true,
"buyTokenMint": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1000000000000000000",
"slippageTolerance": 1,
"execute": true
}

Example (Cross-chain quote — SOL → ETH, returns steps only):

json
{
"sellChainId": "solana:mainnet",
"buyChainId": "eip155:1",
"sellTokenIsNative": true,
"buyTokenIsNative": true,
"amount": "1000000000"
}

Important Notes:

  • execute: false — returns quote only (safe, no transaction sent)
  • execute: true — signs and broadcasts the initiation transaction immediately after approval
  • For EVM swaps, use get_token_allowance when you need to check whether the sell token requires an ERC-20 approval
  • Cross-chain quotes may include steps and requiredApprovals in the response
  • Always display expected output, fees, and price impact before executing
  • Get explicit user confirmation before setting execute: true
portfolio_rebalance

Analyze and rebalance a portfolio allocation via token swaps. Currently supports Solana only. Use phase: "analyze" first, then phase: "execute" after the user approves the plan.

Parameters:

json
{
"phase": "analyze"
}
Perps

The plugin also exposes Phantom-backed Hyperliquid perp tools:

  • get_perp_markets
  • get_perp_account
  • get_perp_positions
  • get_perp_orders
  • get_perp_trade_history
  • deposit_to_hyperliquid
  • open_perp_position
  • close_perp_position
  • cancel_perp_order
  • update_perp_leverage
  • transfer_spot_to_perps
  • withdraw_from_perps

Use the read-only perp tools first to inspect markets, balances, positions, and open orders before any write action.

Workflow

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
165
Repository forks
92
7-day trend score
24

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/phantom/phantom-connect-sdk/phantom-wallet/badge)](https://verified-skill.com/skills/phantom/phantom-connect-sdk/phantom-wallet)

Something wrong with this skill or its page? Tell us.