NEAR Intents Swap Integration
internet-court/internet-court-skill
Builds cross-chain token swaps and bridge flows with the NEAR Intents 1Click API: quotes, deposit addresses, per-chain deposits and status polling.
Phantom wallet connected. An agent skill from phantom/phantom-connect-sdk.
$ npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install phantom/phantom-connect-sdk phantom-wallet --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/phantom/phantom-connect-sdk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/phantom-openclaw-plugin/skills/phantom-wallet .claude/skills/phantom-wallet && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "phantom-wallet" agent skill from https://github.com/phantom/phantom-connect-sdk/tree/main/packages/phantom-openclaw-plugin/skills/phantom-wallet into .claude/skills/phantom-wallet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phantom-wallet", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/phantom/phantom-connect-sdk/tree/main/packages/phantom-openclaw-plugin/skills/phantom-walletType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install phantom/phantom-connect-sdk phantom-wallet --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/phantom/phantom-connect-sdk.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/phantom-openclaw-plugin/skills/phantom-wallet .agents/skills/phantom-wallet && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "phantom-wallet" agent skill from https://github.com/phantom/phantom-connect-sdk/tree/main/packages/phantom-openclaw-plugin/skills/phantom-wallet into .agents/skills/phantom-wallet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phantom-wallet", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install phantom/phantom-connect-sdk phantom-wallet --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/phantom/phantom-connect-sdk.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/phantom-openclaw-plugin/skills/phantom-wallet .cursor/skills/phantom-wallet && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "phantom-wallet" agent skill from https://github.com/phantom/phantom-connect-sdk/tree/main/packages/phantom-openclaw-plugin/skills/phantom-wallet into .cursor/skills/phantom-wallet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phantom-wallet", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/phantom/phantom-connect-sdk.git --path packages/phantom-openclaw-plugin/skills/phantom-wallet--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install phantom/phantom-connect-sdk phantom-wallet --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/phantom/phantom-connect-sdk.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/phantom-openclaw-plugin/skills/phantom-wallet .gemini/skills/phantom-wallet && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "phantom-wallet" agent skill from https://github.com/phantom/phantom-connect-sdk/tree/main/packages/phantom-openclaw-plugin/skills/phantom-wallet into .gemini/skills/phantom-wallet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phantom-wallet", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install phantom/phantom-connect-sdk phantom-walletInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/phantom/phantom-connect-sdk.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/phantom-openclaw-plugin/skills/phantom-wallet .github/skills/phantom-wallet && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "phantom-wallet" agent skill from https://github.com/phantom/phantom-connect-sdk/tree/main/packages/phantom-openclaw-plugin/skills/phantom-wallet into .github/skills/phantom-wallet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phantom-wallet", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install phantom/phantom-connect-sdk phantom-wallet --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/phantom/phantom-connect-sdk.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/phantom-openclaw-plugin/skills/phantom-wallet .opencode/skills/phantom-wallet && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "phantom-wallet" agent skill from https://github.com/phantom/phantom-connect-sdk/tree/main/packages/phantom-openclaw-plugin/skills/phantom-wallet into .opencode/skills/phantom-wallet/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "phantom-wallet", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
phantom-walletPhantom wallet connected. An agent skill from phantom/phantom-connect-sdk.
Phantom Wallet is an agent skill from phantom/phantom-connect-sdk. Phantom wallet connected. You can transfer tokens, swap, sign messages, and more across Solana and Ethereum.
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Solana and Ethereum. The repository describes itself as: Multi-platform SDKs for integrating Phantom. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit daa18ef. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Phantom Wallet loads about 3.5k tokens when it runs. Until then it costs about 31 tokens; SKILL.md has 1,448 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from phantom/phantom-connect-sdk at commit daa18ef, republished under its MIT licence (© phantom). 1,448 words, ~3,547 tokens.
.claude/skills/phantom-wallet/SKILL.md (or your agent's skills folder).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.
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
Retrieve wallet addresses for all supported blockchain chains (Solana, Ethereum, Bitcoin, Sui).
Parameters:
{
"derivationIndex": 0
}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
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 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:
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.pay_api_access with the preparedTx value from the error response.Security: The tool enforces three protections before signing:
destructiveHint: true annotation so MCP clients surface a confirmation promptParameters:
{
"preparedTx": "base64-encoded-solana-transaction",
"derivationIndex": 0
}Preview expected asset changes, warnings, and blocking conditions without submitting anything on-chain. Supports Solana, EVM, Sui, Bitcoin, and EVM message-signing simulations.
Parameters:
{
"chainId": "solana:mainnet",
"type": "transaction",
"params": {
"transactions": ["base58-encoded-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:
{
"transaction": "base64-encoded-solana-transaction",
"networkId": "solana:mainnet",
"derivationIndex": 0,
"confirmed": false
}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:
{
"message": "Message to sign",
"networkId": "solana:mainnet",
"derivationIndex": 0
}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:
{
"chainId": 1,
"to": "0xRecipientAddress",
"value": "0x38D7EA4C68000",
"derivationIndex": 0,
"confirmed": false
}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:
{
"message": "Message to sign",
"chainId": 1,
"derivationIndex": 0
}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:
{
"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
}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:
{
"chainId": 8453,
"tokenAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"spenderAddress": "0x0000000000001ff3684f28c67538d4d072c22734"
}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 supportedto: Recipient — Solana base58 address or EVM 0x-prefixed addressamount: 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 previewExample (SOL):
{ "networkId": "solana:mainnet", "to": "recipient-address", "amount": "0.1", "amountUnit": "ui" }Example (ETH on Base):
{ "networkId": "eip155:8453", "to": "0xRecipient", "amount": "0.01", "amountUnit": "ui" }Example (ERC-20 USDC on Ethereum):
{
"networkId": "eip155:1",
"to": "0xRecipient",
"tokenMint": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"amount": "100",
"amountUnit": "ui",
"decimals": 6
}Before Transfer Checklist:
0x)get_token_balances)decimals value is correctget_token_allowanceFetch 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 contractbuyTokenIsNative: Buy the native tokenbuyTokenMint: Token to buy — Solana mint or EVM 0x contractamount: Swap amountamountUnit: "ui" for token units, "base" for atomic units (default: "base")exactOut: If true, amount is the buy amount instead of sell amountslippageTolerance: Max slippage in percent (0-100)execute: Sign and send immediately after the user approves the quote. Default: falsederivationIndex: Account derivation index (default: 0)quoteApiUrl: Phantom-compatible API override. Leave unset for normal use.Example (Solana — sell SOL, buy USDC):
{
"sellChainId": "solana:mainnet",
"sellTokenIsNative": true,
"buyTokenMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "0.5",
"amountUnit": "ui",
"slippageTolerance": 1,
"execute": true
}Example (EVM — sell ETH, buy USDC on Base):
{
"sellChainId": "eip155:8453",
"sellTokenIsNative": true,
"buyTokenMint": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1000000000000000000",
"slippageTolerance": 1,
"execute": true
}Example (Cross-chain quote — SOL → ETH, returns steps only):
{
"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 approvalget_token_allowance when you need to check whether the sell token requires an ERC-20 approvalsteps and requiredApprovals in the responseexecute: trueAnalyze 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:
{
"phase": "analyze"
}The plugin also exposes Phantom-backed Hyperliquid perp tools:
get_perp_marketsget_perp_accountget_perp_positionsget_perp_ordersget_perp_trade_historydeposit_to_hyperliquidopen_perp_positionclose_perp_positioncancel_perp_orderupdate_perp_leveragetransfer_spot_to_perpswithdraw_from_perpsUse the read-only perp tools first to inspect markets, balances, positions, and open orders before any write action.
get_connection_status first; if not connected, call get_wallet_addresses to trigger authenticationget_token_balances to verify the user has sufficient funds (including ~0.000005 SOL for fees)get_token_allowance for EVM approval-sensitive flows when relevantsend_solana_transaction, send_evm_transaction, and transfer_tokens, do the simulation call first and only then the confirmed: true execution calltransfer_tokens with confirmed: true, send_*_transaction with confirmed: true, or buy_token with execute: true)get_wallet_addresses, sign_solana_message, sign_evm_personal_message, simulate_transaction, send_solana_transaction, send_evm_transaction, etc.Critical: Confirmation Before Execution
For transfer_tokens, buy_token with execute: true, send_solana_transaction, send_evm_transaction, pay_api_access, and all perp write tools:
For send_solana_transaction, send_evm_transaction, and transfer_tokens, always use the built-in simulation step first unless the user explicitly wants to skip it and understands the risk.
Address Validation:
Amount Verification:
"ui" units (user-friendly) and "base" units (atomic)Transaction Explanation:
Error Handling:
© phantom, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in packages/phantom-openclaw-plugin/skills/phantom-wallet of phantom/phantom-connect-sdk.
Open the folder on GitHubat commit daa18ef
Phantom Wallet next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Phantom Wallet this skillphantom/phantom-connect-sdk | 162 | — | ~3.5k | Automated safety check: Pass | MIT | |
| NEAR Intents Swap Integrationinternet-court/internet-court-skill | 6.4k | 2 repos | ~939 | Automated safety check: Pass | Custom licence | |
| Swapper Depositswapperfinance/swapper-toolkit | 852 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Minara Crypto Trading and WalletMinara-AI/minara-skills | 356 | — | ~5.7k | Automated safety check: Pass | None | |
| Gmgn TokenGMGNAI/gmgn-skills | 601 | 1 repos | ~10k | Automated safety check: Notes | MIT | |
| Alchemy Agentic Gatewaymoonpay/skills | 113 | — | ~2.1k | Automated safety check: Notes | MIT |
internet-court/internet-court-skill
Builds cross-chain token swaps and bridge flows with the NEAR Intents 1Click API: quotes, deposit addresses, per-chain deposits and status polling.
swapperfinance/swapper-toolkit
Deposit and bridge funds into a wallet or protocol using Swapper Finance.
Minara-AI/minara-skills
Drives the Minara CLI for crypto swaps, perps, limit orders, wallet transfers, deposits and withdrawals, plus AI market analysis.
GMGNAI/gmgn-skills
Research any crypto or meme token by address — real-time price, market cap, liquidity, holder list, trader list, top Smart Money and KOL positions, security audit (honeypot, rug pull risk, dev…
moonpay/skills
A skill your agent uses when accessing Alchemy APIs for RPC calls, token balances, NFT metadata, asset transfers, transaction simulation, or Alchemy-specific features.
trustwallet/tw-agent-skills
Trust Wallet open-source libraries — Wallet Core (HD wallets, address derivation, tx signing in Swift/Kotlin/TypeScript/Go for 140+ chains), Web3 Provider (dApp connection for…
phantom/phantom-connect-sdk
Scaffold a new CLI action for this SDK repository. An agent skill from phantom/phantom-connect-sdk.
Phantom wallet connected. An agent skill from phantom/phantom-connect-sdk. Phantom Wallet is an agent skill from phantom/phantom-connect-sdk. Phantom wallet connected.
Run `npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a claude-code`. Or copy the skill folder (packages/phantom-openclaw-plugin/skills/phantom-wallet in phantom/phantom-connect-sdk) into .claude/skills/phantom-wallet in your project. Claude Code loads it when a task matches its description.
Run `npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a codex`. Or copy the skill folder (packages/phantom-openclaw-plugin/skills/phantom-wallet in phantom/phantom-connect-sdk) into .agents/skills/phantom-wallet in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add phantom/phantom-connect-sdk --skill phantom-wallet -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/phantom-wallet, .gemini/skills/phantom-wallet, .github/skills/phantom-wallet and .opencode/skills/phantom-wallet in your project.
SKILL.md names no scripts, command-line tools or credentials: Phantom Wallet is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Phantom Wallet is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Phantom Wallet: NEAR Intents Swap Integration (internet-court/internet-court-skill, 6.4k stars), Swapper Deposit (swapperfinance/swapper-toolkit, 852 stars), Minara Crypto Trading and Wallet (Minara-AI/minara-skills, 356 stars) and Gmgn Token (GMGNAI/gmgn-skills, 601 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
phantom (a GitHub organization) maintains it in phantom/phantom-connect-sdk, which has 162 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 5, 2026.
Source: phantom/phantom-connect-sdk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.