Multi-wallet P&L (FIFO)
curl --request POST \
--url https://nexus.gerowallet.io/api/wallet/pnl \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"stakeAddresses": [
"<string>"
]
}
'import requests
url = "https://nexus.gerowallet.io/api/wallet/pnl"
payload = { "stakeAddresses": ["<string>"] }
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({stakeAddresses: ['<string>']})
};
fetch('https://nexus.gerowallet.io/api/wallet/pnl', 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://nexus.gerowallet.io/api/wallet/pnl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'stakeAddresses' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://nexus.gerowallet.io/api/wallet/pnl"
payload := strings.NewReader("{\n \"stakeAddresses\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://nexus.gerowallet.io/api/wallet/pnl")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"stakeAddresses\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nexus.gerowallet.io/api/wallet/pnl")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"stakeAddresses\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"stakeAddress": "<string>",
"stakeAddresses": [
"<string>"
],
"totalRealizedPnlAda": 123,
"totalUnrealizedPnlAda": 123,
"tokens": [
{
"unit": "<string>",
"displayName": "<string>",
"currentQuantity": 123,
"avgCostBasisAda": 123,
"currentPriceAda": 123,
"realizedPnlAda": 123,
"unrealizedPnlAda": 123,
"unknownCostQuantity": 123,
"swapAcquiredQuantity": 123,
"receivedQuantity": 123,
"totalSoldQuantity": 123,
"totalSoldAda": 123,
"avgSellPriceAda": 123,
"costBasisComplete": true
}
],
"truncated": true,
"totalTransactions": 123,
"processedTransactions": 123
}Cardano Market Data
Multi-wallet P&L (FIFO)
POST
/
api
/
wallet
/
pnl
Multi-wallet P&L (FIFO)
curl --request POST \
--url https://nexus.gerowallet.io/api/wallet/pnl \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"stakeAddresses": [
"<string>"
]
}
'import requests
url = "https://nexus.gerowallet.io/api/wallet/pnl"
payload = { "stakeAddresses": ["<string>"] }
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({stakeAddresses: ['<string>']})
};
fetch('https://nexus.gerowallet.io/api/wallet/pnl', 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://nexus.gerowallet.io/api/wallet/pnl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'stakeAddresses' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://nexus.gerowallet.io/api/wallet/pnl"
payload := strings.NewReader("{\n \"stakeAddresses\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://nexus.gerowallet.io/api/wallet/pnl")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"stakeAddresses\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://nexus.gerowallet.io/api/wallet/pnl")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"stakeAddresses\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"stakeAddress": "<string>",
"stakeAddresses": [
"<string>"
],
"totalRealizedPnlAda": 123,
"totalUnrealizedPnlAda": 123,
"tokens": [
{
"unit": "<string>",
"displayName": "<string>",
"currentQuantity": 123,
"avgCostBasisAda": 123,
"currentPriceAda": 123,
"realizedPnlAda": 123,
"unrealizedPnlAda": 123,
"unknownCostQuantity": 123,
"swapAcquiredQuantity": 123,
"receivedQuantity": 123,
"totalSoldQuantity": 123,
"totalSoldAda": 123,
"avgSellPriceAda": 123,
"costBasisComplete": true
}
],
"truncated": true,
"totalTransactions": 123,
"processedTransactions": 123
}Authorizations
apiKeyAuthbearerAuth
API key (programmatic access — recommended)
Send your API key in the X-Api-Key header. Keys start with nxs_ and are
created in the dashboard (or via POST /api/keys with a session JWT).
Each key is scoped to one chain and one network (for example
cardano-mainnet), fixed at creation time. It cannot query a different network
on the same chain, and it cannot query a different chain at all. A mismatched
network parameter returns 400 Network Mismatch. Create one key per chain
and network under the same account.
This is the credential most integrations should use.
Query Parameters
Target Cardano network for per-network market-data instances (e.g. preview). Omit, or pass mainnet, for mainnet.
Body
application/json
⌘I