リファレンス

エンドポイント

GET /v1/wallets/{address}/history

そのウォレットのすべての売買取引を返します。

リクエスト

curl -N "https://veltrabot.com/v1/wallets/{address}/history" \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンス

デフォルトの呼び出しでは履歴を NDJSON でストリーミングします。1 行につき 1 つの JSON オブジェクトで、取引のバッチは取得された瞬間に { "trades": [...] } として届きます。そのため大きなウォレットも、開いたままの 1 本の接続の上で追加の呼び出しなしに段階的に埋まっていきます。最終行の { "complete": true, "tradeCount": ..., "wallet": ..., "firstTrade": ... } がストリームの終了を示します。

{"trades":[{"signature":"43C6...aY1Ve2X","side":"sell","token":"Benny","tokenMint":"9xY2...pump","amountSol":0.0448,"amount":152340.12,"dex":"Pump.fun","blockTime":"2026-07-19T07:37:17+00:00"}, ...],"cursor":"8kQ2mZ...f0X"}
{"trades":[ ...取得され次第、さらに取引が続きます... ],"cursor":"pW3nZ2...Kd9"}
{"complete":true,"tradeCount":354,"wallet":"BtDyZ4EF...AAu9","firstTrade":"2026-07-12T07:39:02+00:00"}

各取引には amountSol(その取引の SOL 建て価値)と amount(動いたトークン数量)、さらに tokenMint が含まれます。トークンのシンボルは重複しうるため、mint アドレスがトークンごとの安定したキーになります。これらを組み合わせれば取得原価と実現 損益を計算できます。取引ごとに値を確定できない場合、いずれの数値フィールドも null になることがあります。

レスポンスは 1 行ずつ読んでください。各行の trades を積み上げ、complete を含む行に到達したら止めます。ほとんどのウォレットはこの 1 回の呼び出しで全件ストリーミングされます。約 55 秒以内に終わらない大きなウォレットは complete: falsecursor で終了し、残りはバックグラウンドで読み込まれ続けます。

中断と再開: いつでも接続を閉じてストリームを止められます(AbortController や Ctrl-C など)。すべてのバッチ行に cursor が含まれるため、最後に受け取った cursor を ?cursor= に指定して新しいリクエストを開始すれば(limit なし)、まさにその地点からストリームが再開します。

ページング

ストリームより個別の JSON ページのほうがよい場合は、limit を渡してください。各呼び出しが NDJSON ではなく通常の JSON ページを返します。tradeslimit 行に制限され(上限なし)、次のページ用の cursor が付きます。受け取った cursor をそのまま送り返して次のページを取得してください。中身を解釈したり変更したりしないでください。レスポンスから cursor が消えるまで辿ります。これは completetrue のときにのみ起こります。

このモードを選ぶのは limit です。cursor はあるが limit がないリクエストは NDJSON の ストリーム を再開するため、ページングで辿る場合はすべてのページに limit を含めてください。

limit は課金される範囲を制限します。 ライブ取得量に上限を設けるため、?limit=100 は 100 件だけ取得して 100 件を利用量に計上し、ウォレットの全履歴を先にインデックスすることはありません。

completefalse の間、totalPages は省略されます。 limit が取得を早期に止めるため、走査が終わるまでウォレットの実際の規模は分からず、途中の tradeCount はウォレットの総数ではなく「これまでに取得した取引数」を意味します。誤ったページ数を報告するくらいならフィールドごと省く、という判断です。cursor が無くなるまで辿ってください。completetrue になれば、tradeCounttotalPages はどちらも完全な履歴を表します。

すべての取引は利用量に一度だけ計上されます。cursor でウォレットを辿る際に、すでに取得済みの取引を読み直しても二重に課金されることはありません。

curl "https://veltrabot.com/v1/wallets/{address}/history?limit=100" \
  -H "Authorization: Bearer YOUR_API_KEY"

curl "https://veltrabot.com/v1/wallets/{address}/history?limit=100&cursor=8kQ2mZ3rV9...tLf0X" \
  -H "Authorization: Bearer YOUR_API_KEY"

チェーン

この エンドポイント は Solana、主要な EVM チェーン、Tron に対応しています。?chain=<slug> を追加して選択します。既定値は sol なので、既存の Solana 向け呼び出しはそのままです。ウォレットアドレスはチェーンのアドレス体系に対して検証されます。Solana は base58、EVM チェーンは 0x…、Tron は T… です。Solana 以外のチェーンでは、amountSol は SOL ではなくネイティブトークンの数量(ETH/BNB/TRX など)を保持します。

チェーン?chain=アドレスステータス
Solanasolbase58提供中
Ethereumeth0x… (EVM)提供中
Basebase0x… (EVM)提供中
BSCbsc0x… (EVM)提供中
TrontronT… (Tron)提供中
Hyperliquidhyperevm0x… (EVM)提供中
Monadmonad0x… (EVM)提供中
Robinhoodrobinhood0x… (EVM)提供中

サポート