curl --request GET \
--url https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions \
--header 'X-Api-Key: <api-key>'import requests
url = "https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions', 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/addresses/cred/{credential}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
""
][
{
"txHash": "<string>",
"slot": 123,
"blockHeight": 123,
"blockTime": 123,
"epoch": 123
}
]{
"error": "Service Unavailable"
}{
"error": "Gateway Timeout"
}List transactions for a payment credential
Distinct transactions touching any address under the payment credential, within an optional slot window, newest first. Served by cardano-db-sync direct SQL where a db-sync datasource is configured for the network, and by the provider chain elsewhere. Cost scales with the credential’s TOTAL lifetime output count, not with the page size and not with the slot window: measured on mainnet at 840ms cold for a credential with 1,468 outputs. A credential an order of magnitude busier exceeds the chain-database read query timeout (10 seconds by default) and returns 504. Narrowing the slot window does not help: the db-sync query applies the window after the join, so a narrower window costs the same as a wide one. A dedicated index is the fix, and is not in place yet.
curl --request GET \
--url https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions \
--header 'X-Api-Key: <api-key>'import requests
url = "https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions', 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/addresses/cred/{credential}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://nexus.gerowallet.io/api/addresses/cred/{credential}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
""
][
{
"txHash": "<string>",
"slot": 123,
"blockHeight": 123,
"blockTime": 123,
"epoch": 123
}
]{
"error": "Service Unavailable"
}{
"error": "Gateway Timeout"
}Authorizations
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.
Path Parameters
^[a-fA-F0-9]{56}$Query Parameters
Accepts either the value listed here (CARDANO_MAINNET) or its kebab-case alias (cardano-mainnet); matching is case-insensitive. Omit it and the network is taken from the API key. A value that disagrees with the key's own network returns 400 Network Mismatch.
CARDANO_MAINNET, CARDANO_PREPROD, CARDANO_PREVIEW, APEX_PRIME_MAINNET, APEX_VECTOR_MAINNET, APEX_VECTOR_TESTNET, MIDNIGHT_MAINNET, MIDNIGHT_PREPROD, MIDNIGHT_STAGENET, BITCOIN_MAINNET, BITCOIN_TESTNET4 1 <= x <= 10001 <= x <= 100