Documentation Index
Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
Use this file to discover all available pages before exploring further.
Helius 提供什么?
Helius 提供 REST 和 JSON-RPC API,用于构建任何 Solana 应用程序——从分析平台和 DeFi 仪表板到交易机器人和合规工具。查询代币余额、获取 NFT 元数据、流式传输实时区块链事件、发送优化交易,并使用单一 API 密钥监控钱包。本指南将带您在几分钟内完成第一次 API 调用和一个可运行的应用程序。
获取您的 API 密钥
转到 API 密钥 部分并复制您的密钥。此密钥使您能够访问所有 Helius API,包括 RPC 节点、DAS API 和增强的交易数据。性能提示:使用我们的 Gatekeeper (Beta) 端点:https://beta.helius-rpc.com 代替 https://mainnet.helius-rpc.com 以降低延迟。您的 API 密钥适用于两者。了解更多 → 进行您的第一次 API 调用
让我们从一个实用的例子开始:从钱包中获取 NFT。我们将使用 getAssetsByOwner 方法查询由 86xCn…o2MMY 拥有的资产(Solana 联合创始人 Anatoly Yakovenko 的钱包)。这里发生了什么? DAS API 允许您通过一次调用查询压缩和标准 NFT。注意响应如何包含元数据、图片 URL 和所有权信息——构建丰富用户体验所需的所有数据。 理解响应
太好了!您已成功获取 NFT 数据。响应包括:
- 资产 ID:每个 NFT 的唯一标识符
- 元数据:名称、符号、描述和属性
- 内容:图片 URL 和文件信息
- 所有权:当前所有者和权威信息
使用代码构建
现在让我们在一个真实的应用程序中实现这一点。我们将创建一个简单的NFT投资组合查看器,您可以在此基础上进行扩展。
设置您的项目
mkdir solana-nft-viewer
cd solana-nft-viewer
npm init -y
npm install node-fetch
创建NFT投资组合查看器
const fetch = require('node-fetch');
class NFTPortfolioViewer {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseUrl = 'https://mainnet.helius-rpc.com';
}
async fetchNFTsByOwner(ownerAddress, limit = 10) {
try {
const response = await fetch(`${this.baseUrl}/?api-key=${this.apiKey}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
jsonrpc: '2.0',
id: '1',
method: 'getAssetsByOwner',
params: {
ownerAddress,
page: 1,
limit,
displayOptions: {
showFungible: false,
showNativeBalance: false,
},
},
}),
});
const data = await response.json();
if (data.error) {
throw new Error(data.error.message);
}
return data.result;
} catch (error) {
console.error('Error fetching NFTs:', error.message);
throw error;
}
}
displayNFTPortfolio(nfts) {
console.log('\n🖼️ NFT Portfolio Summary');
console.log('========================');
console.log(`Total NFTs: ${nfts.total}`);
console.log(`Showing: ${nfts.items.length} items\n`);
nfts.items.forEach((nft, index) => {
console.log(`${index + 1}. ${nft.content?.metadata?.name || 'Unnamed NFT'}`);
console.log(` Collection: ${nft.grouping?.[0]?.group_value || 'Individual'}`);
console.log(` Compressed: ${nft.compression?.compressed ? 'Yes' : 'No'}`);
console.log(` Image: ${nft.content?.files?.[0]?.uri || 'No image'}`);
console.log(` ID: ${nft.id}\n`);
});
}
async getRandomNFT(ownerAddress) {
const portfolio = await this.fetchNFTsByOwner(ownerAddress, 50);
if (portfolio.items.length === 0) {
console.log('No NFTs found for this address.');
return null;
}
const randomIndex = Math.floor(Math.random() * portfolio.items.length);
return portfolio.items[randomIndex];
}
}
// Usage example
async function main() {
const viewer = new NFTPortfolioViewer('YOUR_API_KEY');
// Anatoly's wallet address
const walletAddress = '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY';
console.log('🚀 Fetching NFT portfolio...');
try {
// Get full portfolio overview
const portfolio = await viewer.fetchNFTsByOwner(walletAddress);
viewer.displayNFTPortfolio(portfolio);
// Get a random NFT for featured display
console.log('🎲 Featured Random NFT:');
console.log('=====================');
const randomNFT = await viewer.getRandomNFT(walletAddress);
if (randomNFT) {
console.log(`Name: ${randomNFT.content?.metadata?.name}`);
console.log(`Description: ${randomNFT.content?.metadata?.description || 'No description'}`);
console.log(`Image: ${randomNFT.content?.files?.[0]?.uri}`);
}
} catch (error) {
console.error('Failed to fetch NFT data:', error.message);
}
}
main();
添加您的 API 密钥
将 YOUR_API_KEY 替换为您从 Helius 仪表板获取的实际 API 密钥。
成功! 🎉
您已经构建了您的第一个Solana应用程序!输出显示:
- 钱包中的NFT总数
- 个别NFT详细信息,包括压缩状态
- 集合信息
- 一个精选的随机NFT
您学到了什么:
- 如何构建对Helius的API调用
- 使用DAS API响应格式
- 处理压缩与标准NFT
- 为NFT操作构建可重用代码
进一步扩展
现在您已经了解了基础知识,探索这些高级功能:
发送交易
学习交易优化、优先费用和智能路由,以实现可靠的执行。
高级NFT操作
按属性搜索NFT,获取集合统计数据,并大规模处理代币元数据。
实时数据流
使用gRPC或增强的WebSockets以亚秒级延迟流式传输实时区块链数据。
使用Webhook自动化
为钱包活动、NFT销售和自定义链上事件设置智能通知。
接下来是什么?
您已经成功使用 Helius 构建了您的第一个 Solana 应用程序!以下是一些扩展项目的想法:
- 添加钱包连接:与钱包集成
- 构建用户界面:创建一个 React/Vue 前端来显示投资组合
- 添加筛选:按集合、特征或铸造日期搜索
- 实时更新:使用 WebSockets 显示实时投资组合变化
- 分析:跟踪投资组合价值和 NFT 价格历史