钱包
获取钱包历史记录
通过分页检索Solana钱包的完整交易历史。
GET
/
v1
/
wallet
/
{wallet}
/
history
获取交易历史
curl --request GET \
--url 'https://api.helius.xyz/v1/wallet/{wallet}/history?api-key='import requests
url = "https://api.helius.xyz/v1/wallet/{wallet}/history?api-key="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.helius.xyz/v1/wallet/{wallet}/history?api-key=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.helius.xyz/v1/wallet/{wallet}/history?api-key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.helius.xyz/v1/wallet/{wallet}/history?api-key="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.helius.xyz/v1/wallet/{wallet}/history?api-key=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helius.xyz/v1/wallet/{wallet}/history?api-key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"signature": "5wHu1qwD7Jsj3xqWjdSEJmYr3Q5f5RjXqjqQJ7jqEj7jqEj7jqEj7jqEj7jqEj7jqE",
"slot": 250000000,
"fee": 0.000005,
"feePayer": "GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz",
"balanceChanges": [
{
"mint": "So11111111111111111111111111111111111111112",
"amount": -0.05,
"decimals": 9
}
],
"timestamp": 1704067200,
"error": null
}
],
"pagination": {
"hasMore": true,
"nextCursor": "5wHu1qwD7Jsj3xqWjdSEJmYr3Q5f5RjXqjqQJ7jqEj7jqEj7jqEj7jqEj7jqEj7jqE"
}
}{
"error": "无效的钱包地址",
"code": 400,
"details": "'invalid-address'不是有效的Solana地址"
}{
"error": "需要API密钥。通过?api-key=xxx或X-Api-Key头传递",
"code": 401
}{
"error": "RATE_LIMIT_EXCEEDED",
"code": 429,
"details": "请求过多。请在 2 秒后重试。"
}{
"error": "INTERNAL_ERROR",
"code": 500,
"details": "发生意外错误。请重试。"
}每个请求消耗100个积分。
请求参数
string
默认值:"GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz"
必填
Solana 钱包地址(base58 编码)
number
默认值:"100"
每次请求的最大交易数
string
获取指定签名之前的交易(使用之前响应中的
pagination.nextCursor)string
获取指定签名之后的交易(用于升序分页)
string
按交易类型筛选。可用类型:SWAP,TRANSFER,NFT_SALE,NFT_BID,NFT_LISTING,
NFT_MINT,NFT_CANCEL_LISTING,TOKEN_MINT,BURN,COMPRESSED_NFT_MINT,COMPRESSED_NFT_TRANSFER,
COMPRESSED_NFT_BURN,CREATE_STORE,WHITELIST_CREATOR,ADD_TO_WHITELIST,REMOVE_FROM_WHITELIST,
AUCTION_MANAGER_CLAIM_BID,EMPTY_PAYMENT_ACCOUNT,UPDATE_PRIMARY_SALE_METADATA,ADD_TOKEN_TO_VAULT,
ACTIVATE_VAULT,INIT_VAULT,INIT_BANK,INIT_STAKE,MERGE_STAKE,SPLIT_STAKE,CREATE_AUCTION_MANAGER,
START_AUCTION,CREATE_AUCTION_MANAGER_V2,UPDATE_EXTERNAL_PRICE_ACCOUNT,EXECUTE_TRANSACTION
SWAPTRANSFERNFT_SALENFT_BIDNFT_LISTINGNFT_MINTNFT_CANCEL_LISTINGTOKEN_MINTBURNCOMPRESSED_NFT_MINTCOMPRESSED_NFT_TRANSFERCOMPRESSED_NFT_BURNCREATE_STOREWHITELIST_CREATORADD_TO_WHITELISTREMOVE_FROM_WHITELISTAUCTION_MANAGER_CLAIM_BIDEMPTY_PAYMENT_ACCOUNTUPDATE_PRIMARY_SALE_METADATAADD_TOKEN_TO_VAULTACTIVATE_VAULTINIT_VAULTINIT_BANKINIT_STAKEMERGE_STAKESPLIT_STAKECREATE_AUCTION_MANAGERSTART_AUCTIONCREATE_AUCTION_MANAGER_V2UPDATE_EXTERNAL_PRICE_ACCOUNTEXECUTE_TRANSACTION
string
默认值:"balanceChanged"
过滤涉及钱包拥有的代币账户的交易。
balanceChanged(推荐):包括更改代币余额的交易,过滤垃圾none:仅直接引用钱包的交易all:包括代币账户的所有交易(可能包括垃圾)nonebalanceChangedall
授权
ApiKeyQueryApiKeyHeader
作为查询参数传递的API密钥
路径参数
Solana 钱包地址(base58 编码)
Pattern:
^[1-9A-HJ-NP-Za-km-z]{32,44}$查询参数
每个请求的最大交易数量
必填范围:
1 <= x <= 100获取此签名之前的交易(使用之前响应的pagination.nextCursor)
获取此签名之后的交易(用于升序分页)
按交易类型过滤。可用类型:SWAP, TRANSFER, NFT_SALE, NFT_BID, NFT_LISTING, NFT_MINT, NFT_CANCEL_LISTING, TOKEN_MINT, BURN, COMPRESSED_NFT_MINT, COMPRESSED_NFT_TRANSFER, COMPRESSED_NFT_BURN, CREATE_STORE, WHITELIST_CREATOR, ADD_TO_WHITELIST, REMOVE_FROM_WHITELIST, AUCTION_MANAGER_CLAIM_BID, EMPTY_PAYMENT_ACCOUNT, UPDATE_PRIMARY_SALE_METADATA, ADD_TOKEN_TO_VAULT, ACTIVATE_VAULT, INIT_VAULT, INIT_BANK, INIT_STAKE, MERGE_STAKE, SPLIT_STAKE, CREATE_AUCTION_MANAGER, START_AUCTION, CREATE_AUCTION_MANAGER_V2, UPDATE_EXTERNAL_PRICE_ACCOUNT, EXECUTE_TRANSACTION
可用选项:
SWAP, TRANSFER, NFT_SALE, NFT_BID, NFT_LISTING, NFT_MINT, 取消NFT列表, 代币发行, 销毁, 压缩NFT铸造, 压缩NFT转移, 压缩NFT销毁, 创建商店, 白名单创建者, 添加至白名单, 从白名单移除, 拍卖经理认领出价, 清空付款账户, 更新主要销售元数据, 添加代币到保险库, 激活保险库, 初始化保险库, 初始化银行, 初始化抵押, 合并抵押, 拆分抵押, 创建拍卖经理, 开始拍卖, 创建拍卖经理V2, 更新外部价格账户, 执行交易 过滤涉及钱包拥有的代币账户的交易。
balanceChanged(推荐):包含更改代币余额的交易,过滤垃圾信息none:仅直接引用钱包的交易all:包括代币账户的所有交易(可能包含垃圾信息)
可用选项:
none, balanceChanged, all 此页面对您有帮助吗?
⌘I
获取交易历史
curl --request GET \
--url 'https://api.helius.xyz/v1/wallet/{wallet}/history?api-key='import requests
url = "https://api.helius.xyz/v1/wallet/{wallet}/history?api-key="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.helius.xyz/v1/wallet/{wallet}/history?api-key=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.helius.xyz/v1/wallet/{wallet}/history?api-key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.helius.xyz/v1/wallet/{wallet}/history?api-key="
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.helius.xyz/v1/wallet/{wallet}/history?api-key=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helius.xyz/v1/wallet/{wallet}/history?api-key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"signature": "5wHu1qwD7Jsj3xqWjdSEJmYr3Q5f5RjXqjqQJ7jqEj7jqEj7jqEj7jqEj7jqEj7jqE",
"slot": 250000000,
"fee": 0.000005,
"feePayer": "GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz",
"balanceChanges": [
{
"mint": "So11111111111111111111111111111111111111112",
"amount": -0.05,
"decimals": 9
}
],
"timestamp": 1704067200,
"error": null
}
],
"pagination": {
"hasMore": true,
"nextCursor": "5wHu1qwD7Jsj3xqWjdSEJmYr3Q5f5RjXqjqQJ7jqEj7jqEj7jqEj7jqEj7jqEj7jqE"
}
}{
"error": "无效的钱包地址",
"code": 400,
"details": "'invalid-address'不是有效的Solana地址"
}{
"error": "需要API密钥。通过?api-key=xxx或X-Api-Key头传递",
"code": 401
}{
"error": "RATE_LIMIT_EXCEEDED",
"code": 429,
"details": "请求过多。请在 2 秒后重试。"
}{
"error": "INTERNAL_ERROR",
"code": 500,
"details": "发生意外错误。请重试。"
}