Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
GET /v1/bitcoin/price HTTP/1.1
Host: api.secretkeylabs.ioHTTP/1.1 402 Payment Required
WWW-Authenticate: Payment id="<challenge-id>", realm="https://api.secretkeylabs.io", method="lightning", amount="1", ...
Cache-Control: no-store
Content-Type: application/problem+json
{
"type": "https://paymentauth.org/problems/payment-required",
"title": "Payment Required",
"status": 402
}GET /v1/bitcoin/price HTTP/1.1
Host: api.secretkeylabs.io
Authorization: Payment <base64url-encoded-credential>HTTP/1.1 200 OK
Payment-Receipt: <base64url-encoded-receipt>
Content-Type: application/json
{ ... }{
"type": "https://paymentauth.org/problems/invalid-credential",
"title": "Forbidden",
"status": 403,
"detail": "Credential was issued for /v1/bitcoin/price, not /v1/runes"
}# Preview cost (dry run)
xverse-wallet pay request https://api.secretkeylabs.io/v1/bitcoin/price --json
# Execute the paid request
xverse-wallet pay request https://api.secretkeylabs.io/v1/bitcoin/price --yes --json
# Discover MPP-enabled endpoints
xverse-wallet pay api --jsoncurl -i https://api.secretkeylabs.io/v1/bitcoin/pricecurl -H "Authorization: Payment <base64url-credential>" \
https://api.secretkeylabs.io/v1/bitcoin/pricexverse-wallet pay api --jsonRetrieve statistics regarding the fee rates of transactions within estimated mempool blocks.
[
{
"status": "confirmed",
"address": "bc1qjpnsvwgsxtf005x2qd28l3zlmexa3095fa6g4e",
"totalSatsIn": "0",
"totalSatsOut": "1421459",
"txid": "cc46ce35c459cd91585ec3848e0ec58b10a24770da5cdd264da41da7b3f07649",
"blockHeight": 928800,
"blockTime": "2025-12-21T07:42:08.000+02:00"
}
]claude mcp add --transport http xverse https://mcp.secretkeylabs.io/mcp \
--header "Authorization: Bearer <your-api-key>"{
"mcpServers": {
"xverse": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://mcp.secretkeylabs.io/mcp",
"--header", "Authorization: Bearer <your-api-key>"
]
}
}
}npx mcp-remote https://mcp.secretkeylabs.io/mcp --header "Authorization: Bearer <your-api-key>"{
"mcpServers": {
"xverse": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://mcp.secretkeylabs.io/mcp",
"--header", "Authorization: Bearer <your-api-key>"
]
}
}
}codex mcp add xverse --url https://mcp.secretkeylabs.io/mcp# ~/.codex/config.toml
[features]
experimental_use_rmcp_client = true{
"mcpServers": {
"xverse": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://mcp.secretkeylabs.io/mcp",
"--header", "Authorization: Bearer <your-api-key>"
]
}
}
}{
"context_servers": {
"xverse": {
"source": "custom",
"command": "npx",
"args": [
"-y", "mcp-remote", "https://mcp.secretkeylabs.io/mcp",
"--header", "Authorization: Bearer <your-api-key>"
],
"env": {}
}
}
}Raw transaction hex to be posted to the Bitcoin network.
Default Response
The transaction ID of the posted transaction.
Default Response
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
POST /v1/rpc/bitcoin/tx HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 13
{
"tx": "text"
}{
"result": "text"
}Default Response
POST /v2/rpc/bitcoin/decoderawtransaction HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 45
{
"method": "decoderawtransaction",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch060Collection info for inscriptions owned by the address
Collection info for inscriptions owned by the address
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/address/{address}/collections HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"totalCollections": 1,
"totalInscriptions": 1,
"items": [
{
"id": "text",
"symbol": "text",
"name": "text",
"description": "text",
"supply": "text",
"holderCount": "text",
"floorPrice": {
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange24h": {
"valueInSats": "text",
"valueInUsd": "text"
}
},
"marketCap": {
"valueInSats": "text",
"valueInUsd": "text"
},
"volume24h": {
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange": {
"valueInSats": "text",
"valueInUsd": "text"
}
},
"links": {
"coinMarketCap": "text",
"telegram": "text",
"twitter": "text",
"discord": "text",
"website": "text"
},
"total": 1,
"inscriptionSubset": [
{
"id": "text",
"number": 1,
"contentType": "text"
}
]
}
]
}getrawtransactionPossible values: Default Response
POST /v2/rpc/bitcoin HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 113
{
"method": "getrawtransaction",
"params": [
"6c5ffa32f6942bb82bf36239fb8a6d233c4da6f91bde81869accef2ef6be674e",
true
]
}Default Response
{
"result": null,
"error": null,
"id": null
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxchBitcoin balance for an address
Bitcoin balance for an address
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/address/{address}/balance HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"address": "text",
"confirmed": {
"fundedTxoCount": 1,
"fundedTxoSum": 1,
"spentTxoCount": 1,
"spentTxoSum": 1,
"txCount": 1
},
"unconfirmed": {
"fundedTxoCount": 1,
"fundedTxoSum": 1,
"spentTxoCount": 1,
"spentTxoSum": 1,
"txCount": 1
}
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch060Paginated Utxo list
Paginated Utxo list
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/address/{address}/utxo HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"hasMore": true,
"items": [
{
"txid": "text",
"vout": 1,
"value": 1,
"status": {
"confirmed": true,
"blockHeight": 1,
"blockHash": "text",
"blockTime": 1
}
}
]
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch060falsefalsePaginated Utxo list
Paginated Utxo list
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v2/bitcoin/address/{address}/utxo HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"hasMore": true,
"items": [
{
"txid": "text",
"vout": 1,
"value": 1,
"status": {
"confirmed": true,
"blockHeight": 1,
"blockHash": "text",
"blockTime": 1
}
}
]
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch,bc1px3kttdtg479vqfu0s2lhxvyuz2snhl8jct3f84k5heerl750n28scr9qt6060Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/global/ordinals/multi-address/activity?addresses=bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch%2Cbc1px3kttdtg479vqfu0s2lhxvyuz2snhl8jct3f84k5heerl750n28scr9qt6 HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"transactions": [
{
"txid": "text",
"blockHeight": 1,
"blockTime": 1,
"ownActivity": [
{
"address": "text",
"sent": 1,
"received": 1,
"outgoing": 1,
"incoming": 1
}
],
"totalOut": 1,
"totalIn": 1,
"addressList": {
"hasMore": true,
"items": [
{
"address": "text",
"type": "text",
"isInput": true,
"isOutput": true
}
]
},
"runes": {
"ownActivity": {
"items": [
{
"runeId": "text",
"runeName": "text",
"divisibility": 1,
"symbol": "text",
"address": "text",
"sent": "text",
"received": "text",
"outgoing": "text",
"incoming": "text"
}
],
"hasMore": true
},
"allActivity": {
"items": [
{
"runeId": "text",
"runeName": "text",
"divisibility": 1,
"symbol": "text",
"outgoing": "text",
"incoming": "text",
"isMint": true,
"isEtch": true,
"isBurn": true
}
],
"hasMore": true
}
},
"inscriptions": {
"items": [
{
"inscriptionId": "text",
"contentType": "text",
"address": "text",
"sent": true,
"received": true,
"inscribed": true,
"burned": true
}
],
"hasMore": true
}
}
],
"offset": 1,
"limit": 1
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch,bc1px3kttdtg479vqfu0s2lhxvyuz2snhl8jct3f84k5heerl750n28scr9qt6060Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/global/ordinals/multi-address/activity/mempool?addresses=bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch%2Cbc1px3kttdtg479vqfu0s2lhxvyuz2snhl8jct3f84k5heerl750n28scr9qt6 HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"transactions": [
{
"txid": "text",
"ownActivity": [
{
"address": "text",
"sent": 1,
"received": 1,
"outgoing": 1,
"incoming": 1
}
],
"totalOut": 1,
"totalIn": 1,
"addressList": {
"hasMore": true,
"items": [
{
"address": "text",
"type": "text",
"isInput": true,
"isOutput": true
}
]
},
"runes": {
"ownActivity": {
"items": [
{
"runeId": "text",
"runeName": "text",
"divisibility": 1,
"symbol": "text",
"address": "text",
"sent": "text",
"received": "text",
"outgoing": "text",
"incoming": "text"
}
],
"hasMore": true
},
"allActivity": {
"items": [
{
"runeId": "text",
"runeName": "text",
"divisibility": 1,
"symbol": "text",
"outgoing": "text",
"incoming": "text",
"isMint": true,
"isEtch": true,
"isBurn": true
}
],
"hasMore": true
}
},
"inscriptions": {
"items": [
{
"inscriptionId": "text",
"contentType": "text",
"address": "text",
"sent": true,
"received": true,
"inscribed": true,
"burned": true
}
],
"hasMore": true
}
}
],
"offset": 1,
"limit": 1
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch25List of unconfirmed txs
List of unconfirmed txs
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/address/{address}/txs/unconfirmed HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"items": [
{
"txid": "text",
"version": 1,
"locktime": 1,
"vin": [
{
"txid": "text",
"vout": 1,
"prevout": {
"scriptpubkey": "text",
"scriptpubkeyAsm": "text",
"scriptpubkeyType": "text",
"scriptpubkeyAddress": "text",
"value": 1
},
"scriptsig": "text",
"scriptsigAsm": "text",
"witness": [
"text"
],
"isCoinbase": true,
"sequence": 1
}
],
"vout": [
{
"scriptpubkey": "text",
"scriptpubkeyAsm": "text",
"scriptpubkeyType": "text",
"scriptpubkeyAddress": "text",
"value": 1
}
],
"size": 1,
"weight": 1,
"sigops": 1,
"fee": 1,
"status": {
"confirmed": true
}
}
]
}Transaction id
6c5ffa32f6942bb82bf36239fb8a6d233c4da6f91bde81869accef2ef6be674ePattern: ^[a-fA-F0-9]{64}$Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/tx/{txid} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"height": 1,
"confirmations": 1,
"inputs": [
{
"vin": 1,
"prevTxid": "text",
"prevVout": 1,
"value": 1,
"address": "text",
"script": "text",
"isCoinbase": true
}
],
"outputs": [
{
"vout": 1,
"value": 1,
"address": "text",
"script": "text"
}
]
}Transaction id
6c5ffa32f6942bb82bf36239fb8a6d233c4da6f91bde81869accef2ef6be674ePattern: ^[a-fA-F0-9]{64}$Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/tx/{txid}/hex HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
textTransaction id
6c5ffa32f6942bb82bf36239fb8a6d233c4da6f91bde81869accef2ef6be674ePattern: ^[a-fA-F0-9]{64}$Default Response
No content
POST /v1/rpc/bitcoin/rawtx HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 75
{
"txid": "6c5ffa32f6942bb82bf36239fb8a6d233c4da6f91bde81869accef2ef6be674e"
}Default Response
No content
Transaction id
6c5ffa32f6942bb82bf36239fb8a6d233c4da6f91bde81869accef2ef6be674ePattern: ^[a-fA-F0-9]{64}$Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/tx/{txid} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"confirmations": 1,
"blockHeight": 1,
"isOrdinalsIndexed": true,
"inputs": [
{
"vin": 1,
"prevTxid": "text",
"prevVout": 1,
"value": 1,
"address": "text",
"isCoinbase": true,
"runes": [
{
"runeId": "text",
"amount": "text",
"divisibility": 1
}
],
"inscriptions": [
{
"id": "text",
"contentType": "text",
"offset": 1
}
]
}
],
"outputs": [
{
"vout": 1,
"value": 1,
"address": "text",
"script": "text",
"runes": [
{
"runeId": "text",
"runeName": "text",
"amount": "text",
"divisibility": 1
}
],
"inscriptions": [
{
"id": "text",
"contentType": "text",
"offset": 1
}
]
}
],
"runeEvents": {
"etch": {
"runeId": "text",
"runeName": "text",
"divisibility": 1,
"symbol": "text",
"premine": "text",
"turbo": true,
"terms": {
"amount": "text",
"cap": "text",
"heightLow": "text",
"heightHigh": "text",
"offsetLow": "text",
"offsetHigh": "text"
},
"inscriptionId": "text"
},
"mint": {
"runeId": "text",
"runeName": "text",
"amount": "text"
}
}
}Transaction id
6c5ffa32f6942bb82bf36239fb8a6d233c4da6f91bde81869accef2ef6be674ePattern: ^[a-fA-F0-9]{64}$Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/tx/{txid}/outputs HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"total": 1,
"offset": 1,
"limit": 1,
"confirmations": 1,
"blockHeight": 1,
"items": [
{
"vout": 1,
"value": 1,
"address": "text",
"script": "text",
"runes": [
{
"runeId": "text",
"runeName": "text",
"amount": "text",
"divisibility": 1
}
],
"inscriptions": [
{
"id": "text",
"contentType": "text",
"offset": 1
}
]
}
],
"isOrdinalsIndexed": true
}Transaction id
6c5ffa32f6942bb82bf36239fb8a6d233c4da6f91bde81869accef2ef6be674ePattern: ^[a-fA-F0-9]{64}$Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/tx/{txid}/inputs HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"total": 1,
"offset": 1,
"limit": 1,
"confirmations": 1,
"blockHeight": 1,
"items": [
{
"vin": 1,
"prevTxid": "text",
"prevVout": 1,
"value": 1,
"address": "text",
"isCoinbase": true,
"runes": [
{
"runeId": "text",
"amount": "text",
"divisibility": 1
}
],
"inscriptions": [
{
"id": "text",
"contentType": "text",
"offset": 1
}
]
}
],
"isOrdinalsIndexed": true
}["e79134080a83fe3e0e06ed6990c5a9b63b362313341745707a2bff7d788a1375:0"]List of ordinal detail outputs
List of ordinal detail outputs
["ALPHA","BLOCK78","FIRST_TRANSACTION","PIZZA","VINTAGE","BLACK_UNCOMMON","BLACK_RARE","BLACK_EPIC","BLACK_LEGENDARY","BLOCK9","BLOCK9_450","BLOCK286","JPEG","LEGACY","OMEGA","FIBONACCI","HITMAN","NAKAMOTO","SILK_ROAD","PALINDROME","1D_PALINDROME","2D_PALINDROME","3D_PALINDROME","PALIBLOCK_PALINDROME","PALINCEPTION","PURE_PALINCEPTION","PERFECT_PALINCEPTION","SEQUENCE_PALINDROME","NAME_PALINDROME","COMMON","UNCOMMON","RARE","EPIC","LEGENDARY","MYTHIC"]Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
POST /v1/outputs HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 82
{
"outputs": [
"e79134080a83fe3e0e06ed6990c5a9b63b362313341745707a2bff7d788a1375:0"
]
}{
"total": 1,
"limit": 1,
"offset": 1,
"xVersion": 1,
"items": [
{
"txid": "text",
"address": "text",
"isSpent": true,
"vout": 1,
"result": {
"blockHeight": 1,
"value": 1,
"satRanges": [
{
"range": {
"start": "text",
"end": "text"
},
"offset": 1,
"sattributes": [
"ALPHA",
"BLOCK78",
"FIRST_TRANSACTION",
"PIZZA",
"VINTAGE",
"BLACK_UNCOMMON",
"BLACK_RARE",
"BLACK_EPIC",
"BLACK_LEGENDARY",
"BLOCK9",
"BLOCK9_450",
"BLOCK286",
"JPEG",
"LEGACY",
"OMEGA",
"FIBONACCI",
"HITMAN",
"NAKAMOTO",
"SILK_ROAD",
"PALINDROME",
"1D_PALINDROME",
"2D_PALINDROME",
"3D_PALINDROME",
"PALIBLOCK_PALINDROME",
"PALINCEPTION",
"PURE_PALINCEPTION",
"PERFECT_PALINCEPTION",
"SEQUENCE_PALINDROME",
"NAME_PALINDROME",
"COMMON",
"UNCOMMON",
"RARE",
"EPIC",
"LEGENDARY",
"MYTHIC"
],
"yearMined": 1,
"block": 1,
"inscriptions": [
{
"contentType": "text",
"id": "text"
}
]
}
],
"runes": [
{
"runeId": "text",
"runeName": "text",
"amount": "text",
"divisibility": 1,
"symbol": "text"
}
]
}
}
]
}Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/mempool/fee-estimates HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"currentBlockHeight": 1,
"estimates": {
"nextBlock": 1,
"in2Blocks": 1,
"in3Blocks": 1
}
}Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/mempool/stats HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"currentBlockHeight": 1,
"projectedBlocks": [
{
"height": 1,
"weight": 1,
"vbytes": 1,
"txnCount": 1,
"totalFeesSats": 1,
"feeRates": {
"min": 1,
"max": 1,
"avg": 1,
"median": 1,
"p75": 1,
"p95": 1
}
}
]
}Raw transaction hex to be checked with testmempoolaccept method.
0.1Example: 0.1Default Response
Default Response
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
POST /v1/rpc/bitcoin/testmempoolaccept HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 36
{
"txList": [
"text"
],
"maxFeeRate": 0.1
}{
"result": [
{
"txid": "text",
"wtxid": "text",
"allowed": true,
"vsize": 1,
"fees": {
"base": 1
},
"rejectReason": "text",
"packageError": "text"
}
]
}Block information
Block information
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/block/current HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"block": {
"height": 1,
"hash": "text",
"previousHash": "text",
"timestamp": "text"
}
}Block information
Block information
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/block/height/{height} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"block": {
"height": 1,
"hash": "text",
"previousHash": "text",
"timestamp": "text"
}
}Default Response
POST /v2/rpc/bitcoin/getblockhash HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 37
{
"method": "getblockhash",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getblock HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 33
{
"method": "getblock",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getblockchaininfo HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 42
{
"method": "getblockchaininfo",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getblockcount HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"method": "getblockcount",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getblockfilter HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"method": "getblockfilter",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getblockhash HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 37
{
"method": "getblockhash",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getblockheader HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"method": "getblockheader",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getblockstats HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"method": "getblockstats",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getchaintips HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 37
{
"method": "getchaintips",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getchaintxstats HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 40
{
"method": "getchaintxstats",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getdifficulty HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"method": "getdifficulty",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getmempoolancestors HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 44
{
"method": "getmempoolancestors",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getmempooldescendants HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 46
{
"method": "getmempooldescendants",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getmempoolentry HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 40
{
"method": "getmempoolentry",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getmempoolinfo HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"method": "getmempoolinfo",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getrawmempool HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"method": "getrawmempool",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/gettxout HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 33
{
"method": "gettxout",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/gettxoutproof HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 38
{
"method": "gettxoutproof",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/createrawtransaction HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 45
{
"method": "createrawtransaction",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/decodescript HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 37
{
"method": "decodescript",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getrawtransaction HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 42
{
"method": "getrawtransaction",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getrawtransaction HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 42
{
"method": "getrawtransaction",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/getrawtransaction HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 42
{
"method": "getrawtransaction",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/createmultisig HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"method": "createmultisig",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/createmultisig HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"method": "createmultisig",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/createmultisig HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"method": "createmultisig",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
POST /v2/rpc/bitcoin/createmultisig HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 39
{
"method": "createmultisig",
"params": []
}Default Response
{
"result": null,
"error": null,
"id": null
}Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/price HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"currency": "text",
"rate": 1
}Default Response
No content
POST /v1/portfolio/register HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 41
{
"assetType": "text",
"addresses": [
"text"
]
}Default Response
No content
025Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/portfolio?assetType=text HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"total": 1,
"items": [
{
"assetType": "bitcoin",
"address": "text"
}
]
}025from date, inclusive - (e.g. 2024-08-29)
to date, exclusive - (e.g. 2024-09-01)
Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/portfolio/history?address=text&startDate=text&endDate=text HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"lastBlockHeight": 1,
"items": [
{
"assetType": "text",
"assetId": "text",
"address": "text",
"balance": {
"valueInSats": "text",
"valueInUsd": "text"
},
"date": "text"
}
]
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch060Ordinal information for all utxos belonging to the address
Ordinal information for all utxos belonging to the address
["ALPHA","BLOCK78","FIRST_TRANSACTION","PIZZA","VINTAGE","BLACK_UNCOMMON","BLACK_RARE","BLACK_EPIC","BLACK_LEGENDARY","BLOCK9","BLOCK9_450","BLOCK286","JPEG","LEGACY","OMEGA","FIBONACCI","HITMAN","NAKAMOTO","SILK_ROAD","PALINDROME","1D_PALINDROME","2D_PALINDROME","3D_PALINDROME","PALIBLOCK_PALINDROME","PALINCEPTION","PURE_PALINCEPTION","PERFECT_PALINCEPTION","SEQUENCE_PALINDROME","NAME_PALINDROME","COMMON","UNCOMMON","RARE","EPIC","LEGENDARY","MYTHIC"]Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/address/{address}/utxo HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"total": 1,
"rareSatsVersion": 1,
"items": [
{
"txid": "text",
"vout": 1,
"value": 1,
"blockHeight": 1,
"satRanges": [
{
"range": {
"start": "text",
"end": "text"
},
"offset": 1,
"sattributes": [
"ALPHA",
"BLOCK78",
"FIRST_TRANSACTION",
"PIZZA",
"VINTAGE",
"BLACK_UNCOMMON",
"BLACK_RARE",
"BLACK_EPIC",
"BLACK_LEGENDARY",
"BLOCK9",
"BLOCK9_450",
"BLOCK286",
"JPEG",
"LEGACY",
"OMEGA",
"FIBONACCI",
"HITMAN",
"NAKAMOTO",
"SILK_ROAD",
"PALINDROME",
"1D_PALINDROME",
"2D_PALINDROME",
"3D_PALINDROME",
"PALIBLOCK_PALINDROME",
"PALINCEPTION",
"PURE_PALINCEPTION",
"PERFECT_PALINCEPTION",
"SEQUENCE_PALINDROME",
"NAME_PALINDROME",
"COMMON",
"UNCOMMON",
"RARE",
"EPIC",
"LEGENDARY",
"MYTHIC"
],
"yearMined": 1,
"block": 1,
"inscriptions": [
{
"contentType": "text",
"id": "text"
}
]
}
],
"runes": [
{
"runeId": "text",
"runeName": "text",
"amount": "text",
"divisibility": 1,
"symbol": "text"
}
]
}
]
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch060Inscriptions owned by the address
Inscriptions owned by the address
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/address/{address}/inscriptions HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"items": [
{
"id": "text",
"offset": 1,
"parentIds": [
"text"
],
"delegateId": "text",
"blockHeight": 1,
"contentType": "text",
"contentLength": 1,
"effectiveContentType": "text",
"number": 1,
"sat": 1,
"charms": [
"text"
],
"currentOutput": "text",
"currentAddress": "text",
"lastTransferHeight": 1,
"lastTransferTimestamp": 1,
"value": 1,
"contentUrl": "text",
"renderUrl": "text",
"collectionId": "text",
"collectionName": "text",
"collectionFloorPrice": {
"valueInSats": "text",
"valueInUsd": "text"
},
"lastInscriptionSalePrice": {
"valueInSats": "text",
"valueInUsd": "text"
},
"name": "text",
"indexerHeight": 1
}
]
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch060Inscriptions owned by the address
Inscriptions owned by the address
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/mempool/ordinals/address/{address}/inscriptions HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"items": [
{
"id": "text",
"offset": 1,
"parentIds": [
"text"
],
"delegateId": "text",
"contentType": "text",
"contentLength": 1,
"effectiveContentType": "text",
"number": 1,
"sat": 1,
"charms": [
"text"
],
"currentOutput": "text",
"currentAddress": "text",
"value": 1,
"contentUrl": "text",
"renderUrl": "text",
"collectionId": "text",
"collectionName": "text",
"collectionFloorPrice": {
"valueInSats": "text",
"valueInUsd": "text"
},
"lastInscriptionSalePrice": {
"valueInSats": "text",
"valueInUsd": "text"
}
}
]
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch{"value":"wzrds"}025Inscriptions for a specific collection owned by an address
Inscriptions for a specific collection owned by an address
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/address/{address}/inscriptions/collection/{collectionId} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"collectionId": "text",
"collectionName": "text",
"total": 1,
"offset": 1,
"limit": 1,
"inscriptions": [
{
"id": "text",
"number": 1,
"sat": 1,
"contentType": "text",
"blockHeight": 1,
"charms": [
"text"
],
"currentLocation": "text"
}
]
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxchbitminer025Inscriptions for a specific collection owned by an address
Inscriptions for a specific collection owned by an address
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/address/{address}/void-protocol-inscriptions/collection/{collectionId} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"collectionId": "text",
"collectionName": "text",
"total": 1,
"offset": 1,
"limit": 1,
"inscriptions": [
{
"id": "text",
"number": 1,
"sat": 1,
"contentType": "text",
"blockHeight": 1,
"charms": [
"text"
],
"currentLocation": "text"
}
]
}{"value":"wzrds"}Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/collections/{collectionId} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"id": "text",
"symbol": "text",
"name": "text",
"description": "text",
"supply": "text",
"holderCount": "text",
"floorPrice": {
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange24h": {
"valueInSats": "text",
"valueInUsd": "text"
}
},
"marketCap": {
"valueInSats": "text",
"valueInUsd": "text"
},
"volume24h": {
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange": {
"valueInSats": "text",
"valueInUsd": "text"
}
},
"links": {
"coinMarketCap": "text",
"telegram": "text",
"twitter": "text",
"discord": "text",
"website": "text"
}
}24h - trailing 24 hours' volume, ending at the start of the prior hour (default)trailing7d - trailing 7 days' volume, ending at the start of the prior hourtrailing30d - trailing 30 days' volume, ending at the start of the prior hour1d - prior day's volume, ending at midnight GMT7d - prior seven days' volume, ending at midnight GMT30d - prior 30 days' volume, ending at midnight GMT24hPossible values: 010Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/stats/collections/top-by-volume HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"total": 1,
"offset": 1,
"limit": 1,
"timePeriod": "text",
"collections": [
{
"collectionId": "text",
"tradingVolumeSats": "text",
"name": "text",
"logo": "text",
"floorPrice": {
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange24h": {
"valueInSats": "text",
"valueInUsd": "text"
}
}
}
]
}Search for runes starting with this string
UNCOMMONruneName - sort by rune name ascendingetch - sort by etching order block_height, rune_etch_index ascendingruneNamePossible values: 05Search results for runes
Search results for runes
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/runes?startingWith=text HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"items": [
{
"runeId": "text",
"runeName": "text",
"symbol": "text",
"divisibility": 1
}
],
"offset": 1,
"limit": 1
}0Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/runes/{identifier}/holders HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"offset": 1,
"limit": 1,
"total": 1,
"items": [
{
"address": "text",
"amount": "text",
"lastUpdatedBlockHeight": 1
}
]
}5f3dafcdd142358b332e0939d37174b76472735df8df29325901d2c7d18a152ci2Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/inscriptions/{inscriptionId}/activity HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"offset": 1,
"limit": 1,
"total": 1,
"items": [
{
"blockHeight": 1,
"blockTime": "text",
"inscriptionId": "text",
"toAddress": "text",
"txid": "text",
"vout": 1
}
]
}Default Response
POST /v1/inscriptions/estimate HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 2
{}Default Response
{}Default Response
POST /v1/inscriptions/order/{orderId}/execute HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 2
{}Default Response
{}{"value":"wzrds"}010Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/collections/{collectionId}/inscriptions HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"collectionId": "text",
"collectionName": "text",
"total": 1,
"offset": 1,
"limit": 1,
"inscriptions": [
{
"id": "text",
"number": 1,
"sat": 1,
"contentType": "text",
"blockHeight": 1,
"charms": [
"text"
]
}
]
}025Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/collections HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"total": 1,
"items": [
{
"id": "text",
"name": "text",
"description": "text",
"links": {
"coinMarketCap": "text",
"telegram": "text",
"twitter": "text",
"discord": "text",
"website": "text"
}
}
]
}{"value":"wzrds"}ISO timestamp - no older than 1 year ago (e.g. 2024-08-29T03:09:35.236Z)
ISO timestamp - up until now / not in the future
Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v2/ordinals/collections/{collectionId}/historical-floor-prices?fromTimestamp=text HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"timestamp": "text",
"floorPrices": [
{
"marketplace": "text",
"valueInSats": 1,
"valueInUsd": "text"
}
]
}
]{"value":"wzrds"}ISO timestamp - no older than 1 year ago (e.g. 2024-08-29T03:09:35.236Z)
ISO timestamp - up until now / not in the future
Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/collections/{collectionId}/historical-floor-prices?fromTimestamp=text HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"timestamp": "text",
"floorPrice": {
"valueInSats": 1,
"valueInUsd": "text"
}
}
]{"value":"wzrds"}010Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/collections/{collectionId}/holders HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"total": 1,
"offset": 1,
"limit": 1,
"items": [
{
"inscriptionCount": 1,
"address": "text"
}
]
}5f3dafcdd142358b332e0939d37174b76472735df8df29325901d2c7d18a152ci2Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/inscriptions/{inscriptionId} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"id": "text",
"offset": 1,
"parentIds": [
"text"
],
"delegateId": "text",
"blockHeight": 1,
"contentType": "text",
"contentLength": 1,
"effectiveContentType": "text",
"number": 1,
"sat": 1,
"charms": [
"text"
],
"currentOutput": "text",
"currentAddress": "text",
"lastTransferHeight": 1,
"lastTransferTimestamp": 1,
"value": 1,
"contentUrl": "text",
"renderUrl": "text",
"collectionId": "text",
"collectionSymbol": "text",
"collectionName": "text",
"collectionFloorPrice": {
"valueInSats": "text",
"valueInUsd": "text"
},
"lastInscriptionSalePrice": {
"valueInSats": "text",
"valueInUsd": "text"
},
"name": "text",
"indexerHeight": 1
}5f3dafcdd142358b332e0939d37174b76472735df8df29325901d2c7d18a152ci2Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/inscriptions/{inscriptionId}/thumbnail HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"url": "text"
}5f3dafcdd142358b332e0939d37174b76472735df8df29325901d2c7d18a152ci2Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/inscriptions/batch?inscriptionIds=text HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"id": "text",
"offset": 1,
"parentIds": [
"text"
],
"delegateId": "text",
"blockHeight": 1,
"contentType": "text",
"contentLength": 1,
"effectiveContentType": "text",
"number": 1,
"sat": 1,
"charms": [
"text"
],
"currentOutput": "text",
"currentAddress": "text",
"lastTransferHeight": 1,
"lastTransferTimestamp": 1,
"value": 1,
"contentUrl": "text",
"renderUrl": "text",
"collectionId": "text",
"collectionSymbol": "text",
"collectionName": "text",
"collectionFloorPrice": {
"valueInSats": "text",
"valueInUsd": "text"
},
"lastInscriptionSalePrice": {
"valueInSats": "text",
"valueInUsd": "text"
},
"name": "text",
"indexerHeight": 1
}
]Default Response
POST /v1/inscriptions/order HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 2
{}Default Response
{}Default Response
GET /v1/inscriptions/order/{orderId} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
Default Response
{}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch060Rune balances for all utxos belonging to the address
Rune balances for all utxos belonging to the address
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/address/{address}/runes HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"total": 1,
"items": [
{
"runeName": "text",
"amount": "text",
"divisibility": 1,
"symbol": "text",
"inscriptionId": "text",
"id": "text"
}
],
"indexerHeight": 1
}bc1px3kttdtg479vqfu0s2lhxvyuz2snhl8jct3f84k5heerl750n28scr9qt6{"value":"UNCOMMONGOODS"}025Rune activity for a specific rune or address
Rune activity for a specific rune or address
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/ordinals/address/{address}/runes/{identifier}/activity HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"offset": 1,
"limit": 1,
"items": [
{
"blockHeight": 1,
"blockTime": "text",
"txid": "text",
"index": 1,
"type": "text",
"amount": "text",
"address": "text"
}
]
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch060falseDefault Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/runes/address/{address}/utxo HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"total": 1,
"items": [
{
"txid": "text",
"vout": 1,
"amount": 1,
"blockHeight": 1,
"runes": [
{
"runeName": "text",
"runeId": "text",
"amount": "text",
"divisibility": 1,
"symbol": "text"
}
]
}
]
}Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/runes/{identifier} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"chain": "text",
"runeName": "text",
"symbol": "text",
"runeId": "text",
"spacedRuneName": "text",
"amount": "text",
"cap": "text",
"divisibility": "text",
"premine": "text",
"turbo": true,
"genesisBlock": 1,
"mint": {
"offset": {
"low": "text",
"high": "text"
},
"height": {
"low": "text",
"high": "text"
}
},
"holders": "text",
"supply": "text",
"marketCap": {
"valueInSats": "text",
"valueInUsd": "text"
},
"prices": {
"floorPrice": {
"marketplace": "text",
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange24h": {
"valueInSats": "text",
"valueInUsd": "text"
}
},
"lastSalePrice": {
"marketplace": "text",
"valueInSats": "text",
"valueInUsd": "text"
}
},
"volume24h": {
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange": {
"valueInSats": "text",
"valueInUsd": "text"
}
},
"inscriptionId": "text",
"inscriptionRenderUrl": "text"
}UNCOMMONGOODS,840000:3Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/runes/batch-info?runeIds=text HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
[
{
"chain": "text",
"runeName": "text",
"symbol": "text",
"runeId": "text",
"spacedRuneName": "text",
"amount": "text",
"cap": "text",
"divisibility": "text",
"premine": "text",
"turbo": true,
"genesisBlock": 1,
"mint": {
"offset": {
"low": "text",
"high": "text"
},
"height": {
"low": "text",
"high": "text"
}
},
"holders": "text",
"supply": "text",
"marketCap": {
"valueInSats": "text",
"valueInUsd": "text"
},
"prices": {
"floorPrice": {
"marketplace": "text",
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange24h": {
"valueInSats": "text",
"valueInUsd": "text"
}
},
"lastSalePrice": {
"marketplace": "text",
"valueInSats": "text",
"valueInUsd": "text"
}
},
"volume24h": {
"valueInSats": "text",
"valueInUsd": "text",
"percentageChange": {
"valueInSats": "text",
"valueInUsd": "text"
}
},
"inscriptionId": "text",
"inscriptionRenderUrl": "text"
}
]Default Response
No content
POST /v1/subscription HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 88
{
"webhookEndpoint": {
"url": "text"
},
"subscriptionAddressPredicate": {
"addresses": [
"text"
]
}
}Default Response
No content
025Default Response
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/subscription HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"limit": 1,
"offset": 1,
"total": 1,
"items": [
{
"id": 1,
"webhookEndpoint": {
"url": "text",
"updatedAt": "text"
},
"subscriptionAddressPredicate": {
"addresses": [
"text"
],
"updatedAt": "text"
}
}
]
}Default Response
No content
DELETE /v1/subscription/{subscriptionId} HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
Default Response
No content
bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxch025Address summary with txids and balance
Address summary with txids and balance
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v1/bitcoin/address/{address}/summary HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"txids": [
"text"
],
"confirmedBalance": "text",
"unconfirmedBalance": "text",
"offset": 1,
"limit": 1
}bc1q0egjvlcfq77cxd9kvpgppyuxckzvws46e3sxchDefault Response
Confirmed balance, ignoring mempool
Confirmed balance minus spent in mempool amounts
Confirmed balance plus unconfirmed amounts. Final balance if all get confirmed.
Sum of all incoming unconfirmed amounts
Sum of all outgoing unconfirmed amounts
Incoming - Outgoing
Last height indexed by the runes indexer
Invalid input
Invalid input
Unauthorized
Unauthorized
Not found
Not found
Rate limit exceeded
Rate limit exceeded
Internal server error
Internal server error
GET /v2/runes/address/{address}/balance HTTP/1.1
Host: api.secretkeylabs.io
x-api-key: YOUR_API_KEY
Accept: */*
{
"balances": [
{
"runeId": "text",
"divisibility": 1,
"symbol": "text",
"runeName": "text",
"confirmedBalance": "text",
"availableBalance": "text",
"projectedBalance": "text",
"pendingBalance": {
"incomingAmount": "text",
"outgoingAmount": "text",
"netAmount": "text"
},
"prices": {
"floorPrice": {
"marketplace": "text",
"percentageChange24h": {
"valueInSats": "text",
"valueInUsd": "text"
},
"valueInSats": "text",
"valueInUsd": "text"
},
"lastSalePrice": {
"marketplace": "text",
"valueInSats": "text",
"valueInUsd": "text"
}
},
"volume24h": {
"percentageChange": {
"valueInSats": "text",
"valueInUsd": "text"
},
"valueInSats": "text",
"valueInUsd": "text"
}
}
],
"indexerHeight": 1
}