跳转到主要内容

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.

Beta: 钱包API目前处于测试阶段。API和响应格式可能会改变。

概述

钱包身份端点识别Solana上的已知钱包地址,包括中心化交易所、DeFi协议、机构和其他公认的实体。这对于合规、分析和显示已知地址的人类可读名称非常有用。 单个和批量端点都接受SNS .sol以及ANS自定义TLD(例如.bonk.poor.abc),除原始Solana地址以外。域解析仅限主网。

API参考

查看钱包身份查找的详细API文档
该端点使用同样的身份系统,支持Orb,我们的Solana区块浏览器。我们的数据库包括12500多个标签(人类可读的主要名称,包括2250多个程序)和1070万个标签(分类属性如“Binance存款地址”或“Seeker Phone”),并在不断增长。

使用此功能的时机

当您需要使用钱包身份API时:
  • 识别交易所钱包:确定钱包是否属于Binance、Coinbase、Kraken等。
  • 跟踪协议活动:识别DeFi协议钱包和资金地址
  • 合规与反洗钱:标记涉及已知实体的交易
  • 分析:在您的数据管道中分类钱包类型
  • 用户体验:显示“发送到Binance 1”而不是原始地址
  • 批量处理:高效查找数百个地址

快速入门

单一钱包查询

查询单个钱包地址的身份信息:
const getWalletIdentity = async (address) => {
  const url = `https://api.helius.xyz/v1/wallet/${address}/identity?api-key=YOUR_API_KEY`;

  const response = await fetch(url);
  if (!response.ok) {
    if (response.status === 404) {
      console.log("No identity found for this address");
      return null;
    }
    throw new Error(`HTTP error! status: ${response.status}`);
  }

  const identity = await response.json();
  console.log(`Found: ${identity.name} (${identity.category})`);
  return identity;
};

// Example: Binance wallet
getWalletIdentity("HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664");

根据域名查询

你也可以直接传递SNS .sol域或ANS自定义TLD —— 终端节点会解析域并返回所有者地址的身份信息:
// Works identically — the endpoint resolves the domain first.
const identity = await getWalletIdentity("toly.sol");

// ANS custom TLD
await getWalletIdentity("miester.bonk");
单一终端响应是解析地址的标准身份对象——无inputDomain标记。如果需要将输入与输出相关联(例如,同时查询多个域名时),请使用批量终端。
域名解析仅限主网。在开发网/测试网上,如果将域名输入到此终端,则返回400。积极解析最多缓存2小时,因此最近转移的域可能会短暂解析为之前所有者的身份。

批量查询(最多100个条目)

在单次请求中查询多个条目以获得更好的性能。每个条目可以是地址或域名:
const batchIdentityLookup = async (addresses) => {
  const url = "https://api.helius.xyz/v1/wallet/batch-identity?api-key=YOUR_API_KEY";

  const response = await fetch(url, {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({ addresses })
  });

  if (!response.ok) {
    throw new Error(`HTTP error! status: ${response.status}`);
  }

  const identities = await response.json();
  return identities;
};

// Example: Mix addresses and domains in a single request
const addresses = [
  "HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664", // Binance (address)
  "toly.sol",                                      // SNS domain
  "miester.bonk"                                   // ANS custom TLD
];

batchIdentityLookup(addresses).then(identities => {
  identities.forEach(identity => {
    if (identity.unresolved) {
      console.log(`${identity.inputDomain}: could not be resolved`);
      return;
    }
    const label = identity.inputDomain
      ? `${identity.inputDomain}${identity.address}`
      : identity.address;
    console.log(`${label}: ${identity.name}`);
  });
});

响应格式

成功响应

{
  "address": "HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664",
  "type": "exchange",
  "name": "Binance 1",
  "category": "Centralized Exchange",
  "tags": ["Centralized Exchange"]
}

批处理:已解析域名条目

在批处理响应中,任何输入为域名的条目都会携带一个额外的 inputDomain 字段,以便您将响应与原始请求进行关联:
{
  "address": "7v91N7iZ9mNicL8WfG6cgSCKyRXydQjLh6UYBWwm6y1Q",
  "type": "wallet",
  "name": "toly",
  "category": "Key Opinion Leader",
  "tags": ["Key Opinion Leader"],
  "inputDomain": "toly.sol"
}

批处理:未解析域名条目

当批处理请求中的域名无法解析时,批处理不会失败——该条目将在原位返回,并附带 address: nulltype: "unknown"unresolved: true。请求顺序保持不变。
{
  "address": null,
  "type": "unknown",
  "inputDomain": "nonexistent-xyz.sol",
  "unresolved": true
}

404 响应(未知钱包或无法解析的域名)

在单个端点上,如果钱包没有身份条目域名输入无法解析,将返回404:
{
  "error": "No identity information available for this address",
  "code": 404
}
{
  "error": "Domain 'nonexistent-xyz.sol' could not be resolved",
  "code": 404
}

身份类别

钱包可以根据Orb身份数据库进行以下分类:

账户标签类型

类别描述示例
中心化交易所CEX钱包和热钱包Binance 1, Coinbase 1, Kraken, OKX Exchange 1, Bybit Hot Wallet
跨链桥桥协议地址Wormhole Bridge, AllBridge, Portal Bridge, deBridge
DeFiDeFi协议地址Jupiter, Raydium, Orca, Marinade Finance, Kamino
关键意见领袖知名个人和影响者Anatoly Yakovenko, Raj Gokal
做市商做市公司Jump Trading, Wintermute, GSR Markets
交易公司自营交易公司Alameda Research, DRW Trading
验证器验证器和权益池地址Coinbase Validator, Jito Validator, Figment Validator
财政部项目和协议财库Marinade Treasury, Helium Treasury, Solana Foundation Treasury
DAO去中心化自治组织Mango DAO, Grape DAO, MonkeDAO Treasury
NFTNFT市场和项目Magic Eden, Tensor, OpenSea Solana, DeGods Treasury
权益池流动权益池地址Marinade Stake Pool, Jito Stake Pool, BlazeStake
多重签名多重签名钱包Squads Multisig, Solana Foundation Multisig
预言机价格数据和预言机提供商Pyth Network, Switchboard Oracle, Chainlink Solana
游戏游戏和GameFi项目Star Atlas, Aurory, Genopets Treasury
支付支付处理器Solana Pay, Sphere, Helio Pay
工具开发工具和实用程序Phantom Wallet, Backpack, Solflare Wallet
空投空投分发地址Jupiter Airdrop, Pyth Airdrop Distributor
治理治理程序地址Realms Governance, SPL Governance
权限程序权限和管理员Token Program Authority, Metaplex Authority
JitoJito特定地址Jito Tip 1, Jito Tip 2, Jito MEV Payment
猫狗币猫狗币项目Bonk Treasury, Dogwifhat, Book of Meme
赌场和赌博赌博和赌场dAppStake.com Hot Wallet, Rollbit, DexSport
DePIN去中心化物理基础设施Helium Network, Render Network, Hivemapper
专有AMM定制AMM实现Phoenix DEX, GooseFX
Re-staking重权益协议Solayer, Fragmetric
保险库保险库和托管地址Solend Vault, Tulip Vault, Francium Vault
费用费用收集地址Jupiter Fee Collector, Raydium Fees
融资融资和ICO地址Token Sale Wallet, Fundraise Multisig
创世区块分发创世分发地址Solana Genesis Distribution
非流通供应非流通代币地址Team Vesting Wallet, Foundation Reserve
交易发送交易发送服务Jito Tip 1, Jito Tip 2, Helius Sender Tip 1
系统Solana系统程序System Program, Config Program
X402X402协议地址X402 Protocol
其他未分类的已知地址Various known wallets

恶意类别

类别描述示例
掠夺者、黑客与诈骗已知的漏洞利用和黑客地址Wormhole 掠夺者钱包, SagaDAO 黑客钱包, Mango 掠夺者
黑客已确认的黑客地址Solana Hack 2022, DeFi 协议黑客
拉盘者拉高出货的实施者Squid Game Token 拉盘者, 已知拉盘钱包
诈骗者已确认的诈骗地址假空投诈骗者, 网络钓鱼诈骗钱包
垃圾信息垃圾代币创建者垃圾代币创建者, 空投垃圾邮件者

程序类别

程序(智能合约)独立分类:
类别描述示例
交换代币交换协议Jupiter, Raydium, Orca
DeFi一般 DeFi 协议Drift, Mango
借贷借贷协议Solend, MarginFi
NFTNFT 市场Magic Eden, Tensor
质押质押程序Marinade, Jito
桥接跨链桥Wormhole, AllBridge
聚合器DEX 聚合器Jupiter Aggregator
永续合约永续期货Drift, Mango
预言机预言机提供者Pyth, Switchboard
启动板代币启动板Raydium Launchpad
治理治理程序SPL Governance
游戏或赌场游戏程序Star Atlas
预测市场预测市场Drift Predictions
支付支付协议Solana Pay
隐私隐私协议Elusiv
压缩状态压缩Bubblegum
基础设施核心基础设施Metaplex
工具开发者工具Clockwork
RWA现实世界资产Ondo Finance
DePIN去中心化基础设施Helium, Render
DeSci去中心化科学VitaDAO
空投空投程序Merkle distributors
Web3Web3 应用各种
原生Solana 原生程序System Program
专有 AMM自定义 AMM 设计Phoenix
交易狙击手交易机器人MEV bots
套利或三明治机器人MEV 和套利机器人Jito bundles
垃圾垃圾程序垃圾代币
其他未分类程序各种

用例

标记交易所存款

识别资金何时被发送到中心化交易所:
const checkIfExchange = async (address) => {
  try {
    const identity = await getWalletIdentity(address);
    if (identity && identity.category === "Centralized Exchange") {
      console.log(`Funds sent to ${identity.name}`);
      return true;
    }
  } catch (error) {
    // Not a known exchange
  }
  return false;
};

显示人类可读名称

在您的用户界面中以友好的名称显示而不是地址:
const getDisplayName = async (address) => {
  try {
    const identity = await getWalletIdentity(address);
    return identity ? identity.name : shortenAddress(address);
  } catch (error) {
    return shortenAddress(address);
  }
};

// Usage in UI
const displayName = await getDisplayName("HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664");
// Returns: "Binance 1" instead of "HXsKP...G664"

批量处理交易对手方

高效地识别交易列表中的所有对手方:
const identifyTransactionCounterparties = async (transactions) => {
  // Extract all unique addresses
  const addresses = [...new Set(
    transactions.map(tx => tx.counterparty)
  )];

  // Batch lookup (up to 100 at a time)
  const allIdentities = [];
  for (let i = 0; i < addresses.length; i += 100) {
    const chunk = addresses.slice(i, i + 100);
    const identities = await batchIdentityLookup(chunk);
    allIdentities.push(...identities);
  }

  // Create a map for quick lookup
  const identityMap = new Map(
    allIdentities.map(id => [id.address, id])
  );

  // Enrich transactions with identity info
  return transactions.map(tx => ({
    ...tx,
    counterpartyName: identityMap.get(tx.counterparty)?.name || "Unknown"
  }));
};

最佳实践

当查找多个地址时,总是使用批量端点 (POST /v1/wallet/batch-identity)。这比单独请求要快得多且更高效。
不是所有的钱包都会有身份信息。设计您的应用程序以处理404响应,并回退到显示原始地址。
身份数据不经常变化。缓存结果以减少API调用并提高性能。
批量端点每次请求最多支持100个地址。对于更大的数据集,请相应地分块您的请求。

常见错误

Error Code描述解决方案
400无效的钱包地址或域格式,或在非主网提供域输入验证输入是否为有效的 base58 Solana 地址或格式正确的域(例如 toly.sol),并确保您定位的是主网
401缺少或无效的API密钥检查您的API密钥是否包含在请求中
404未找到身份,或无法解析域单点端点仅—钱包没有身份条目,或域不存在。在批量请求中,无法解析的域将返回为 unresolved: true 条目而不是404
429超出速率限制减少请求频率或升级您的计划

需要帮助吗?

API 参考

查看详细的 API 规格和请求/响应架构

联系支持

获取我们团队的帮助