介绍
# Solana Skill
使用 Helius 基础设施进行全面的 Solana 区块链交互。
## 先决条件
1. **Helius API Key** — 在 https://dashboard.helius.dev/signup 免费获取 2. 将密钥存储在 `~/.config/solana-skill/config.json` 中: ```json { "heliusApiKey": "your-api-key", "network": "mainnet-beta" } ```
## 核心功能
### 钱包管理 - 创建新钱包(密钥对生成) - 导入现有钱包(私钥或助记词) - 列出受管理的钱包 - 安全密钥存储(静态加密)
### 余额与资产 - 检查 SOL 余额 - 获取所有代币余额(SPL 代币) - 查看 NFT 和压缩 NFT - 投资组合估值(通过 DAS API)
### 交易 - 发送 SOL - 发送 SPL 代币 - 交易历史(增强型,易读) - 优先费用估算
### 交换(Jupiter) - 获取交换报价 - 执行代币交换 - 滑点保护
### 监控 - 监控地址活动 - 交易通知
## 快速参考
### 检查余额 ```typescript import { createHelius } from 'helius-sdk';
const helius = createHelius({ apiKey: 'YOUR_KEY' }); const assets = await helius.getAssetsByOwner({ ownerAddress: 'WALLET_ADDRESS', displayOptions: { showFungible: true, showNativeBalance: true } }); ```
### 发送 SOL ```typescript import { Connection, Keypair, SystemProgram, Transaction, sendAndConfirmTransaction, LAMPORTS_PER_SOL } from '@solana/web3.js';
const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=YOUR_KEY'); const tx = new Transaction().add( SystemProgram.transfer({ fromPubkey: sender.publicKey, toPubkey: recipientPubkey, lamports: amount * LAMPORTS_PER_SOL }) ); await sendAndConfirmTransaction(connection, tx, [sender]); ```
### Jupiter 交换 ```typescript // 1. Get quote const quote = await fetch(`https://api.jup.ag/swap/v1/quote?inputMint=${inputMint}&outputMint=${outputMint}&amount=${amount}`);
// 2. Build swap transaction const swap = await fetch('https://api.jup.ag/swap/v1/swap', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ quoteResponse: await quote.json(), userPublicKey: wallet.publicKey.toString() }) });
// 3. Sign and send ```
## API 端点
| 服务 | 基础 URL | |---------|----------| | Helius RPC | `https://mainnet.helius-rpc.com/?api-key=KEY` | | Helius Sender | `https://sender.helius-rpc.com/fast` | | Jupiter Quote | `https://api.jup.ag/swap/v1/quote` | | Jupiter Swap | `https://api.jup.ag/swap/v1/swap` |
## 安全
**关键规则:** - 切勿记录或显示私钥 - 使用加密存储来保存密钥 - 交易前验证所有地址 - 设置合理的滑点限制(默认:1%) - 大额交易始终与用户确认
详细的安全实践请参阅 [references/security.md](references/security.md)。
## 详细参考
- [references/helius-api.md](references/helius-api.md) — 完整的 Helius API 参考 - [references/security.md](references/security.md) — 钱包安全最佳实践 - [references/jupiter.md](references/jupiter.md) — Jupiter 交换集成
## 常见代币地址
| 代币 | 铸造地址 | |-------|-------------| | SOL | `So11111111111111111111111111111111111111112` (wrapped) | | USDC | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | | USDT | `Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB` | | BONK | `DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263` |
## 错误处理
常见错误及解决方案: - **SOL 余额不足**:需要 SOL 用于租金 + 交易费用 - **未找到代币账户**:发送代币前需创建 ATA - **交易过大**:减少指令或使用地址查找表 - **区块哈希已过期**:使用新的区块哈希重试