トークン残高の履歴を取得
過去のタイムスタンプ、日時、またはスロットで特定のトークンまたはネイティブSOLのウォレット残高を取得します。
curl --request GET \
--url 'https://api.helius.xyz/v1/wallet/{wallet}/balance-at?api-key='import requests
url = "https://api.helius.xyz/v1/wallet/{wallet}/balance-at?api-key="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.helius.xyz/v1/wallet/{wallet}/balance-at?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}/balance-at?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}/balance-at?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}/balance-at?api-key=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helius.xyz/v1/wallet/{wallet}/balance-at?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{
"wallet": "5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"isNative": false,
"balance": "284961463.392936",
"balanceRaw": "284961463392936",
"decimals": 6,
"requested": {
"time": 1736536800,
"slot": null,
"datetime": null
},
"asOf": {
"slot": 313000000,
"signature": "5Cyy7Mh9nVgFq3T8wJp2sKxR4dE6bA1uZoNcLrXmYqUpon",
"blockTime": 1736536794
}
}{
"error": "Exactly one of time, datetime, or slot must be provided",
"code": 400
}{
"error": "API key required. Pass via ?api-key=xxx or X-Api-Key header",
"code": 401
}{
"error": "Invalid wallet address",
"code": 400,
"details": "'invalid-address' is not a valid Solana address"
}{
"error": "RATE_LIMIT_EXCEEDED",
"code": 429,
"details": "Too many requests. Retry after 2 seconds."
}{
"error": "INTERNAL_ERROR",
"code": 500,
"details": "An unexpected error occurred. Please retry."
}{
"error": "UPSTREAM_ERROR",
"code": 502,
"details": "Upstream RPC request failed. Please retry."
}リクエストパラメータ
So11111111111111111111111111111111111111111を使用します。time、datetime、またはslotのいずれかを正確に1つ指定してください。2025-01-10(UTC真夜中)、2025-01-10 19:20:00、
2025-01-10T19:20:00(秒はオプション)、または明示的なタイムゾーンを持つもの
(2025-01-10T19:20:00Z、...+02:00)。明示的なタイムゾーンが含まれていない限りUTCとして解釈されます。 time、datetime、またはslotのいずれかを正確に1つ指定してください。time、datetime、またはslotのいずれかを正確に1つ指定してください。承認
クエリパラメータとして渡されるAPIキー
パスパラメータ
Solanaウォレットアドレス(base58エンコードされた)
^[1-9A-HJ-NP-Za-km-z]{32,44}$クエリパラメータ
トークンミントアドレス。ネイティブSOLの場合はSo11111111111111111111111111111111111111111を使用してください。
秒単位のUnixタイムスタンプ。この時間におけるバランスを返します。時間、日付時間、またはスロットのいずれか1つのみを提供してください。
x >= 0日付時間文字列。受け入れられる形式: 2025-01-10(UTC真夜中)、2025-01-10 19:20:00、2025-01-10T19:20:00(秒はオプション)、または明示的なタイムゾーン付き(2025-01-10T19:20:00Z, ...+02:00)。明示的なタイムゾーンがない場合はUTCとして解釈されます。 時間、日付時間、またはスロットのいずれか1つのみを提供してください。
スロット番号。このスロット時点でのバランスを返します。正確で決定的です。時間、日付時間、またはスロットのいずれか1つのみを提供してください。
x >= 0レスポンス
履歴残高を正常に取得しました
問い合わせたウォレットアドレスのエコー
"5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9"
問い合わせたミントのエコー(ネイティブの場合はSOL疑似ミント)
"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
結果がネイティブのSOLかどうか
false
人間が読める形式での金額(小数表記)文字列(大きな金額で精度が失われないようにするため、数値ではありません)。末尾のゼロは削除されます。
"284961463.392936"
最小単位での正確な金額(SOLの場合はラメポート単位)、文字列として
"284961463392936"
トークンの小数点以下の桁数(SOLの場合9)
6
クエリのエコー。日時が使用された場合、時間も解決済みのエポック秒数で設定され、UTC解釈が表示されます。
Show child attributes
Show child attributes
残高が読み取られた取引。リクエストされた時点以前またはその時点でウォレットに一致する取引がなかった場合は null — 残高は本当に0(ウォレットがその時点までトークンを保持していなかった)、エラーではありません。
Show child attributes
Show child attributes
このページは役に立ちましたか?
curl --request GET \
--url 'https://api.helius.xyz/v1/wallet/{wallet}/balance-at?api-key='import requests
url = "https://api.helius.xyz/v1/wallet/{wallet}/balance-at?api-key="
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.helius.xyz/v1/wallet/{wallet}/balance-at?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}/balance-at?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}/balance-at?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}/balance-at?api-key=")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.helius.xyz/v1/wallet/{wallet}/balance-at?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{
"wallet": "5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9",
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"isNative": false,
"balance": "284961463.392936",
"balanceRaw": "284961463392936",
"decimals": 6,
"requested": {
"time": 1736536800,
"slot": null,
"datetime": null
},
"asOf": {
"slot": 313000000,
"signature": "5Cyy7Mh9nVgFq3T8wJp2sKxR4dE6bA1uZoNcLrXmYqUpon",
"blockTime": 1736536794
}
}{
"error": "Exactly one of time, datetime, or slot must be provided",
"code": 400
}{
"error": "API key required. Pass via ?api-key=xxx or X-Api-Key header",
"code": 401
}{
"error": "Invalid wallet address",
"code": 400,
"details": "'invalid-address' is not a valid Solana address"
}{
"error": "RATE_LIMIT_EXCEEDED",
"code": 429,
"details": "Too many requests. Retry after 2 seconds."
}{
"error": "INTERNAL_ERROR",
"code": 500,
"details": "An unexpected error occurred. Please retry."
}{
"error": "UPSTREAM_ERROR",
"code": 502,
"details": "Upstream RPC request failed. Please retry."
}