curl --request GET \
--url https://api.lumenwipe.com/{network}/account/{address} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.lumenwipe.com/{network}/account/{address}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.lumenwipe.com/{network}/account/{address}', 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.lumenwipe.com/{network}/account/{address}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.lumenwipe.com/{network}/account/{address}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.lumenwipe.com/{network}/account/{address}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumenwipe.com/{network}/account/{address}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"address": "<string>",
"network": "mainnet",
"sequence": "<string>",
"nativeBalanceLumens": "<string>",
"dataEntries": [
{
"key": "<string>",
"value": "<string>"
}
],
"signers": [
{
"key": "<string>",
"weight": 123,
"type": "ed25519_public_key"
}
],
"thresholds": {
"low": 123,
"med": 123,
"high": 123
},
"numSubEntries": 123,
"numSponsoring": 123,
"sponsoredEntries": [
{
"kind": "account",
"owner": "<string>"
}
],
"sponsorshipEnumerationIncomplete": true,
"sponsoredBy": "<string>",
"authImmutable": true,
"trustlines": [
{
"asset": "<string>",
"balance": "<string>",
"authorized": true,
"issuer": "<string>",
"code": "<string>",
"limit": "<string>"
}
],
"openOffers": [
{
"id": "<string>",
"selling": "<string>",
"buying": "<string>",
"amount": "<string>",
"price": "<string>"
}
],
"poolShares": [
{
"poolId": "<string>"
}
],
"claimableBalances": [
{
"id": "<string>",
"asset": "<string>",
"amount": "<string>",
"claimants": [
{
"destination": "<string>",
"predicate": {
"type": "unconditional",
"predicates": "<array>",
"predicate": "<unknown>",
"absBeforeEpoch": "<string>",
"relBeforeSeconds": "<string>",
"deadlineEpoch": "<string>"
}
}
],
"sponsor": "<string>"
}
],
"subEntryMismatch": true,
"defiPositions": {
"address": "<string>",
"network": "mainnet",
"positions": [
{
"protocol": "blend",
"contractAddress": "<string>",
"usdValue": "<string>",
"positionType": "supply",
"assetAddress": "<string>",
"bTokenAmount": "<string>",
"display": {
"pool": "<string>",
"asset": "<string>",
"amount": "<string>",
"collateralAmount": "<string>",
"yieldPct": "<string>",
"yieldKind": "earned",
"detail": "<string>"
},
"wasmHash": "<string>",
"isBackstop": true
}
],
"unrecognizedPositions": [
{
"protocol": "blend",
"rawType": "<string>",
"reason": "<string>"
}
],
"enrichment": {},
"source": "<string>",
"timestamp": "<string>",
"queryKeys": {
"rpcEndpoints": [
{
"url": "<string>",
"health": "<string>",
"avgLatencyMs": 123
}
],
"rpcPolicy": {
"maxKeysPerCall": 123,
"recommendedConcurrency": 123,
"backoffOn429Ms": [
123
],
"timeoutMs": 123
},
"slices": {}
}
},
"defiPositionsWarnings": [
{
"message": "<string>",
"helpUrl": "<string>",
"code": "<string>"
}
],
"sorobanTokens": {
"tokens": [
{
"contract": "<string>",
"balance": "<string>",
"symbol": "<string>",
"decimals": 123,
"sources": [
"explorer"
]
}
],
"unreadable": [
"<string>"
],
"coverage": [
{
"source": "explorer",
"status": "ok",
"detail": "<string>"
}
],
"eventsScanned": {
"fromLedger": 123,
"toLedger": 123
},
"warnings": [
{
"message": "<string>",
"helpUrl": "<string>",
"code": "<string>"
}
]
}
}Read full on-chain account state (balances, trustlines, offers, signers).
curl --request GET \
--url https://api.lumenwipe.com/{network}/account/{address} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.lumenwipe.com/{network}/account/{address}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.lumenwipe.com/{network}/account/{address}', 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.lumenwipe.com/{network}/account/{address}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.lumenwipe.com/{network}/account/{address}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.lumenwipe.com/{network}/account/{address}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumenwipe.com/{network}/account/{address}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"address": "<string>",
"network": "mainnet",
"sequence": "<string>",
"nativeBalanceLumens": "<string>",
"dataEntries": [
{
"key": "<string>",
"value": "<string>"
}
],
"signers": [
{
"key": "<string>",
"weight": 123,
"type": "ed25519_public_key"
}
],
"thresholds": {
"low": 123,
"med": 123,
"high": 123
},
"numSubEntries": 123,
"numSponsoring": 123,
"sponsoredEntries": [
{
"kind": "account",
"owner": "<string>"
}
],
"sponsorshipEnumerationIncomplete": true,
"sponsoredBy": "<string>",
"authImmutable": true,
"trustlines": [
{
"asset": "<string>",
"balance": "<string>",
"authorized": true,
"issuer": "<string>",
"code": "<string>",
"limit": "<string>"
}
],
"openOffers": [
{
"id": "<string>",
"selling": "<string>",
"buying": "<string>",
"amount": "<string>",
"price": "<string>"
}
],
"poolShares": [
{
"poolId": "<string>"
}
],
"claimableBalances": [
{
"id": "<string>",
"asset": "<string>",
"amount": "<string>",
"claimants": [
{
"destination": "<string>",
"predicate": {
"type": "unconditional",
"predicates": "<array>",
"predicate": "<unknown>",
"absBeforeEpoch": "<string>",
"relBeforeSeconds": "<string>",
"deadlineEpoch": "<string>"
}
}
],
"sponsor": "<string>"
}
],
"subEntryMismatch": true,
"defiPositions": {
"address": "<string>",
"network": "mainnet",
"positions": [
{
"protocol": "blend",
"contractAddress": "<string>",
"usdValue": "<string>",
"positionType": "supply",
"assetAddress": "<string>",
"bTokenAmount": "<string>",
"display": {
"pool": "<string>",
"asset": "<string>",
"amount": "<string>",
"collateralAmount": "<string>",
"yieldPct": "<string>",
"yieldKind": "earned",
"detail": "<string>"
},
"wasmHash": "<string>",
"isBackstop": true
}
],
"unrecognizedPositions": [
{
"protocol": "blend",
"rawType": "<string>",
"reason": "<string>"
}
],
"enrichment": {},
"source": "<string>",
"timestamp": "<string>",
"queryKeys": {
"rpcEndpoints": [
{
"url": "<string>",
"health": "<string>",
"avgLatencyMs": 123
}
],
"rpcPolicy": {
"maxKeysPerCall": 123,
"recommendedConcurrency": 123,
"backoffOn429Ms": [
123
],
"timeoutMs": 123
},
"slices": {}
}
},
"defiPositionsWarnings": [
{
"message": "<string>",
"helpUrl": "<string>",
"code": "<string>"
}
],
"sorobanTokens": {
"tokens": [
{
"contract": "<string>",
"balance": "<string>",
"symbol": "<string>",
"decimals": 123,
"sources": [
"explorer"
]
}
],
"unreadable": [
"<string>"
],
"coverage": [
{
"source": "explorer",
"status": "ok",
"detail": "<string>"
}
],
"eventsScanned": {
"fromLedger": 123,
"toLedger": 123
},
"warnings": [
{
"message": "<string>",
"helpUrl": "<string>",
"code": "<string>"
}
]
}
}Authorizations
Integrator API key
Path Parameters
testnet, mainnet Stellar account (G...).
Query Parameters
Soroban token contracts (C..., comma-separated, at most 20) to check for a balance besides what discovery finds.
Response
Aggregated account state.
mainnet, testnet Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Ledger entries this account currently sponsors, on another account or itself.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
Show child attributes
Show child attributes
True when sponsoredEntries could not be enumerated completely.
AUTH_IMMUTABLE is set - ACCOUNT_MERGE is permanently blocked.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
True when the enumerated subentry count is lower than numSubEntries from the ledger.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Absent on account reads produced before this field existed - treat absence as "nothing known", never "nothing held".
Show child attributes
Show child attributes