curl --request GET \
--url https://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos \
--header 'api-key: <api-key>'import requests
url = "https://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos"
headers = {"api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'api-key': '<api-key>'}};
fetch('https://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos', 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://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("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://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"address": "bc1phyrmjs2jm5c98tldke2ykp0h66lsx3wy0ey8ug2fjj5mxsn8ftqsa24un8",
"confirmations": 23,
"height": 2815497,
"inscriptions": [],
"runes": [],
"satoshis": "546",
"script_pubkey": "00140df0d276eacd58b09a74d5e0288756e8505787f5",
"txid": "cb9532641412a6fa6f329e8728a8f7554dcaa6cdaec1355bd2bd2903cd61c6eb",
"vout": 1
},
{
"address": "bc1phyrmjs2jm5c98tldke2ykp0h66lsx3wy0ey8ug2fjj5mxsn8ftqsa24un8",
"confirmations": 20,
"height": 2815500,
"inscriptions": [
{
"inscription_id": "47bb5438d366863b25b4b1782af0d0cf0a89a922adce5da81253790d3e651501i0",
"offset": 0
}
],
"runes": [
{
"amount": "1.00",
"rune_id": "840000:1"
}
],
"satoshis": "546",
"script_pubkey": "00140df0d276eacd58b09a74d5e0288756e8505787f5",
"txid": "6312095baa2a42dec6aa41888c01fd74ecce2ab139c17a0a6d01d42a89b67953",
"vout": 1
}
],
"last_updated": {
"block_hash": "0000000088bee3b517745636443c8f11aff45209449300a5d8461c336e467925",
"block_height": 2815520
},
"next_cursor": "AAAAAAAq9gxgU3m2iSrUAW0KesE5sSrO7HT9AYyIQarG3kIqqlsJEmNgAAAAAQ"
}UTxOs by Address
Retrieves all UTXOs associated with a Bitcoin address or script pubkey. Ideal for wallet views, dust filtering, or balance calculations. Can be tailored to exclude certain categories of UTXOs such as those used in metaprotocols.
curl --request GET \
--url https://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos \
--header 'api-key: <api-key>'import requests
url = "https://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos"
headers = {"api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'api-key': '<api-key>'}};
fetch('https://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos', 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://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("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://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos")
.header("api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://xbt-mainnet.gomaestro-api.org/v0/addresses/{address}/utxos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"address": "bc1phyrmjs2jm5c98tldke2ykp0h66lsx3wy0ey8ug2fjj5mxsn8ftqsa24un8",
"confirmations": 23,
"height": 2815497,
"inscriptions": [],
"runes": [],
"satoshis": "546",
"script_pubkey": "00140df0d276eacd58b09a74d5e0288756e8505787f5",
"txid": "cb9532641412a6fa6f329e8728a8f7554dcaa6cdaec1355bd2bd2903cd61c6eb",
"vout": 1
},
{
"address": "bc1phyrmjs2jm5c98tldke2ykp0h66lsx3wy0ey8ug2fjj5mxsn8ftqsa24un8",
"confirmations": 20,
"height": 2815500,
"inscriptions": [
{
"inscription_id": "47bb5438d366863b25b4b1782af0d0cf0a89a922adce5da81253790d3e651501i0",
"offset": 0
}
],
"runes": [
{
"amount": "1.00",
"rune_id": "840000:1"
}
],
"satoshis": "546",
"script_pubkey": "00140df0d276eacd58b09a74d5e0288756e8505787f5",
"txid": "6312095baa2a42dec6aa41888c01fd74ecce2ab139c17a0a6d01d42a89b67953",
"vout": 1
}
],
"last_updated": {
"block_hash": "0000000088bee3b517745636443c8f11aff45209449300a5d8461c336e467925",
"block_height": 2815520
},
"next_cursor": "AAAAAAAq9gxgU3m2iSrUAW0KesE5sSrO7HT9AYyIQarG3kIqqlsJEmNgAAAAAQ"
}Authorizations
Project API Key
Path Parameters
Bitcoin address or hex encoded script pubkey
Query Parameters
Ignore UTxOs containing less than 100000 sats
Ignore UTxOs containing less than specified satoshis
x >= 0Exclude UTxOs involved in metaprotocols (currently only runes and inscriptions will be discovered, more metaprotocols may be supported in future)
When used with exclude_metaprotocols=true, still include UTXOs which only contain used BRC20 inscriptions
The max number of results per page
x >= 0The order in which the results are sorted (by height at which UTxO was produced)
asc, desc Return only UTxOs created on or after a specific height
x >= 0Return only UTxOs created on or before a specific height
x >= 0Pagination cursor string, use the cursor included in a page of results to fetch the next page
Was this page helpful?

