Only this pageAll pages
Powered by GitBook
1 of 50

Public docs

Loading...

Introduction

Loading...

Core Products

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Tokens

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

1Sat Ordinals tokens API

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Resources

Loading...

Loading...

Loading...

Loading...

Get an API Key

The following are the steps to get an API key from TAAL:

  1. Register or login on to TAAL PLATFORM.

  2. Your mainnet and testnet API keys will be displayed.

Enter the URL in your browser

https://platform.taal.com/

Welcome

Welcome to TAAL Docs!!

You can use these docs to learn more about TAAL’s core products, explore guides, and check our API references.

What is TAAL?

TAAL delivers value-added blockchain services, providing professional-grade, highly scalable blockchain infrastructure, and transactional solutions to support builders and businesses building on the BitcoinSV protocol.

TAAL Services

Transaction Processing

As a Transaction processor (or miner) TAAL validates clients transactions and time stamps them by sequencing and encoding them into blocks, which are then published and added to the BSV blockchain.

TAAL API is an easy to integrate, open communication channel to the blockchain. By connecting an application to this endpoint data, in the form of transactions, can be processed, instantly verified, and once settled this data can be viewed anytime. Creating great value to applications that require real time blockchain data at scale, now and into the future.

Digital Asset Tokenization with the 1Sat Ordinals protocol

1SatOrdinals in an implementation of Ordinals running on the BSV blockchain. The tokens represent individual satoshis (the smallest unit of Bitcoin) that are "inscribed" with specific data, such as images or text. 1Sat Ordinals on BSV are fast, inexpensive, and fully scriptable via native Bitcoin Script.

Other benefits

  • The ability to have low-cost transactions (less than a penny), which make a difference when issuers are dropping millions of NFTs, for example. This attribute means more margin for the issuers on primary and secondary markets.

  • Interoperability with ecosystem wallets and other blockchain platforms.

  • Transparency allows the token to be tracked throughout its lifecycle, which makes a difference in a regulatory environment.

  • No network congestion — as the tokens are issued at the network level on a blockchain that scales unbounded.

You can license this technology from TAAL, download the SDK, and start building their next game-changing NFT or digital asset platform today!

You can get access to and get .

1Sat Ordinals tokens API
Whitepaper
TAAL Website
Blog Post

Health

Get API Status

A simple endpoint to show that the API server is up and running.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/woc
cURL
curl "https://api.whatsonchain.com/v1/bsv/main/woc"
The above request returns the below plain text response:
"Whats On Chain"

URL Parameters

Parameter
Description

network

The selected network: main or test.

Mempool

Get Mempool Info

This endpoint retrieves various information about the node's mempool, for the selected network.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/mempool/info
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/mempool/info"
Response JSON structure
{
    "bytes": 444832,
    "maxmempool": 8196000000,
    "mempoolminfee": 0,
    "size": 142,
    "usage": 647072
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Mempool Transactions

This endpoint retrieves a list of txIds from the node's mempool, for the selected network.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/mempool/raw
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/mempool/raw"
Response JSON structure
[
    "0b0911bcb1f762634ed3ee171694d68049420c730296a7a592b29d46919c7739", 
    "195c95162a7f73f2ff9d4a5d8894f63ec44712b3b69fe1c3e53464048c6a39e3",
    ...
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

WhatsOnChain

Overview

WhatsOnChain provides access to Bitcoin SV blocks, transactions, address activity, on-chain data, stats, insights, and much more via a simple REST API.

You can also use this API to broadcast transactions.

The supported networks are:

  • Mainnet

  • Testnet

Authentication

At this stage no authentication is required to use the API up to 3 requests/sec. If you need more, see below on how to increase your rate limit using an API key.

Rate Limits

Once you get your API key from the Platform, here is a usage example:

curl -H 'Authorization: mainnet_xxxxxxxxxxxxxxxxxxxxxxx' \
https://api.whatsonchain.com/v1/bsv/main/chain/info

Please make sure to replace mainnet_xxxxxxxxxxxxxxxxxxxxxxx with your actual API key.

Support

Block

Get by Hash

This endpoint retrieves the block details of a given hash.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/block/hash/<hash>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/hash/000000000000000004a288072ebb35e37233f419918f9783d499979cb6ac33eb"
Response JSON structure
{
  "hash": "000000000000000004a288072ebb35e37233f419918f9783d499979cb6ac33eb",
  "confirmations": 89,
  "size": 14421,
  "height": 575045,
  "version": 536928256,
  "versionHex": "2000e000",
  "merkleroot": "4ebcba09addd720991d03473f39dce4b9a72cc164e505cd446687a54df9b1585",
  "txcount": 5,
  "tx": [
    "bb146889d71357667c58a37258f40b0521a6ba7a259fbfa721b747d55567551a",
    "c7e8317b48e72644e2b83c87c54f61bcda82326392f969a097fb801aed69b500",
    "fd39debc631cf1a97702052fa60303d53062d6f2c1b624ab1f5fc0d20233736f",
    "65cb37947ccb7c5b7cc4ac36a200613bfc39a7f7c6c0314a23dbcc5b3908b5b8",
    "0f9d562702259822778193ff46f0c6d5e4aa744a433982770d3134e2bf454d10"
  ],
  "time": 1553416668,
  "mediantime": 1553414858,
  "nonce": 87914848,
  "bits": "180997ee",
  "difficulty": 114608607557.4425,
  "chainwork": "000000000000000000000000000000000000000000ddf5d385546872bab7dc01",
  "previousblockhash": "00000000000000000988156c7075dc9147a5b62922f1310862e8b9000d46dd9b",
  "nextblockhash": "00000000000000000112b36a37c10235fa0c991f680bc5482ba9692e0ae697db",
  "coinbaseTx": {
    "hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff220345c6082f626d67706f6f6c2e636f6d2f473173717918707a8aae4a936f101e0000ffffffff018ed9814a000000001976a91485770ad0ee64a4f3ee4027e199c32f876e03a2d988ac00000000",
    "txid": "bb146889d71357667c58a37258f40b0521a6ba7a259fbfa721b747d55567551a",
    "hash": "bb146889d71357667c58a37258f40b0521a6ba7a259fbfa721b747d55567551a",
    "size": 119,
    "version": 1,
    "locktime": 0,
    "vin": [
      {
        "txid": "",
        "vout": 0,
        "scriptSig": {
          "asm": "",
          "hex": ""
        },
        "sequence": 4294967295,
        "coinbase": "0345c6082f626d67706f6f6c2e636f6d2f473173717918707a8aae4a936f101e0000"
      }
    ],
    "vout": [
      {
        "value": 12.50023822,
        "n": 0,
        "scriptPubKey": {
          "asm": "OP_DUP OP_HASH160 85770ad0ee64a4f3ee4027e199c32f876e03a2d9 OP_EQUALVERIFY OP_CHECKSIG",
          "hex": "76a91485770ad0ee64a4f3ee4027e199c32f876e03a2d988ac",
          "reqSigs": 1,
          "type": 0,
          "addresses": ["1DAhUiQxHzL1oAusoUDdUM89spXuAG1sqy"],
          "opReturn": null
        }
      }
    ],
    "blockhash": "000000000000000004a288072ebb35e37233f419918f9783d499979cb6ac33eb",
    "confirmations": 89,
    "time": 1553416668,
    "blocktime": 1553416668
  },
  "totalFees": 0.0002382199999999557,
  "miner": "Bmgpool",
  "pages": null
}

URL Parameters

Parameter
Description

network

Selected network: main or test.

hash

The hash of the block to retrieve

Get by Height

This endpoint retrieves the block details of a given block height.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/block/height/<height>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/height/575191"
Response JSON structure
{
  "hash": "0000000000000000091216c46973d82db057a6f9911352892b7769ed517681c3",
  "confirmations": 1,
  "size": 611,
  "height": 575191,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "95a920b1002bed05379a0d2650bb13eb216138f28ee80172f4cf21048528dc60",
  "txcount": 3,
  "tx": [
    "c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96",
    "7e0ba1980522125f1f40d19a249ab3ae036001b991776813d25aebe08e8b8a50",
    "5c4d44b9b8d2ec6e0835ac90f206cecb26bf51033f31d4c659975b7534853409"
  ],
  "time": 1553501874,
  "mediantime": 1553499038,
  "nonce": 2482491775,
  "bits": "180978d5",
  "difficulty": 116078424449.9863,
  "chainwork": "000000000000000000000000000000000000000000de04fc280ef3a599fbadde",
  "previousblockhash": "00000000000000000012ce7f4bbce3346ac438ab7fdcb6fa5440db9857856a7f",
  "nextblockhash": "",
  "coinbaseTx": {
    "hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1c03d7c6082f7376706f6f6c2e636f6d2f3edff034600055b8467f0040ffffffff01247e814a000000001976a914492558fb8ca71a3591316d095afc0f20ef7d42f788ac00000000",
    "txid": "c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96",
    "hash": "c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96",
    "size": 113,
    "version": 1,
    "locktime": 0,
    "vin": [
      {
        "txid": "",
        "vout": 0,
        "scriptSig": {
          "asm": "",
          "hex": ""
        },
        "sequence": 4294967295,
        "coinbase": "03d7c6082f7376706f6f6c2e636f6d2f3edff034600055b8467f0040"
      }
    ],
    "vout": [
      {
        "value": 12.5000042,
        "n": 0,
        "scriptPubKey": {
          "asm": "OP_DUP OP_HASH160 492558fb8ca71a3591316d095afc0f20ef7d42f7 OP_EQUALVERIFY OP_CHECKSIG",
          "hex": "76a914492558fb8ca71a3591316d095afc0f20ef7d42f788ac",
          "reqSigs": 1,
          "type": 0,
          "addresses": ["17fm4xevwDh3XRHv9UoqYrVgPMbwcGHsUs"],
          "opReturn": null
        }
      }
    ],
    "blockhash": "0000000000000000091216c46973d82db057a6f9911352892b7769ed517681c3",
    "confirmations": 1,
    "time": 1553501874,
    "blocktime": 1553501874
  },
  "totalFees": 0.000004199999999343618,
  "miner": "SVpool",
  "pages": null
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

height

The height of the block to retrieve.

Get Block Pages

If a block has more than 1000 transactions, the page URLs will be provided in the pages element when getting a block by hash or height.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/block/hash/<hash>/page/<number>
Example pages element in Get block by height or hash response:
{
    "hash": "000000000000000004a288072ebb35e37233f419918f9783d499979cb6ac33eb",
    ...
    "pages": {
        "uri": [
            "/block/hash/000000000000000000885a4d8e9912f085b42288adc58b3ee5830a7da9f4fef4/page/1",
            "/block/hash/000000000000000000885a4d8e9912f085b42288adc58b3ee5830a7da9f4fef4/page/2",
            ...
    ],
        "size": 50000
    }
cURL
curl --location --request GET  "https://api.whatsonchain.com/v1/bsv/main/block/hash/000000000000000000885a4d8e9912f085b42288adc58b3ee5830a7da9f4fef4/page/1"
Response JSON structure
[
    "89b4e01ea1ab27edb6ea66899637b526faebeb42ca0302ff9ed916670f1330fe",
    "1097bfc9b1f586352a1ab29afd27c1f89e0a5d9790ea08a2b2a7d988ea6f2cfe",
    ....
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash of the block to retrieve.

number

The page number.

Get Header by Hash or Height

This endpoint retrieves the block header details of a given hash or height.

Possible values for the status when the block-headers-client format is requested:

  1. active: Block is a part of the current active chain.

  2. orphaned: Block is not a part of the current active chain.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/block/<hashOrHeight>/header
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/000000000000000004a288072ebb35e37233f419918f9783d499979cb6ac33eb/header"
Response JSON structure
{
  "hash": "000000000000000004a288072ebb35e37233f419918f9783d499979cb6ac33eb",
  "confirmations": 68461,
  "height": 575045,
  "version": 536928256,
  "versionHex": "2000e000",
  "merkleroot": "4ebcba09addd720991d03473f39dce4b9a72cc164e505cd446687a54df9b1585",
  "time": 1553416668,
  "mediantime": 1553414858,
  "nonce": 87914848,
  "bits": "180997ee",
  "difficulty": 114608607557.4425,
  "chainwork": "000000000000000000000000000000000000000000ddf5d385546872bab7dc01",
  "previousblockhash": "00000000000000000988156c7075dc9147a5b62922f1310862e8b9000d46dd9b",
  "nextblockhash": "00000000000000000112b36a37c10235fa0c991f680bc5482ba9692e0ae697db"
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash of the block to retrieve.

Get Headers

This endpoint retrieves the last 10 block headers.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/block/headers
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/headers"
Response JSON structure
[
    {
        "hash": "00000000000000000091302d4e60d7f795891ed6355da673bf48179b5d6bb8bf",
        "confirmations": 1,
        "height": 643505,
        "version": 536870912,
        "versionHex": "20000000",
        "merkleroot": "c842e7a774687c83b801c6e7c00344e9c6691f5ed9512c9b21c752821cb6e11e",
        "time": 1594656963,
        "mediantime": 1594632849,
        "nonce": 1235689794,
        "bits": "180322f4",
        "difficulty": 350544350572.5941,
        "chainwork": "000000000000000000000000000000000000000001115d6ba65662692dd816d6",
        "previousblockhash": "000000000000000001a49ccb1c689f0cb2d1a29942ca0631027f9cef221cc5a8",
        "nextblockhash": ""
    },
    {
        "hash": "000000000000000001a49ccb1c689f0cb2d1a29942ca0631027f9cef221cc5a8",
        "confirmations": 2,
        "height": 643504,
        "version": 545259520,
        "versionHex": "20800000",
        "merkleroot": "4b4336460f3f61bfec51608a986f765a9dbd5f9662159cba91a8e7725116cf1d",
        "time": 1594653910,
        "mediantime": 1594629833,
        "nonce": 701438478,
        "bits": "1802d84a",
        "difficulty": 386482093768.0359,
        "chainwork": "000000000000000000000000000000000000000001115d1a07f27698a9ee58d8",
        "previousblockhash": "0000000000000000014ad36062380b1d86a84c98fc97eee672f96e3f5f8c2528",
        "nextblockhash": "00000000000000000091302d4e60d7f795891ed6355da673bf48179b5d6bb8bf"
    },
    ...
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Header Bytes File Links

This endpoint retrieves a list of block header binary file links and each file only contains 80-byte block headers. These contain 10,000 block headers per file up to height 760,000.

Then 2,000 blocks per file after height 760,001. New files are automatically created after every 2,000 blocks and added to the list.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/block/headers/resources
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/headers/resources"
Response JSON structure
{"files":[
   "https://api.whatsonchain.com/v1/bsv/main/block/headers/0_10000_headers.bin",
   "https://api.whatsonchain.com/v1/bsv/main/block/headers/100001_110000_headers.bin",
   "https://api.whatsonchain.com/v1/bsv/main/block/headers/110001_120000_headers.bin"
    ...
]}

Get Latest Header Bytes

This endpoint retrieves the latest specified number of block headers (up to 100) as a binary file. If "count" parameter is not provided, returns the latest header file, with up to 2000 block headers.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/block/headers/latest?count=<count>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/headers/latest?count=10"

URL Parameter

Parameter
Description

network

The selected network: main.

count (optional)

Number of headers requested, between 1 and 100.

TAAL PLATFORM

This API accompanies the website to form a suite of blockchain explorer services run on fully independent infrastructure.

Up to 3 requests/sec is free. Need more? Please create a free account on the TAAL Platform and view the there. We offer packages with 10, 20 or 40 requests/sec, and even a custom Enterprise plan.

If you are using the API for free, without an API key, please help us spread the word and use the in your app or website.

If you need higher rate limits on testnet, please contact us through .

Need help? Join our and ask anything you need!

For a block with up to 1000 transactions, all transaction ids are returned in response to this call. If a block has more than 1000 transactions, only the top 100 transaction ids are returned. To get remaining ids see the '' section.

For a block with up to 1000 transactions, all transaction ids are returned in response to this call. If a block has more than 1000 transactions, only the top 100 transaction ids are returned. To get remaining ids see the '' section.

Use '?format=block-headers-client' as a query parameter for the response format.

WhatsOnChain.com
available subscription plans
"Powered by WhatsOnChain" logo
WoC devs Telegram channel
block-headers-client
Support
Get block pages
Get block pages

Transaction

Get by Tx Hash

This endpoint retrieves the transaction details for a given transaction hash.

In the response body, if any output's hex size (vout[x].scriptPubKey.hex) exceeds 100KB, then the data for vout[x].scriptPubKey.hex and vout[x].scriptPubKey.asm is truncated and a flag vout[x].scriptPubKey.isTruncated is set to true.

For unconfirmed transactions, block and confirmations info won't be returned, as it doesn't exist.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/hash/<hash>
cURL
curl --location --request GET  "https://api.whatsonchain.com/v1/bsv/main/tx/hash/c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96"
Response JSON structure
{
  "txid": "c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96",
  "hash": "c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96",
  "size": 113,
  "version": 1,
  "locktime": 0,
  "vin": [
    {
      "txid": "",
      "vout": 0,
      "scriptSig": {
        "asm": "... ",
        "hex": "..."
      },
      "sequence": 4294967295,
      "coinbase": "03d7c6082f7376706f6f6c2e636f6d2f3edff034600055b8467f0040"
    }
  ],
  "vout": [
    {
      "value": 12.5000042,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 492558fb8ca71a3591316d095afc0f20ef7d42f7 OP_EQUALVERIFY OP_CHECKSIG", // (max 100 KB)
        "hex": "76a914492558fb8ca71a3591316d095afc0f20ef7d42f788ac", // (max 100 KB)
        "reqSigs": 1,
        "type": 0,
        "addresses": ["17fm4xevwDh3XRHv9UoqYrVgPMbwcGHsUs"],
        "opReturn": null,
        "isTruncated": false
      }
    }
  ],
  "blockhash": "0000000000000000091216c46973d82db057a6f9911352892b7769ed517681c3",
  "confirmations": 2,
  "time": 1553501874,
  "blocktime": 1553501874

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash/txId of the transaction to retrieve.

Get by Tx Index

This endpoint retrieves the transaction details for a given block height and transaction index in that block. Works only for confirmed transactions.

In the response body, if any output's hex size (vout[x].scriptPubKey.hex) exceeds 100KB, then the data for vout[x].scriptPubKey.hex and vout[x].scriptPubKey.asm is truncated and a flag vout[x].scriptPubKey.isTruncated is set to true.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/block/height/<height>/txindex/<txindex>
cURL
curl --location --request GET  "https://api.whatsonchain.com/v1/bsv/main/block/height/892006/txindex/32891"
Response JSON structure
{
    "txid": "522804f8b0c19cb51bd3c7d14a64b472bb9797f292393f1abd9d32b9a2946495",
    "hash": "522804f8b0c19cb51bd3c7d14a64b472bb9797f292393f1abd9d32b9a2946495",
    "version": 1,
    "size": 410,
    "locktime": 0,
    "vin": [
        {
            "coinbase": "",
            "txid": "bc5c9aba8003aa0c0ccb64f077310bb945796f8b3aec6648672ddfa8eee1d7eb",
            "vout": 0,
            "scriptSig": {
                "asm": "3045022100fee85b93b63e313950a3c100fb022e8c9990a7104032e7f678a4e36f791c52bd022001c6c022c03db168848a49a95de126cebd5160d4ac4a78277e08795a613cfafe[ALL|FORKID] 0326c692c95e73175795109d2fc90e852e7d725aa25d3d1b783d8c924d3c2be872",
                "hex": "483045022100fee85b93b63e313950a3c100fb022e8c9990a7104032e7f678a4e36f791c52bd022001c6c022c03db168848a49a95de126cebd5160d4ac4a78277e08795a613cfafe41210326c692c95e73175795109d2fc90e852e7d725aa25d3d1b783d8c924d3c2be872"
            },
            "sequence": 4294967295
        },
        ...
    ],
    "vout": [
        {
            "value": 0,
            "n": 0,
            "scriptPubKey": {
                "asm": "OP_RETURN 6478732e617070 703a313539363436302c6d617267696e",
                "hex": "6a076478732e61707010703a313539363436302c6d617267696e",
                "type": "nulldata",
                "opReturn": {
                    "type": "dxs",
                    "action": "",
                    "text": "",
                    "parts": [
                        "\u0007dxs.app\u0010p:1596460,margin"
                    ]
                },
                "isTruncated": false
            }
        },
        ...
    ],
    "blockhash": "00000000000000000c20becd473e985688ff2fcb2b234165acb11fbf1024c2bb",
    "confirmations": 1707,
    "time": 1744376748,
    "blocktime": 1744376748,
    "blockheight": 892006
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

height

The block height.

txindex

The index of the transaction in the associated block.

Get Transaction Propagation Status

This endpoint returns the propagation status for a given transaction. It queries a random set of peers on the network and returns the number of peers that have the transaction in question.

This is an expensive call, so it's recommended only for critical or high-value transactions that might require checking the network propagation status. It is rate-limited to 10 requests per 10 seconds.

If the transaction has been found on zero peers, possible reasons may include:

  • Propagation is still in progress;

  • The transaction fee rate, or that of a preceding transaction, is relatively low, making it invisible to peers that are configured to accept only higher fee rates.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/hash/<hash>/propagation
cURL
curl --location --request GET  "https://api.whatsonchain.com/v1/bsv/<network>/tx/hash/<hash>/propagation"
Response JSON structure
{
  "queried_peers": 16,
  "found_on_peers": 16
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash/txId of the transaction.

Broadcast Transaction

You can broadcast a transaction using this endpoint. Returns the txId in response or an error message from the node, with header content-type: text/plain.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/tx/raw
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/tx/raw" \
  --header "Content-Type: application/json" \
  --data "{\"txhex\": \"hex...\" }"
The JSON structure for the above post request:
{
  "txhex": "hex..."
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

Request Body

Parameter
Description

txhex

The raw transaction data in hex.

Bulk Transaction Details

You can fetch details for multiple transactions in a single request.

  • Max 20 transactions per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/txs
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/txs" \
  --header "Content-Type: application/json" \
  --data "{\"txids\" : [\"294cd1ebd5689fdee03509f92c32184c0f52f037d4046af250229b97e0c8f1aa\",\"91f68c2c598bc73812dd32d60ab67005eac498bef5f0c45b822b3c9468ba3258\" ] }"
The JSON structure for the above post request:
{
  "txids": [
    "294cd1ebd5689fdee03509f92c32184c0f52f037d4046af250229b97e0c8f1aa",
    "91f68c2c598bc73812dd32d60ab67005eac498bef5f0c45b822b3c9468ba3258"
  ]
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

Bulk Transaction Status

You can get the status of multiple transactions in a single request.

  • Max 20 transactions per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/txs/status
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/txs/status" \
  --header "Content-Type: application/json" \
  --data "{\"txids\" : [\"294cd1ebd5689fdee03509f92c32184c0f52f037d4046af250229b97e0c8f1aa\",\"91f68c2c598bc73812dd32d60ab67005eac498bef5f0c45b822b3c9468ba3258\" ] }"
The JSON structure for the above post request:
{
  "txids": [
    "294cd1ebd5689fdee03509f92c32184c0f52f037d4046af250229b97e0c8f1aa",
    "91f68c2c598bc73812dd32d60ab67005eac498bef5f0c45b822b3c9468ba3258"
  ]
}
Response JSON structure
[
  {
    "txid": "294cd1ebd5689fdee03509f92c32184c0f52f037d4046af250229b97e0c8f1aa",
    "blockhash": "000000000000000004b5ce6670f2ff27354a1e87d0a01bf61f3307f4ccd358b5",
    "blockheight": 612251,
    "blocktime": 1575841517,
    "confirmations": 86479
  },
  {
    "txid": "91f68c2c598bc73812dd32d60ab67005eac498bef5f0c45b822b3c9468ba3258",
    "blockhash": "000000000000000002e8d4b4c0385abd195709c82f16d9917f081b70000e8804",
    "blockheight": 617279,
    "blocktime": 1578837295,
    "confirmations": 81451
  }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Decode Transaction

You can decode a raw transaction using this endpoint. Returns a json in response or an error message from the node.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/tx/decode
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/tx/decode" \
  --header "Content-Type: application/json" \
  --data "{\"txhex\": \"hex...\" }"
Post request body JSON structure
{
  "txhex": "hex..."
}
Response JSON structure
{
  "txid": "c203094f5bacd5d5dcabb997adab1923b3ec9b91667ff230cac51504e34a382d",
  "hash": "c203094f5bacd5d5dcabb997adab1923b3ec9b91667ff230cac51504e34a382d",
  "version": 1,
  "size": 111,
  "locktime": 0,
  "vin": [
    {
      "coinbase": "03fc3b092f7376706f6f6c2e636f6d2f49a4a636f07dad7dc7c30100",
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 12.52346603,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_HASH160 1314c7eace4d4da3f65a1341197bb58038aa9dbc OP_EQUAL",
        "hex": "a9141314c7eace4d4da3f65a1341197bb58038aa9dbc87",
        "reqSigs": 1,
        "type": "scripthash",
        "addresses": ["33Ruf5AZhSPHSCGbYiuu3xG5V3HvoNFfby"]
      }
    }
  ],
  "hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1c03fc3b092f7376706f6f6c2e636f6d2f49a4a636f07dad7dc7c30100ffffffff01eb4aa54a0000000017a9141314c7eace4d4da3f65a1341197bb58038aa9dbc8700000000"
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

Request Body

Parameter
Description

txhex

The raw transaction data in hex.

Download Receipt

You can download the transaction receipt (in PDF).

HTTP Request
GET https://<network>.whatsonchain.com/receipt/<hash>
cURL
curl --location --request GET  "https://main.whatsonchain.com/receipt/4bdbdb7483c1c7ef48cda78ee4141af7cf15f94e10324e0bcac43c29394ea4a9"

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash/txId of the transaction.

Get a Transaction as Binary

This endpoint returns the transaction as a binary for a given hash.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/<hash>/bin
cURL
curl --location --request GET  "https://api.whatsonchain.com/v1/bsv/main/tx/c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96/bin"
Response (file)
c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96.bin

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash/txId of the transaction.

Get Raw Transaction Data

This endpoint returns the raw hex of a transaction for a given hash.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/<hash>/hex
cURL
curl --location --request GET  "https://api.whatsonchain.com/v1/bsv/main/tx/c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96/hex"
Response with header content-type: text/plain:
01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff1c03d7c6082f7376706f6f6c2e636f6d2f3edff034600055b8467f0040ffffffff01247e814a000000001976a914492558fb8ca71a3591316d095afc0f20ef7d42f788ac00000000

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash/txId of the transaction.

Bulk Raw Transaction Data

You can get the raw data of multiple transactions in hex in a single request.

  • Max 20 transactions per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/txs/hex
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/txs/hex" \
  --header "Content-Type: application/json" \
  --data "{\"txids\" : [\"294cd1ebd5689fdee03509f92c32184c0f52f037d4046af250229b97e0c8f1aa\",\"91f68c2c598bc73812dd32d60ab67005eac498bef5f0c45b822b3c9468ba3258\" ] }"
The JSON structure for the above post request:
{
  "txids": [
    "294cd1ebd5689fdee03509f92c32184c0f52f037d4046af250229b97e0c8f1aa",
    "91f68c2c598bc73812dd32d60ab67005eac498bef5f0c45b822b3c9468ba3258"
  ]
}
Response JSON structure:
[
  {
    "txid": "294cd1ebd5689fdee03509f92c32184c0f52f037d4046af250229b97e0c8f1aa",
    "hex": "0100000001...00000000",
    "blockhash": "000000000000000004b5ce6670f2ff27354a1e87d0a01bf61f3307f4ccd358b5",
    "blockheight": 612251,
    "blocktime": 1575841517,
    "confirmations": 86479
  },
  {
    "txid": "91f68c2c598bc73812dd32d60ab67005eac498bef5f0c45b822b3c9468ba3258",
    "hex": "0100000001...00000000",
    "blockhash": "000000000000000002e8d4b4c0385abd195709c82f16d9917f081b70000e8804",
    "blockheight": 617279,
    "blocktime": 1578837295,
    "confirmations": 81451
  }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Raw Transaction Output Data

This endpoint returns raw hex of the transaction output for a given transaction ID and output index.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/<hash>/out/<index>/hex
cURL
curl --location --request GET  "https://api.whatsonchain.com/v1/bsv/main/tx/c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96/out/0/hex"
Response with header content-type: text/plain:
76a914492558fb8ca71a3591316d095afc0f20ef7d42f788ac

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash/txId of the transaction.

index

The Output/Vout index.

Bulk Raw Transaction Output Data

This endpoint returns raw hex of the transaction output for a list of up to 40 transaction IDs and up to 40 output indexes per transaction.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/main/txs/vouts/hex
cURL
curl --location --request POST 'https://api.whatsonchain.com/v1/bsv/main/txs/vouts/hex' \
--header 'Content-Type: application/json' \
--data-raw '{
    "txids": [
        {
            "txid": "e8022f0904e636a7f4c1e561ca0af794b354f6fb71bdfb57b5ac3528e3f40e2f",
            "vouts": [
                0,
                1
            ]
        }
    ]
}'
The JSON structure for the above post request:
{
    "txids": [
        {
            "txid": "e8022f0904e636a7f4c1e561ca0af794b354f6fb71bdfb57b5ac3528e3f40e2f",
            "vouts": [0,1]
        }
    ]
}
Response JSON structure:
[
    {
        "txid": "e8022f0904e636a7f4c1e561ca0af794b354f6fb71bdfb57b5ac3528e3f40e2f",
        "vout": {
            "0": {
                "scriptPubKey": {
                    "hex": "76a9146b7f6a5d5677d1f3635e589b2eacc75d08dc6c4588ac"
                }
            },
            "1": {
                "scriptPubKey": {
                    "hex": "006a036478733575453364693965487a6e6b47666865696d6863636434673d3d2c6d392c74622c613738362e39332c6535363430302c7332382e333704746578740142"
                }
            }
        }
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Errors

Error
Description

"unknown" for that txID

If a given txID is unknown.

(Ignored)

If a given output is unknown.

Get Merkle Proof

The old, non-TSC-format endpoint is no longer supported.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/<hash>/proof/tsc
cURL
curl --location --request GET  "https://api.whatsonchain.com/v1/bsv/main/tx/c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96/proof/tsc"
Response JSON structure
[
    {
        "index": 0,
        "txOrId": "c1d32f28baa27a376ba977f6a8de6ce0a87041157cef0274b20bfda2b0d8df96",
        "target": "0000000000000000091216c46973d82db057a6f9911352892b7769ed517681c3",
        "nodes": [
            "7e0ba1980522125f1f40d19a249ab3ae036001b991776813d25aebe08e8b8a50",
            "1e3a5a8946e0caf07006f6c4f76773d7e474d4f240a276844f866bd09820adb3"
        ]
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

hash

The hash/txId of the transaction.

A separate endpoint can be used to fetch the full hex data, if required by the client application.

A separate endpoint can be used to fetch the full hex data, if required by the client application.

Keep in mind that this endpoint is meant for small-scale usage. For commercial or enterprise usage, please take a look at , which are built for those types of use cases.

This endpoint returns the Merkle root of the branch for a confirmed transaction, in the format. Returns null for unconfirmed transactions.

ARC Endpoints
TSC
Get Raw Transaction Output Data
Get Raw Transaction Output Data

Search

Get Explorer Links

This endpoint identifies whether the posted query text is a block hash, txid, or address, and responds with WoC links. Ideal for extending customized search in apps.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/search/links
cURL
curl -X POST https://api.whatsonchain.com/v1/bsv/main/search/links   -H 'Content-Type: application/json' -d '{    "query": "1GJ3x5bcEnKMnzNFPPELDfXUCwKEaLHM5H"
}'
Response JSON structure
{
    "results": [
        {
            "type": "address",
            "url": "https://whatsonchain.com/address/1GJ3x5bcEnKMnzNFPPELDfXUCwKEaLHM5H"
        }
    ]
}   

URL Parameters

Parameter
Description

network

The selected network: main or test.

Request Body

Parameter
Description

query

The text to search.

Run in Postman

(Un)Spent Transaction Outputs

These endpoints cover spent and unspent transaction outputs.

Get Unspent UTXOs by Address

This endpoint retrieves a combined, ordered list of both confirmed and unconfirmed UTXOs for a given address. Returns up to 100k unconfirmed results in one request. Confirmed results are paginated if more than 1000 are available. The rest can be accessed using the provided next-page token.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/unspent/all
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1L2F8wYxTRagCZLnsm2engg8ngGECSeuE5/unspent/all"
Response JSON structure
{
    "address": "1L2F8wYxTRagCZLnsm2engg8ngGECSeuE5",
    "script": "b3005d46af31c4b5675b73c17579b7bd366dfe10635b7b43ac111aea5226efb6",
    "result": [
                {
                    "tx_pos": 1,
                    "tx_hash": "9c3801270d353066ed0553efb243bccc296d16e8ba589797934717c3f1ac030d",
                    "value": 98,
                    "isSpentInMempoolTx": false,
                    "hex": "76a914d0a69b53d9a1e229b51a60cc24814f8750b7446188ac",
                    "status": "unconfirmed"
                },
                ...
                {
                    "height": 861936,
                    "tx_pos": 0,
                    "tx_hash": "46b080bf212f3b355cffe7956db3adb53840ac550e51110577317df030039d7f",
                    "value": 100,
                    "isSpentInMempoolTx": true,
                    "status": "confirmed"
                }
            ],
    "error": ""
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Get Unconfirmed UTXOs by Address

This endpoint retrieves an ordered list of unconfirmed UTXOs for a given address. Returns up to 100k results in one request.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/unconfirmed/unspent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1Dbj1LUxTqtuZ1U52KZiZChLPHkTAMiD6h/unconfirmed/unspent"
Response JSON structure
{
    "result": [
        {
            "tx_pos": 1,
            "tx_hash": "93d8ae93a9e074c555d80e86c130b6cd4d5c7efa2795f91b2aea285c546512c6",
            "value": 181724,
            "hex": "76a9148a32b77e8f9bce47179fe03b6894e3d37003099888ac"
        }
    ]
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Bulk Unconfirmed UTXOs by Address

This endpoint retrieves an ordered list of unconfirmed UTXOs for a given set of addresses - max 20 addresses per request. Returns up to 100 items in one request.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/addresses/unconfirmed/unspent
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/unconfirmed/unspent" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [\"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP\",\"1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob\" ] }"
Request body JSON structure
{
    "addresses": 
    [
    	"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
    	"1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob"
    ]
}
Response JSON structure
[
    {
        "address": "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "unspent": [
            {
                "height": 657540,
                "tx_pos": 1,
                "tx_hash": "d75485c2329a533fd06b5f55a3f21644741c0258f2974d5d989e946a0bb4357f",
                "value": 25000000
            },
            {
                "height": 657542,
                "tx_pos": 1,
                "tx_hash": "55a656d50327ec3237fa6e821ab62294695cfd508d631dc9b04dc3a395cf0a37",
                "value": 25000000
            }
        ],
        "error": ""
    },
    {
        "address": "1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob",
        "unspent": [
                {
                "height": 658133,
                "tx_pos": 1,
                "tx_hash": "7ae43aac97396bc99616d8273c6cd9b57f017d6d49aca742fbc8c214fee49fa7",
                "value": 25000000
            },
            {
                "height": 658134,
                "tx_pos": 1,
                "tx_hash": "5b25a56bbb959f9cf4b3e48dbbe412bf5cc85e655d27f87c3bfb07aa6aa01518",
                "value": 25000000
            }
        ],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Confirmed UTXOs by Address

This endpoint retrieves an ordered list of confirmed UTXOs for a given address. Pagination is available using the provided next-page token.

The "isSpentInMempoolTx" flag enables filtering of spent unconfirmed transactions from this set.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/confirmed/unspent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1Dbj1LUxTqtuZ1U52KZiZChLPHkTAMiD6h/confirmed/unspent"
Response JSON structure
{
    "result": [
        {
            "height": 797518,
            "tx_pos": 0,
            "tx_hash": "6cc9631ef3dad77eb0141134167f20469d0b4e61405de57fe6a9ac71b943bb9f",
            "value": 181827,
            "isSpentInMempoolTx": false
        }
    ]
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

limit

Between 1 and 10000; default is 10000.

token

Provided next page token.

Bulk Confirmed UTXOs by Address

This endpoint retrieves an ordered list of confirmed UTXOs for a given set of addresses - max 20 addresses per request. Returns up to 20 items in one request.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/addresses/confirmed/unspent
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/
confirmed/unspent" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [\"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP\",\"1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob\" ] }"
Request body JSON structure
{
    "addresses": 
    [
    	"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
    	"1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob"
    ]
}
Response JSON structure
[
    {
        "address": "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "unspent": [
            {
                "height": 657540,
                "tx_pos": 1,
                "tx_hash": "d75485c2329a533fd06b5f55a3f21644741c0258f2974d5d989e946a0bb4357f",
                "value": 25000000
            },
            {
                "height": 657542,
                "tx_pos": 1,
                "tx_hash": "55a656d50327ec3237fa6e821ab62294695cfd508d631dc9b04dc3a395cf0a37",
                "value": 25000000
            }
        ],
        "error": ""
    },
    {
        "address": "1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob",
        "unspent": [
                {
                "height": 658133,
                "tx_pos": 1,
                "tx_hash": "7ae43aac97396bc99616d8273c6cd9b57f017d6d49aca742fbc8c214fee49fa7",
                "value": 25000000
            },
            {
                "height": 658134,
                "tx_pos": 1,
                "tx_hash": "5b25a56bbb959f9cf4b3e48dbbe412bf5cc85e655d27f87c3bfb07aa6aa01518",
                "value": 25000000
            }
        ],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Unspent UTXOs by Script

This endpoint retrieves a combined, ordered list of both confirmed and unconfirmed UTXOs for a given script. Returns up to 100k unconfirmed results in one request. Confirmed results are paginated if more than 1000 are available. The rest can be accessed using the provided next-page token.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/script/<scriptHash>/unspent/all
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/script/b3005d46af31c4b5675b73c17579b7bd366dfe10635b7b43ac111aea5226efb6/unspent/all"
Response JSON structure
{
    "script": "b3005d46af31c4b5675b73c17579b7bd366dfe10635b7b43ac111aea5226efb6",
    "result": [
                {
                    "tx_pos": 1,
                    "tx_hash": "9c3801270d353066ed0553efb243bccc296d16e8ba589797934717c3f1ac030d",
                    "value": 98,
                    "isSpentInMempoolTx": false,
                    "hex": "76a914d0a69b53d9a1e229b51a60cc24814f8750b7446188ac",
                    "status": "unconfirmed"
                },
                ...
                {
                    "height": 861936,
                    "tx_pos": 0,
                    "tx_hash": "46b080bf212f3b355cffe7956db3adb53840ac550e51110577317df030039d7f",
                    "value": 100,
                    "isSpentInMempoolTx": true,
                    "status": "confirmed"
                }
            ],
    "error": ""
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

scriptHash

The script hash: Sha256 hash of the binary bytes of the locking script (ScriptPubKey), expressed as a hexadecimal string.

Get Unconfirmed UTXOs by Script

This endpoint retrieves the ordered list of unconfirmed UTXOs for a given script. Returns up to 100k results in one request.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/script/<scriptHash>/unconfirmed/unspent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/script/0374d9ee2df8e5d7c5fd8359f33456996f2a1a9c76d9c783d2f8d5ee05ba5832/unconfirmed/unspent"
Response JSON structure
{
    "result": [
        {
            "tx_pos": 1,
            "tx_hash": "93d8ae93a9e074c555d80e86c130b6cd4d5c7efa2795f91b2aea285c546512c6",
            "value": 181724,
            "hex": "76a9148a32b77e8f9bce47179fe03b6894e3d37003099888ac"
        }
    ]
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

scriptHash

The script hash: Sha256 hash of the binary bytes of the locking script (ScriptPubKey), expressed as a hexadecimal string.

Bulk Unconfirmed UTXOs by Script

This endpoint retrieves an ordered list of unconfirmed UTXOs for a given set of scripthashes - max 20 scripthashes per request. Returns up to 20 items in one request.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/scripts/unconfirmed/unspent
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/scripts/unconfirmed/unspent" \
  --header "Content-Type: application/json" \
  --data "{\"scripts\" : [\"f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7\",\"995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3\" ] }"
Request body JSON structure
{
    "scripts": [
        "f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7",
        "995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3"
    ]
}
Response JSON structure
[
    {
        "script": "f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7",
        "unspent": [
            {
                "height": 620539,
                "tx_pos": 0,
                "tx_hash": "4ec3b63d764558303eda720e8e51f69bbcfe81376075657313fb587306f8a9b0",
                "value": 450000
            }
        ],
        "error": ""
    },
    {
        "script": "995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3",
        "unspent": [],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Confirmed UTXOs by Script

This endpoint retrieves the ordered list of confirmed UTXOs for a given script. Pagination is available using the provided next-page token.

The "isSpentInMempoolTx" flag enables filtering of spent unconfirmed transactions from this set.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/script/<scriptHash>/confirmed/unspent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/script/0374d9ee2df8e5d7c5fd8359f33456996f2a1a9c76d9c783d2f8d5ee05ba5832/confirmed/unspent"
Response JSON structure
{
    "result": [
        {
            "height": 797518,
            "tx_pos": 0,
            "tx_hash": "6cc9631ef3dad77eb0141134167f20469d0b4e61405de57fe6a9ac71b943bb9f",
            "value": 181827,
            "isSpentInMempoolTx": false
        }
    ]
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

scriptHash

The script hash: Sha256 hash of the binary bytes of the locking script (ScriptPubKey), expressed as a hexadecimal string.

limit

Between 1 and 10000; default is 10000.

token

Provided next page token.

Bulk Confirmed UTXOs by Script

This endpoint retrieves an ordered list of confirmed UTXOs for a given set of scripthashes - max 20 scripthashes per request. Returns up to 20 items in one request.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/scripts/confirmed/unspent
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/scripts/confirmed/unspent" \
  --header "Content-Type: application/json" \
  --data "{\"scripts\" : [\"f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7\",\"995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3\" ] }"
Request body JSON structure
{
    "scripts": [
        "f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7",
        "995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3"
    ]
}
Response JSON structure
[
    {
        "script": "f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7",
        "unspent": [
            {
                "height": 620539,
                "tx_pos": 0,
                "tx_hash": "4ec3b63d764558303eda720e8e51f69bbcfe81376075657313fb587306f8a9b0",
                "value": 450000
            }
        ],
        "error": ""
    },
    {
        "script": "995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3",
        "unspent": [],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Unconfirmed Spent Tx Output

This endpoint retrieves where the specified unconfirmed transaction output was spent.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/<txid>/<voutIndex>/unconfirmed/spent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/tx/d2d9231b0d3cc19f1b9cfe798b8e68eaf8db3cd803128779c8aabaaea9cba4ea/1/unconfirmed/spent"
Response JSON structure
{
    "txid": "b905857a36586e68b8186be1e7b1ac56de196f5257536f019d7071cbdb0608a7",
    "vin": 0
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

txid

The transaction ID.

voutIndex

The specific output index.

Get Confirmed Spent Tx Output

This endpoint retrieves where the specified confirmed transaction output was spent.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/<txid>/<voutIndex>/confirmed/spent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/tx/17d533c6a215223a62eef389707f77bef1601a18e4e994805a7846c3f3d50870/2/confirmed/spent"
Response JSON structure
{
    "txid": "87645a7c4a9a5a9b9cd1468db19cdba44129c35cc487fc57c4d8843141ad2551",
    "vin": 2
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

txid

The transaction ID.

voutIndex

The specific output index.

Get Spent Transaction Output

This endpoint retrieves where the specified transaction output was spent, checking both confirmed and unconfirmed in a single call.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/<txid>/<voutIndex>/spent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/tx/17d533c6a215223a62eef389707f77bef1601a18e4e994805a7846c3f3d50870/2/spent"
Response JSON structure
{
    "txid": "87645a7c4a9a5a9b9cd1468db19cdba44129c35cc487fc57c4d8843141ad2551",
    "vin": 2
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

txid

The transaction ID.

voutIndex

The specific output index.

Errors

Error
Description

400 Bad Request

If UTXO is unknown.

404 Not Found

If UTXO is known but spent details are not found, i.e., it's still unspent.

Bulk Spent Transaction Outputs

This endpoint retrieves where the specified transaction outputs were spent, checking both confirmed and unconfirmed in a single call.

  • Max 20 transaction outputs per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/utxos/spent
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/utxos/spent" \
  --header "Content-Type: application/json" \
  --data "{\"utxos\" :[{ \"txid\" :\"87645a7c4a9a5a9b9cd1468db19cdba44129c35cc487fc57c4d8843141ad2551\", \"vout\" : 2}, {\"txid\" :\"e05de19075bc8205d702036a53d3e21ff6a2964f1e9941b913921e1e83d82c91\", \"vout\" : 0}]}"
Request body JSON structure
{
    "utxos":
    [
        {
        "txid": "87645a7c4a9a5a9b9cd1468db19cdba44129c35cc487fc57c4d8843141ad2551",
        "vout": 2
        },
        {
        "txid": "e05de19075bc8205d702036a53d3e21ff6a2964f1e9941b913921e1e83d82c91",
        "vout": 0
        }
    ]
}
Response JSON structure
[
    {
        "utxo": {
            "txid": "87645a7c4a9a5a9b9cd1468db19cdba44129c35cc487fc57c4d8843141ad2551",
            "vout": 2
        },
        "spentIn": {
            "txid": "88d8ce011179fac0dc466a1c5fcb734a91b076d15354aee4f7186ea3f5921533",
            "vin": 93,
            "status": "confirmed"
        },
        "error": ""
    },
    {
        "utxo": {
            "txid": "e05de19075bc8205d702036a53d3e21ff6a2964f1e9941b913921e1e83d82c91",
            "vout": 0
        },
        "spentIn": {
            "txid": "81f4ffcdc8ac15a9f360196f95f8e4e32c2e2c4fb78fdca64e52856820d3ed3d",
            "vin": 0,
            "status": "unconfirmed"
        },
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Errors

Parameter
Description

400 Bad Request

If UTXO is unknown.

404 Not Found

If UTXO is known but spent details are not found, i.e., it's still unspent.

ElectrumX Wrapper for ElectrumSV (Beta)

Use either the 50001 ,50002 , or 50003 port.

(Deprecated) Get UTXOs by Address

This endpoint is powered by ElectrumX and is planned for removal in the near future.

This endpoint retrieves an ordered list of UTXOs for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/unspent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1GJ3x5bcEnKMnzNFPPELDfXUCwKEaLHM5H/unspent"

Returns a response as long as the response message is less than 1MB in size.

Response JSON structure
[
    {
        "height": 578325,
        "tx_pos": 0,
        "tx_hash": "62824e3af3d01113e9bce8b73576b833990d231357bd718385958c21d50bbddd",
        "value": 1250020815
    },
    {
        "height": 578326,
        "tx_pos": 0,
        "tx_hash": "4b008a10eebcf70f384442e4e3147bc76c6e4f764b516b208e148d700b965deb",
        "value": 1251827826
    },
    ...
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

(Deprecated) Bulk UTXOs by Address

This endpoint is powered by ElectrumX and is planned for removal in the near future.

This endpoint retrieves a list of UTXOs for multiple addresses in a single request.

  • Max 20 addresses per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/addresses/unspent
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/unspent" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [\"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP\",\"1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob\" ] }"

The JSON structure for the above post request:

JSON structure
{
    "addresses": 
    [
    	"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
    	"1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob"
    ]
}
Response JSON structure
[
    {
        "address": "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "unspent": [
            {
                "height": 657540,
                "tx_pos": 1,
                "tx_hash": "d75485c2329a533fd06b5f55a3f21644741c0258f2974d5d989e946a0bb4357f",
                "value": 25000000
            },
            {
                "height": 657542,
                "tx_pos": 1,
                "tx_hash": "55a656d50327ec3237fa6e821ab62294695cfd508d631dc9b04dc3a395cf0a37",
                "value": 25000000
            }
        ],
        "error": ""
    },
    {
        "address": "1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob",
        "unspent": [
                {
                "height": 658133,
                "tx_pos": 1,
                "tx_hash": "7ae43aac97396bc99616d8273c6cd9b57f017d6d49aca742fbc8c214fee49fa7",
                "value": 25000000
            },
            {
                "height": 658134,
                "tx_pos": 1,
                "tx_hash": "5b25a56bbb959f9cf4b3e48dbbe412bf5cc85e655d27f87c3bfb07aa6aa01518",
                "value": 25000000
            }
        ],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

(Deprecated) Get UTXOs by Script

This endpoint is powered by ElectrumX and is planned for removal in the near future.

This endpoint retrieves the ordered list of UTXOs for a given script.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/script/<scriptHash>/unspent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/script/995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3/unspent"

Returns a response as long as the response message is less than 1MB in size.

Response JSON structure
[
    {
        "height": 578325,
        "tx_pos": 0,
        "tx_hash": "62824e3af3d01113e9bce8b73576b833990d231357bd718385958c21d50bbddd",
        "value": 1250020815
    },
    {
        "height": 578326,
        "tx_pos": 0,
        "tx_hash": "4b008a10eebcf70f384442e4e3147bc76c6e4f764b516b208e148d700b965deb",
        "value": 1251827826
    },
    ...
]    

URL Parameters

Parameter
Description

network

The selected network: main or test.

scriptHash

The script hash: Sha256 hash of the binary bytes of the locking script (ScriptPubKey), expressed as a hexadecimal string.

(Deprecated) Bulk UTXOs by Script

This endpoint is powered by ElectrumX and is planned for removal in the near future.

This endpoint retrieves a list of UTXOs for multiple scripts in a single request.

  • Max 20 scripts per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/scripts/unspent
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/scripts/unspent" \
  --header "Content-Type: application/json" \
  --data "{\"scripts\" : [\"f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7\",\"995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3\" ] }"

The JSON structure for the above post request:

JSON structure
{
    "scripts": [
        "f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7",
        "995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3"
    ]
}
Response JSON structure
[
    {
        "script": "f814a7c3a40164aacc440871e8b7b14eb6a45f0ca7dcbeaea709edc83274c5e7",
        "unspent": [
            {
                "height": 620539,
                "tx_pos": 0,
                "tx_hash": "4ec3b63d764558303eda720e8e51f69bbcfe81376075657313fb587306f8a9b0",
                "value": 450000
            }
        ],
        "error": ""
    },
    {
        "script": "995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3",
        "unspent": [],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Address

Get Address Info

This endpoint retrieves various information for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/info
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/16ZqP5Tb22KJuvSAbjNkoiZs13mmRmexZA/info"
Response JSON structure
{
    "address": "16ZqP5Tb22KJuvSAbjNkoiZs13mmRmexZA",
    "ismine": false,
    "isscript": false,
    "isvalid": true,
    "iswatchonly": false,
    "scriptPubKey": "76a9143d0e5368bdadddca108a0fe44739919274c726c788ac"
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Get Address Usage Status

This endpoint serves as a usage status flag for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/used
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/174XactYXkNJkPYBpsPAuzHkwG5snmLNpC/used"
Response JSON structure
true

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Get Associated Scripthashes

There are some addresses that are associated with multiple script types. This endpoint returns a list of scripthashes associated to the given address, and their types.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/scripts
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX/scripts"
Response JSON structure
[
    {
        "script": "55f4cd3dabddd62707b374f69f66b97f5f53dac5b204bd6c09dcad39b54862d1",
        "type": "pubkeyhash"
    },
    {
        "script": "cc0d7111befe9f24f1824c797e837c5cff2f8773901ccb9aca0372a2a6c48d34",
        "type": "pubkey"
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Download Statement

You can download the statement (in PDF) for a given address.

HTTP Request
GET https://<network>.whatsonchain.com/statement/<address>
cURL
curl --location --request GET  "https://main.whatsonchain.com/statement/16ZqP5Tb22KJuvSAbjNkoiZs13mmRmexZA"

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Get Unconfirmed Balance

This endpoint retrieves the unconfirmed balance for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/unconfirmed/balance
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1Dbj1LUxTqtuZ1U52KZiZChLPHkTAMiD6h/unconfirmed/balance"
Response JSON structure
{
    "unconfirmed": 103
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Bulk Unconfirmed Balance

This endpoint retrieves the unconfirmed balance for multiple addresses in a single request.

  • Max 20 addresses per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/addresses/unconfirmed/balance
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/unconfirmed/balance" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [\"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP\" ] }"
Request body JSON structure
{
    "addresses":
    [
        "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP"
    ]
}
Response JSON structure
[
    {
        "address": "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "unconfirmed": 0,
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Confirmed Balance

This endpoint retrieves the confirmed balance for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/confirmed/balance
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1Dbj1LUxTqtuZ1U52KZiZChLPHkTAMiD6h/confirmed/balance"
Response JSON structure
{
    "confirmed": 181827
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Bulk Confirmed Balance

This endpoint retrieves the confirmed balance for multiple addresses in a single request.

  • Max 20 addresses per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/addresses/confirmed/balance
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/confirmed/balance" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [\"1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob\",\"1ApLMk225o7S9FvKwpNChB7CX8cknQT9Hy\" ] }"
Request body JSON structure
{
    "addresses":
    [
        "1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob",
        "1ApLMk225o7S9FvKwpNChB7CX8cknQT9Hy"
    ]
}
Response JSON structure
[
    {
        "address": "1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob",
        "script": "4f8f588fc9bd7304dc73a14c5d3d0813e048986465e22587e3166ce04225a756",
        "confirmed": 0,
        "error": ""
    },
    {
        "address": "1ApLMk225o7S9FvKwpNChB7CX8cknQT9Hy",
        "script": "9b15c6471cb6f0314250e9ff180b4197a9c409c2791261ebe4e0c4b468ccaeb8",
        "confirmed": 688992295481,
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

(Deprecated) Get Balance

This endpoint is powered by ElectrumX and is planned for deprecation in the near future.

This endpoint retrieves both the confirmed and unconfirmed balance for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/balance
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1GJ3x5bcEnKMnzNFPPELDfXUCwKEaLHM5H/balance"
Response JSON structure
{
    "confirmed":533134093647,
    "unconfirmed":0
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

(Deprecated) Bulk Balance

This endpoint is powered by ElectrumX and is planned for deprecation in the near future.

This endpoint retrieves both the confirmed and unconfirmed balance for multiple addresses in a single request.

  • Max 20 addresses per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/addresses/balance
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/balance" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [\"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP\",\"1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob\" ] }"

The JSON structure for the above post request:

JSON structure
{
    "addresses":
    [
        "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob"
    ]
}
Response JSON structure
[
    {
        "address": "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "balance": {
            "confirmed": 450000,
            "unconfirmed": 0
        },
        "error": ""
    },
    {
        "address": "1KGHhLTQaPr4LErrvbAuGE62yPpDoRwrob",
        "balance": {
            "confirmed": 0,
            "unconfirmed": 0
        },
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Unconfirmed History

This endpoint retrieves unconfirmed transactions for a given address. Returns up to 100k results in one request.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/unconfirmed/history
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1Dbj1LUxTqtuZ1U52KZiZChLPHkTAMiD6h/unconfirmed/history"
Response JSON structure
{
    "result": [
        {
            "tx_hash": "93d8ae93a9e074c555d80e86c130b6cd4d5c7efa2795f91b2aea285c546512c6"
        },
        {
            "tx_hash": "6bcd7708adf5c8c00d299628ef86fa5d982ccd1909254f46ea0f0a70c4c319f7"
        },
        {
            "tx_hash": "cf1f1fd7962aeac56932b0e522d83c163d89873f2e26a1519bcc0d88772d0e78"
        },
        ...
    ]
}    

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

Bulk Unconfirmed History

This endpoint retrieves the history of unconfirmed transactions for a given set of addresses.

  • Max 20 addresses per request.

  • Max 100 items returned per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/addresses/unconfirmed/history
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/unconfirmed/history" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [ \"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP\" ] }"
Request body JSON structure
{
    "addresses": [
        "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP"
    ]
}
Response JSON structure
[
    {
        "address": "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "script": "c7713679ea48e31aec663612f5cbaeb86f9241677c0397b42d957545b47ca2fe",
        "result": [
            {
                "tx_hash": "6216506e2b5ef029595e1b29a20c279889873a9da4e98bcb5c619a4756ab6932",
                "height": 658093
            },
            {
                "tx_hash": "df860638d1530d2ba1f25d167fa24bbef3b1387e94207ee5e11fa535413aff39",
                "height": 658093
            }
        ],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Confirmed History

This endpoint retrieves confirmed transactions for a given address. Pagination is available using the provided next-page token.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/confirmed/history
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1Dbj1LUxTqtuZ1U52KZiZChLPHkTAMiD6h/confirmed/history"
Response JSON structure
{
    "result": [
        {
            "tx_hash": "6cc9631ef3dad77eb0141134167f20469d0b4e61405de57fe6a9ac71b943bb9f",
            "height": 797518
        }
    ]
} 

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

order

Ordering: asc or desc; default is desc.

limit

Between 1 and 1000; default is 100.

height

Starting block height for history; default is 0.

token

Provided next page token.

Bulk Confirmed History

This endpoint retrieves the history of confirmed transactions for a given set of addresses.

  • Max 20 addresses per request.

  • Max 20 items returned per request.

For pagination please use the single address endpoint.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/addresses/confirmed/history
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/confirmed/history" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [ \"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP\" ] }"
Request body JSON structure
{
    "addresses": [
        "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP"
    ]
}
Response JSON structure
[
    {
        "address": "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "script": "c7713679ea48e31aec663612f5cbaeb86f9241677c0397b42d957545b47ca2fe",
        "result": [
            {
                "tx_hash": "6216506e2b5ef029595e1b29a20c279889873a9da4e98bcb5c619a4756ab6932",
                "height": 658093
            },
            {
                "tx_hash": "df860638d1530d2ba1f25d167fa24bbef3b1387e94207ee5e11fa535413aff39",
                "height": 658093
            }
        ],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Bulk History

This endpoint retrieves the history of both confirmed and unconfirmed transactions for a given set of addresses.

  • Max 20 addresses per request.

  • Max 1000 confirmed and max 1000 unconfirmed history items returned per request.

  • Page tokens provided if address contains more items than above.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/addresses/history/all
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/addresses/history/all" \
  --header "Content-Type: application/json" \
  --data "{\"addresses\" : [ \"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP\", \"19SsDUJ29XM2VDCkZKnTXJ9Zjt3gMtnrwC\" ] }"
Request body JSON structure
{
    "addresses": [
        "16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "19SsDUJ29XM2VDCkZKnTXJ9Zjt3gMtnrwC"
    ]
}
Response JSON structure
[
    {
        "address":"16ZBEb7pp6mx5EAGrdeKivztd5eRJFuvYP",
        "script":"c7713679ea48e31aec663612f5cbaeb86f9241677c0397b42d957545b47ca2fe",
        "unconfirmed":
            {
                "result":[],
                "error":""
            },
        "confirmed":
            {
                "result":[
                    {
                        "tx_hash":"6216506e2b5ef029595e1b29a20c279889873a9da4e98bcb5c619a4756ab6932",
                        "height":658093
                    },
                    {
                        "tx_hash":"df860638d1530d2ba1f25d167fa24bbef3b1387e94207ee5e11fa535413aff39",
                        "height":658093
                    }
                ],
                "error":""
            }
    },
    {
        "address":"19SsDUJ29XM2VDCkZKnTXJ9Zjt3gMtnrwC",
        "script":"9ad0daaac33264199ce40596970c5ccf0096eb05b9b020002a3f1c2202841ef9",
        "unconfirmed":
            {
                "result":[],
                "error":""
            },
        "confirmed":
            {
                "result":
                    [
                        {
                            "tx_hash":"06f978c8758b45aa298e74d2951123811da06d9b22ad433fcaeceb90fb3db6cd",
                            "height":825487
                        },
                        {
                            "tx_hash":"064cad8a9ff3caad45579ee514d6a352f402ab02ed355bc9d4f9fce3eac07813",
                            "height":825488
                        }
                    ],
                "error":""
            }
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

(Deprecated) Get History

This endpoint is powered by ElectrumX and is planned for deprecation in the near future.

This endpoint retrieves both confirmed and unconfirmed transactions for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/history
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1GJ3x5bcEnKMnzNFPPELDfXUCwKEaLHM5H/history"

Returns a response as long as the response message is less than 1MB in size.

Response JSON structure
[
    {
        "tx_hash": "2b5ccedd76ba0d524d95ecce1c8a76e5888e0f13591734be0169ba0220c69208",
        "height": 573216
    },
    {
        "tx_hash": "7fe815e14b32aaaecc2cca7ed605ed612b532765710917cb711ea71cf55e36b5",
        "height": 573229
    },
    {
        "tx_hash": "b28dd1723d0d1fa6e4b2875f7419028c1c1441fc02469aebc444c0a42d0bac3f",
        "height": 573230
    },
    ...
]    

URL Parameters

Parameter
Description

network

The selected network: main or test.

address

The address

On-Chain Data

Get OP_RETURN Data by Tx Hash

This endpoint returns OP_RETURN data as hex for each output in the transaction.

URL Parameters

WoC Plugins

It is our goal to make it easier for anyone to provide metadata or showcase the on-chain data. We believe that by empowering the community, we will continue to unlock another aspect of the boundless potential of the Bitcoin blockchain.

To facilitate this, we have provided the ability to create and publish plugins. The plugins feature allows anyone to add more context or provide a different view/UI for transactions, blocks, addresses, OP_RETURN data, or user's searched terms.

On the Manage Plugins page, click on the "Lab" tab and fill in the required plugin details.

Data: You can create this Plugin type to decode and display the OP_RETURN output. The response provided by the plugin's webhook will be rendered when a user tries to decode the OP_RETURN data on the transactions page.

Block: This type of plugin can be used to share any metadata/stats for a given block. Appears as a new tab on the block page with the data provided by the plugin's webhook.

Address: This type of plugin can be used to share any metadata/stats for a given address. Appears as a new tab on the address page with the data provided by the plugin's webhook.

Transaction: This type of plugin can be used to share any metadata/stats for a given transaction. Appears as a new tab on the transaction page with the data provided by the plugin's webhook.

Script: This type of plugin can be used to share any metadata/stats for a given scripthash. Appears as a new tab on the scripthash page with the data provided by the plugin's webhook.

Search engine: If you are interested in sharing data from your specialized indexer, use this plugin type to help users search your indexed data when they search anything on whatsonchain.com via the search bar.

Don't forget to press "Save" after providing the required plugin details.

To Edit, Delete or Publish a plugin, click on the menu option next to the plugin name.

When a new plugin is created or is in the development phase, it is listed in the "Lab" tab. Plugins listed in the "Lab" are not available publicly and the plugin data is saved locally in the browser's local storage.

All the published plugins are listed under the "Plugins" section.

Output Tags

  • IDs of a few example transactions

  • Any pattern that could be used to detect your transactions with enough precision

  • Name of the protocol used for the data/script (if any)

  • Brand colors, for tag background and tag text

  • The logo file

Optional:

  • A link to the webpage for your app, protocol, or token.

  • A short description of your app, protocol, or token.

After we've received this information, we can go and add the new tag to our system, which should be available from then on.

We've created a wrapper for our UTXO service that acts exactly like an ElectrumX server that you can plug into the wallet (Network - Server).

Use any of these URLs to try it out and let us know what you think in the :

URL1:

URL2:

Call standard individual and endpoints with page token for more history if required.

Parameter
Description

To create a new plugin or see the existing plugins, navigate to the "Tools" Menu and click on "Manage Plugins"

Below is the list and purpose of different plugin types. And here you can find a .

If you have any questions, please free free to ask via the

WhatsOnChain tags recognized transaction outputs in every block. We also provide basic block stats around those tags, both in the and on the .

If you want your transaction outputs to be tagged, please reach out to us over or in our with these details:

ElectrumSV
Telegram channel
http://electrumx-adapter-1.whatsonchain.com/
http://electrumx-adapter-2.whatsonchain.com/
unconfirmed
confirmed
HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tx/<hash>/opreturn
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/tx/46c5495468b68248b69e55aa76a6b9ca1cb343bee9477c9c121358380e421ff3/opreturn"
Response JSON structure
[
    {
        "n": 2,
        "hex": "006a075354554b2e434f"
    }
]   

network

The selected network: main or test.

hash

The desired TX hash.

Script

Get Script Usage Status

This endpoint serves as a usage status flag for a given script.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/script/<scriptHash>/used
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/script/3a9b9e2285ae40de7679e48efcef7d029a46a7b3120063a6d24347ce4452e6ee/used"
Response JSON structure
false

URL Parameters

Parameter
Description

network

The selected network: main or test.

scriptHash

The script hash: Sha256 hash of the binary bytes of the locking script (ScriptPubKey), expressed as a hexadecimal string.

Get Unconfirmed Script History

This endpoint retrieves the history of unconfirmed transactions for a given script. Returns up to 100k results in one request.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/script/<scriptHash>/unconfirmed/history
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/script/0374d9ee2df8e5d7c5fd8359f33456996f2a1a9c76d9c783d2f8d5ee05ba5832/unconfirmed/history"
Response JSON structure
{
    "result": [
        {
            "tx_hash": "93d8ae93a9e074c555d80e86c130b6cd4d5c7efa2795f91b2aea285c546512c6"
        },
        {
            "tx_hash": "6bcd7708adf5c8c00d299628ef86fa5d982ccd1909254f46ea0f0a70c4c319f7"
        },
        {
            "tx_hash": "cf1f1fd7962aeac56932b0e522d83c163d89873f2e26a1519bcc0d88772d0e78"
        },
        ...
    ]
}  

URL Parameters

Parameter
Description

network

The selected network: main or test.

scriptHash

The script hash: Sha256 hash of the binary bytes of the locking script (ScriptPubKey), expressed as a hexadecimal string.

Bulk Unconfirmed Script History

This endpoint retrieves the history of unconfirmed transactions for a given set of scripts.

  • Max 20 scripthashes per request.

  • Max 100 items returned per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/scripts/unconfirmed/history
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/scripts/unconfirmed/history" \
  --header "Content-Type: application/json" \
  --data "{\"scripts\" : [ \"8ca0d228066cfff2b7f31c7db7737185be9d06ff5c07206b61f06d80a4cdd9a8\" ] }"
Request body JSON structure
{
    "scripts": [
        "8ca0d228066cfff2b7f31c7db7737185be9d06ff5c07206b61f06d80a4cdd9a8"
    ]
}
Response JSON structure
[
    {
        "script": "8ca0d228066cfff2b7f31c7db7737185be9d06ff5c07206b61f06d80a4cdd9a8",
        "result": [
            {
                "tx_hash": "4e6be25adf9b2bdf90a9f88e966f7cb5e9d71a22325c8a1e6d687f32aab340d4"
            }
        ],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

Get Confirmed Script History

This endpoint retrieves the history of confirmed transactions for a given script. Pagination is available using the provided next-page token.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/script/<scriptHash>/confirmed/history
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/script/0374d9ee2df8e5d7c5fd8359f33456996f2a1a9c76d9c783d2f8d5ee05ba5832/confirmed/history"
Response JSON structure
{
    "result": [
        {
            "tx_hash": "6cc9631ef3dad77eb0141134167f20469d0b4e61405de57fe6a9ac71b943bb9f",
            "height": 797518
        }
    ]
}

URL Parameters

Parameter
Description

network

The selected network: main or test.

scriptHash

The script hash: Sha256 hash of the binary bytes of the locking script (ScriptPubKey), expressed as a hexadecimal string.

order

Ordering: asc or desc; default is desc.

limit

Between 1 and 1000; default is 100.

height

Starting block height for history; default is 0.

token

Provided next page token.

Bulk Confirmed Script History

This endpoint retrieves the history of confirmed transactions for a given set of scripts.

  • Max 20 scripthashes per request.

  • Max 20 items returned per request.

HTTP Request
POST https://api.whatsonchain.com/v1/bsv/<network>/scripts/confirmed/history
cURL
curl --location --request POST "https://api.whatsonchain.com/v1/bsv/main/scripts/confirmed/history" \
  --header "Content-Type: application/json" \
  --data "{\"scripts\" : [ \"8ca0d228066cfff2b7f31c7db7737185be9d06ff5c07206b61f06d80a4cdd9a8\" ] }"
Request body JSON structure
{
    "scripts": [
        "8ca0d228066cfff2b7f31c7db7737185be9d06ff5c07206b61f06d80a4cdd9a8"
    ]
}
Response JSON structure
[
    {
        "script": "8ca0d228066cfff2b7f31c7db7737185be9d06ff5c07206b61f06d80a4cdd9a8",
        "result": [
            {
                "tx_hash": "4e6be25adf9b2bdf90a9f88e966f7cb5e9d71a22325c8a1e6d687f32aab340d4"
            }
        ],
        "error": ""
    }
]

URL Parameters

Parameter
Description

network

The selected network: main or test.

(Deprecated) Get Script History

This endpoint is powered by ElectrumX and is planned for deprecation in the near future.

This endpoint retrieves both the confirmed and unconfirmed transactions for a given script.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/script/<scriptHash>/history
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/script/995ea8d0f752f41cdd99bb9d54cb004709e04c7dc4088bcbbbb9ea5c390a43c3/history"

Returns a response as long as the response message is less than 1MB in size.

Response JSON structure
[
    {
        "tx_hash": "52dfceb815ad129a0fd946e3d665f44fa61f068135b9f38b05d3c697e11bad48",
        "height": 620539
    },
    {
        "tx_hash": "4ec3b63d764558303eda720e8e51f69bbcfe81376075657313fb587306f8a9b0",
        "height": 620539
    }
]    

URL Parameters

Parameter
Description

network

The selected network: main or test.

scriptHash

The script hash: Sha256 hash of the binary bytes of the locking script (ScriptPubKey), expressed as a hexadecimal string.

Exchange Rate

Get Exchange Rate

This endpoint provides the current exchange rate for BSV.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/exchangerate
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/exchangerate"
Response
{
    "currency": "USD",
    "rate": "229.31633333333335",
    "time": 1660176000
}

URL Parameters

Parameter
Description

network

The selected network: main.

Get Historical Exchange Rate

This endpoint provides the historical exchange rate data for BSV. Exchange rate data goes back to 2018/11/19.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/exchangerate/historical?from=<unixtimestamp>&to=<unixtimestamp>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/exchangerate/historical?from=1660139745&to=1660312545"
Response
[
  {
    "rate": 60.3905,
    "time": 1660089600
  },
  {
    "rate": 62.661,
    "time": 1660176000
  },
  ...
]

URL Parameters

Parameter
Description

from

The starting date (unixtimestamp) to retrieve the exchange rate data.

to

The end date (unixtimestamp) to retrieve the exchange rate data.

WhatsOnChain.com
GitHub repo of example plugins
WoC devs telegram channel.
email
Telegram channel

WoC Sockets V1 (Deprecated)

This API is deprecated, please use the V2 going forward.

We recommend the centrifuge websocket client side libraries below:

Non-centrifuge clients connect to separate endpoints specified in each section.

The supported networks are:

  • Mainnet

  • Testnet

Simple js example using centrifuge client:
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/gh/centrifugal/centrifuge-js@latest/dist/centrifuge.min.js"></script>
    <script type="text/javascript">
    $(function () {
        const centrifuge = new Centrifuge('wss://socket.whatsonchain.com/blockheaders');

        centrifuge.on('publish', function(message) {
              console.log('Data: '+   JSON.stringify(message.data, null, 2))
        });

        centrifuge.on('disconnect', function(ctx){
            console.log('Disconnected: ' + ctx.reason + (ctx.reconnect?", will try to reconnect":", won't try to reconnect"));
        });

        centrifuge.on('connect', function(ctx){
            console.log('Connected with client ID ' + ctx.client + ' over ' + ctx.transport );
        });

        centrifuge.connect();
    });
    </script>
Simple js example using websocket API client
    <script type="text/javascript">
        window.addEventListener('load', function() {
            let clientID;
            let reconnect = true;
            let numFailures = 0;

            function connect() {
                // Subscribe to multiple channels
                const ws = new WebSocket('wss://socket.whatsonchain.com/websocket?channels=woc:chainStats');
                ws.onopen = function(e) {
                    numFailures = 0;
                    console.log("websocket: connection open",e);
                    // This is required to trigger connect on server side.
                 ws.send(JSON.stringify({}));
                };

                ws.onerror = function(e) {
                    numFailures++;
                    console.log("websocket: connection error: ", e);
                };

                ws.onclose = function (e) {
                    if (!reconnect) {
                        return;
                    }
                    setTimeout(function () {
                        console.log("websocket: connection reconnecting");
                        connect();
                    }, Math.min(numFailures * 1000, 20000));
                }

                ws.onmessage = function(e) {
                    console.log("websocket: new message");
                    processData(e.data);
                };
            }

            connect();

            function processData(rawData) {
                if (rawData.length === 0) {
                    console.log("--> ping");
                    return
                }
                console.log("--> " + rawData);
                const data = JSON.parse(rawData);
                const pushType = data.type || 0;
                switch (pushType) {
                    case 0:
                        console.log("new data from a channel " + data.channel + ": " + JSON.stringify(data.data));
                        break;
                    case 6:
                        clientID = data.data.client;
                        let subscriptions = [];
                        const subs = data.data.subs;
                        if (subs) {
                            for (const m in subs) {
                                if (subs.hasOwnProperty(m)) {
                                    subscriptions.push(m);
                                }
                            }
                        }
                        console.log("connected with client ID " + clientID + " and subscriptions: " + JSON.stringify(subscriptions));
                        break;
                    case 7:
                        clientID = null;
                        if (!data.data.reconnect) {
                            reconnect = false;
                            ws.close();
                            console.log("disconnected from a server, won't reconnect");
                        } else {
                            console.log("disconnected from a server, will reconnect");
                        }
                        break;
                    case 3:
                    console.log("unsubscribed from a channel " + data.channel);
                        break;
                    case 5:
                    console.log("subscribed to a channel " + data.channel);
                        break;
                    default:
                    console.log("unsupported push type " + data.type);
                }
            }

        });
    </script>

New Block Header Event

Receive new block header events in real time.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket?channels=woc:blockHeader

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket?channels=woc:blockHeader

URL - for centrifuge clients

  • Mainnet: wss://socket.whatsonchain.com/blockheaders

  • Testnet: wss://socket-testnet.whatsonchain.com/blockheaders

Data JSON structure
{
  "hash": "0000000000000000010cb155a44577ff3541940ec4355c026dc2706fb7e261d6",
  "confirmations": 4,
  "size": 1229956,
  "height": 676421,
  "version": 541065216,
  "versionHex": "20400000",
  "merkleroot": "e2f64e87c0362314b65dc28b4367c41d904c22b891b652951779336ef735386b",
  "txcount": 654,
  "time": 1614534798,
  "mediantime": 1614527058,
  "nonce": 610133701,
  "bits": "180d359d",
  "difficulty": 83235621087.7299,
  "chainwork": "00000000000000000000000000000000000000000127d3854a414d8ec8f53190",
  "previousblockhash": "00000000000000000428ca33597675bd85f5a2ef464ba25e4db7b4a74d898d33",
  "nextblockhash": "00000000000000000cb40c1d850dece5cd3747e08a1e4066ef887251388c4ae6",
  "coinbaseTx": {
    "hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff410345520a2f7461616c2e636f6d2f506c656173652070617920302e3520736174732f627974652c20696e666f407461616c2e636f6d6eead6b0ad91f2ce86be0400ffffffff0176674325000000001976a9148e9170be3f733a9773c907517fb9b786f1c884c688ac00000000",
    "txid": "13686a10870d23b4c94642bf0b78d6630e2640fc0de83bc30af835d96bb17482",
    "hash": "13686a10870d23b4c94642bf0b78d6630e2640fc0de83bc30af835d96bb17482",
    "size": 150,
    "version": 1,
    "locktime": 0,
    "vin": [
      {
        "coinbase": "0345520a2f7461616c2e636f6d2f506c656173652070617920302e3520736174732f627974652c20696e666f407461616c2e636f6d6eead6b0ad91f2ce86be0400",
        "sequence": 4294967295
      }
    ],
    "vout": [
      {
        "value": 6.2517439,
        "n": 0,
        "scriptPubKey": {
          "asm": "OP_DUP OP_HASH160 8e9170be3f733a9773c907517fb9b786f1c884c6 OP_EQUALVERIFY OP_CHECKSIG",
          "hex": "76a9148e9170be3f733a9773c907517fb9b786f1c884c688ac",
          "reqSigs": 1,
          "type": "pubkeyhash",
          "addresses": [
            "1DzqBck9oyCBzxJbbje2s15deZis6BeATi"
          ],
          "isTruncated": false
        }
      }
    ],
    "blockhash": "0000000000000000010cb155a44577ff3541940ec4355c026dc2706fb7e261d6",
    "confirmations": 4,
    "time": 1614534798,
    "blocktime": 1614534798
  }
}

Block Headers History

Stream block headers starting at a pre-specified block height.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket/history?from=<blockHeight>

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket/history?from=<blockHeight>

URL - for centrifuge clients

  • Mainnet: wss://socket.whatsonchain.com/blockheaders/history?from=<blockHeight>

  • Testnet: wss://socket-testnet.whatsonchain.com/blockheaders/history?from=<blockHeight>

Data JSON structure
{
  "hash": "000000000000000007dde2992ff13fdaba5473341af1c45d0c19c86deb4c732a",
  "confirmations": 1,
  "size": 3449218,
  "height": 676417,
  "version": 536870912,
  "versionHex": "20000000",
  "merkleroot": "df1fe3b56cacd2f4063fbe41d15b51071c72d5748d265f4e61793db79ce0d8ff",
  "txcount": 8859,
  "time": 1614529458,
  "mediantime": 1614524118,
  "nonce": 347880361,
  "bits": "180d6633",
  "difficulty": 82056657294.07133,
  "chainwork": "00000000000000000000000000000000000000000127d3376e97bb73257c98c5",
  "previousblockhash": "00000000000000000b04692ac2bf62654e2ea577476e20ea74eb9e5b53f0ed48",
  "nextblockhash": ""
}

Block Transactions

Stream transactions from a block height and transaction index.

  • hex, vin and vout values are not published for message sizes greater than 10MB. Recommended to fetch details for such transactions using the REST endpoints using the published txid value.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket/transactions?from=<blockHeight>&txIndex={txIndex}&to=<blockHeight>&format={hex|json}

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket/transactions?from=<blockHeight>&txIndex={txIndex}&to=<blockHeight>&format={hex|json}

URL - for centrifuge clients

  • Mainnet: wss://socket.whatsonchain.com/block/transactions?from=<blockHeight>&txIndex={txIndex}&to=<blockHeight>&format={hex|json}

  • Testnet: wss://socket-testnet.whatsonchain.com/block/transactions?from=<blockHeight>&txIndex={txIndex}&to=<blockHeight>&format={hex|json}

Data JSON structure
{
  "txid": "20ac30f5aa6aebc0f9e532f32a9691bf7faa332c755d6aea1fd3f6ba36d195e8",
  "hash": "20ac30f5aa6aebc0f9e532f32a9691bf7faa332c755d6aea1fd3f6ba36d195e8",
  "size": 219,
  "version": 2,
  "locktime": 0,
  "vin": [
    {
      "txid": "15b416adf871f9285788ebf36b67714d9e49f413f3a3f083d80e01535bd40433",
      "vout": 1,
      "scriptSig": {
        "asm": "304402204ac1d9f22f09044f66aa6055835b19d5617c19ef180422683b9d168da272e40d022078d3e876f7134eb29cd9e26081feae70f393a1aa3e9926307233f1c419bd1eb641 02a3089907380f086e9d5616ef6e62876a2777ea0c5abca785b15ef92d173afdff",
        "hex": "47304402204ac1d9f22f09044f66aa6055835b19d5617c19ef180422683b9d168da272e40d022078d3e876f7134eb29cd9e26081feae70f393a1aa3e9926307233f1c419bd1eb6412102a3089907380f086e9d5616ef6e62876a2777ea0c5abca785b15ef92d173afdff"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_FALSE OP_RETURN 39366665313633626131303138386636",
        "hex": "006a1039366665313633626131303138386636",
        "type": "nulldata",
        "isTruncated": false
      }
    },
    {
      "value": 0.00007511,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 966a0c69734d51307ba0bcfcd9092b51addfaf78 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914966a0c69734d51307ba0bcfcd9092b51addfaf7888ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "1EiKQ9qiAkjDn86JvUt6aJpZvETq8uim2D"
        ],
        "isTruncated": false
      }
    }
  ]
}

URL Parameters

Parameter
Description

blockHeight

The height of the block.

txIndex

Index of a transaction as a starting point in the first block to deliver. Default value 0.

format

Hex or json. If hex, the response will include transaction hex and metadata. If json, hex is excluded. Default value is json.

Mempool Transactions

Receive mempool transactions in real time.

  • Mempool transactions are collected from multiple nodes.

  • Client side should be idempotent because duplicate transaction events are not guaranteed to have been removed.

  • hex, vin and vout values are not published for message sizes greater than 10MB. Recommended to fetch details for such transactions using the REST endpoints using the published txid value.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket?channels=woc:mempoolTx?filter=<filter1,filter2,...>

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket?channels=woc:mempoolTx?filter=<filter1,filter2,...>

URL - for centrifuge clients

  • Mainnet: wss://socket.whatsonchain.com/mempool?filter=<filter1,filter2,...>

  • Testnet: wss://socket-testnet.whatsonchain.com/mempool?filter=<filter1,filter2,...>

Data JSON structure
{
  "hex": "02 ...",
  "txid": "20ac30f5aa6aebc0f9e532f32a9691bf7faa332c755d6aea1fd3f6ba36d195e8",
  "hash": "20ac30f5aa6aebc0f9e532f32a9691bf7faa332c755d6aea1fd3f6ba36d195e8",
  "size": 219,
  "version": 2,
  "locktime": 0,
  "vin": [
    {
      "txid": "15b416adf871f9285788ebf36b67714d9e49f413f3a3f083d80e01535bd40433",
      "vout": 1,
      "scriptSig": {
        "asm": "304402204ac1d9f22f09044f66aa6055835b19d5617c19ef180422683b9d168da272e40d022078d3e876f7134eb29cd9e26081feae70f393a1aa3e9926307233f1c419bd1eb641 02a3089907380f086e9d5616ef6e62876a2777ea0c5abca785b15ef92d173afdff",
        "hex": "47304402204ac1d9f22f09044f66aa6055835b19d5617c19ef180422683b9d168da272e40d022078d3e876f7134eb29cd9e26081feae70f393a1aa3e9926307233f1c419bd1eb6412102a3089907380f086e9d5616ef6e62876a2777ea0c5abca785b15ef92d173afdff"
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_FALSE OP_RETURN 39366665313633626131303138386636",
        "hex": "006a1039366665313633626131303138386636",
        "type": "nulldata",
        "isTruncated": false
      }
    },
    {
      "value": 0.00007511,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 966a0c69734d51307ba0bcfcd9092b51addfaf78 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914966a0c69734d51307ba0bcfcd9092b51addfaf7888ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "1EiKQ9qiAkjDn86JvUt6aJpZvETq8uim2D"
        ],
        "isTruncated": false
      }
    }
  ]
}

URL Parameters

Parameter
Description

filter

The filter transactions based on the output (vout) types. The available filters are: nulldata, multisig, pubkey, pubkeyhash, scripthash, and nonstandard.

Chain Stats

Receive common chain stats every 10 seconds.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket?channels=woc:chainStats

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket?channels=woc:chainStats

URL - for centrifuge clients

  • Mainnet: wss://socket.whatsonchain.com/stats

  • Testnet: wss://socket-testnet.whatsonchain.com/stats

Data JSON structure
{
   "chainSummary":{
      "blocks":691040,
      "bestblockhash":"000000000000000006f693315876096d472a8313780df342905e1003a6cf0b70",
      "difficulty":102522924402.0986,
      "chainwork":"0000000000000000000000000000000000000000012cfa97321f921dab48da26",
      "networkhashps":650555175336335400,
      "circulatingSupply":18756500,
      "mempoolSize":6554,
      "mempoolBytes":16540861,
      "mempoolUsage":26650576,
      "exchangeRate":{
         "currency":"USD",
         "rate":"170.70749999999998"
      }
   },
   "latestBlocks":[
      {
         "hash":"000000000000000006f693315876096d472a8313780df342905e1003a6cf0b70",
         "confirmations":1,
         "size":208141,
         "height":691040,
         "version":538968064,
         "versionHex":"20200000",
         "merkleroot":"e3454f52b6715dcf4db5d8c8f237344ef6bd6d415d6e754a3b4b1083cd3ab48c",
         "txcount":102,
         "time":1623330613,
         "mediantime":1623328816,
         "nonce":3022302528,
         "bits":"180ab971",
         "difficulty":102522924402.0986,
         "chainwork":"0000000000000000000000000000000000000000012cfa97321f921dab48da26",
         "previousblockhash":"0000000000000000013ab5705e150967a057f807f396628231a7ceaa11a0bac1",
         "nextblockhash":"",
         "coinbaseTx":{...},
         "totalFees":0.0009790499999997593
      },
      {...},
      ...
   ]
}

WoC Sockets V2 (Beta)

New Block Header Event

Receive new block header events in real time.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket?channels=woc:blockHeader

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket?channels=woc:blockHeader

Block Headers History

Stream block headers starting at a pre-specified block height.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket/history?from=<blockHeight>

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket/history?from=<blockHeight>

Block Transactions

Stream transactions from a block height and transaction index.

  • hex, vin and vout values are not published for message sizes greater than 10MB. Recommended to fetch details for such transactions using the REST endpoints using the published txid value.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket/transactions?from=<blockHeight>&txIndex={txIndex}&to=<blockHeight>&format={hex|json}

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket/transactions?from=<blockHeight>&txIndex={txIndex}&to=<blockHeight>&format={hex|json}

URL Parameters

Mempool Transactions

Receive mempool transactions in real time.

  • Mempool transactions are collected from multiple nodes.

  • Client side should be idempotent because duplicate transaction events are not guaranteed to have been removed.

  • hex, vin and vout values are not published for message sizes greater than 10MB. Recommended to fetch details for such transactions using the REST endpoints using the published txid value.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket?channels=woc:mempoolTx?filter=<filter1,filter2,...>

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket?channels=woc:mempoolTx?filter=<filter1,filter2,...>

URL Parameters

Chain Stats

Receive common chain stats every 10 seconds.

URL

  • Mainnet: wss://socket.whatsonchain.com/websocket?channels=woc:chainStats

  • Testnet: wss://socket-testnet.whatsonchain.com/websocket?channels=woc:chainStats

Customized Events

WoC Widgets

You can embed aspects of the WhatsOnChian Home, Transaction, or Block pages in any application.

You can use the Widget Creator tool to toggle sections of the selected page and can immediately see what it will look like in the preview section.

Based on the selected options, a URL and the HTML code are generated for the integration into any website or application.

1Sat Ordinals (Beta)

At this moment only NFT tokens are supported. BSV-20 fungible tokens are not supported yet but will be in the near future.

Get Token by Origin Outpoint

This endpoint retrieves the token details by origin outpoint (the outpoint is the transaction ID and the output index).

URL Parameters

Get Token by Origin Number

This endpoint retrieves the token details by Origin number (the number is the block height, transaction index, and output index).

Example:

URL Parameters

Get Token's Data Content

This endpoint retrieves the content of the token's file, in case it has one.

URL Parameters

Get the Latest Token's Transfer

This endpoint retrieves the token's latest transfer with the origin token.

URL Parameters

Get the Token's Transfer History

This endpoint retrieves the token's history of transfers.

URL Parameters

Query Parameters

Get Transaction's Tokens

This endpoint retrieves tokens that a transaction contains.

Example:

URL Parameters

Query Parameters

Need an additional API endpoint?

Chain Info

Get Blockchain Info

This endpoint retrieves information about the state of the chain for the selected network.

URL Parameters

Get Circulating Supply

This endpoint retrieves the circulating supply of BSV.

URL Parameters

Get Chain Tips

This endpoint retrieves information about all known tips in the block tree.

The possible values for status:

  1. invalid: This branch contains at least one invalid block.

  2. headers-only: Not all blocks for this branch are available, but the headers are valid.

  3. valid-headers: All blocks are available for this branch, but they were never fully validated.

  4. valid-fork: This branch is not part of the active chain, but is fully validated.

  5. active: This is the tip of the active main chain, which is certainly valid.

URL Parameters

Get Peer Info

This endpoint retrieves information on peers connected to the node.

URL Parameters

alt text
Publish Plugin
Explorer website

– for a browser, NodeJS and React Native

- for Go language

- for iOS/Android with centrifuge-go as basis and

- for Dart and Flutter

– for native iOS development

– for native Android development and general Java

Parameter
Description
Parameter
Description

If your application needs customized/filtered events via WebSockets, please let us know in the

Go to the URL - , Click the TOOLS menu, and there you can find the Widget Creator.

1SatOrdinals in an implementation of Ordinals running on the BSV blockchain. More information .

The token origin represents the moment the NFT was created on the blockchain (more details ).

Parameter
Description

The token origin represents the moment the NFT was created on the blockchain (more details ).

Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description

If you want to make a request for an additional API endpoint that would help with your use case, please reach out to us using our . Please provide as much detail on what you're trying to achieve as possible.

Parameter
Description
Parameter
Description
centrifuge-js
centrifuge-go
centrifuge-mobile
gomobile
centrifuge-dart
centrifuge-swift
centrifuge-java
Data JSON structure
{
  "channel": "woc:blockHeader",
  "pub": {
    "data": {
      "hash": "000000000000000007405fd882e9d4bf3d7b2388010081fe443ee1e323d8a668",
      "confirmations": 1,
      "size": 368170789,
      "height": 892466,
      "version": 939524096,
      "versionHex": "38000000",
      "merkleroot": "b0ac43a40a42775d8f533a8eda00bed3257e12a5fca3c8cade47188e6b7aa382",
      "txcount": 9230,
      "time": 1744648860,
      "mediantime": 1744645401,
      "nonce": 2893086732,
      "bits": "181246e3",
      "difficulty": 60157618395.71893,
      "chainwork": "00000000000000000000000000000000000000000164d487adbc2b84d47d2831",
      "previousblockhash": "0000000000000000090fa4de4c971b0b3609acc1061b2020d22dc8d8bf72746a",
      "nextblockhash": "",
      "coinbaseTx": {
        "hex": "...",
        "txid": "1932aa0229b6b44be4b749b9e7279c02136374e2e77b4e890db761f8e74d2111",
        "hash": "1932aa0229b6b44be4b749b9e7279c02136374e2e77b4e890db761f8e74d2111",
        "size": 111,
        "version": 1,
        "locktime": 0,
        "vin": [
          {
            "n": 0,
            "coinbase": "03329e0d2f7461616c2e636f6d2fb9df41e723a18d95e09d0200",
            "sequence": 4294967295
          }
        ],
        "vout": [
          {
            "value": 3.13276008,
            "n": 0,
            "scriptPubKey": {
              "asm": "OP_DUP OP_HASH160 522cf9e7626d9bd8729e5a1398ece40dad1b6a2f OP_EQUALVERIFY OP_CHECKSIG",
              "hex": "...",
              "reqSigs": 1,
              "type": "pubkeyhash",
              "addresses": [
                "18VWHjMt4ixHddPPbs6righWTs3Sg2QNcn"
              ],
              "isTruncated": false
            },
            "scripthash": "1981f116576960fab6ac9a71ba3c12e4f98c2d9b34532bdb40f2e8cc03337fa2"
          }
        ],
        "blockhash": "000000000000000007405fd882e9d4bf3d7b2388010081fe443ee1e323d8a668",
        "confirmations": 1,
        "time": 1744648860,
        "blocktime": 1744648860,
        "blockheight": 892466,
        "vincount": 1,
        "voutcount": 1,
        "voutvalue": 3.13276008
      },
      "totalFees": 0.007760080000000169
    }
  }
}
Data JSON structure
{
  "version": 779362304,
  "previousblockhash": "00000000000000000bc431648160d242fba18cbeecc076afac2b6bcd97694a6f",
  "merkleroot": "4b9279e1e866a871a91089d93a03ad49a497132d788c91ebd2034603cdea3153",
  "time": 1731361379,
  "bits": 403627096,
  "nonce": 2610332676,
  "hash": "0000000000000000049b0fa5f3b5b6ffb672c91654fb86ea56004e0b1902778f",
  "height": 870420
}
Data JSON structure
{
  "txid": "03dd6bc953033a2b5e283b64bc3852ebbcbc1a6120fb51088e9d40d94db41871",
  "hash": "03dd6bc953033a2b5e283b64bc3852ebbcbc1a6120fb51088e9d40d94db41871",
  "size": 263,
  "version": 1,
  "locktime": 0,
  "vin": [
    {
      "n": 0,
      "txid": "797bb9fe7ce40a1628d4e9a91637c555df7d429abcd51dfc774eb98c3efc7111",
      "vout": 2,
      "scriptSig": {
        "asm": "3045022100... 02e24a81ebae0...",
        "hex": "...",
        "isTruncated": false
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0,
      "n": 0,
      "scriptPubKey": {
        "asm": "0 OP_RETURN 746478702e617070 703a313337303439322c70726f666974",
        "hex": "006a08746478702e61707010703a...",
        "type": "nulldata",
        "isTruncated": false
      },
      "scripthash": "2ac0e4bef9f2..."
    },
    ...
  ],
  "vincount": 1,
  "voutcount": 3,
  "voutvalue": 2.2054052100000003
}

blockHeight

The height of the block.

txIndex

Index of a transaction as a starting point in the first block to deliver. Default value 0.

format

Hex or json. If hex, the response will include transaction hex and metadata. If json, hex is excluded. Default value is json.

Data JSON structure
{
  "channel": "woc:mempoolTx:json",
  "pub": {
    "data": {
      "txid": "0ec9f572dc98234b6ee8860a04beeaba824cb60741a5d11054dc15dc300fa666",
      "hash": "0ec9f572dc98234b6ee8860a04beeaba824cb60741a5d11054dc15dc300fa666",
      "size": 170193,
      "version": 1,
      "locktime": 0,
      "vin": [
        {
          "n": 0,
          "txid": "181cb20e80d333d87aeedf1aa3aebc5b884ef3f68d14401d6c2d5b12dc16ce71",
          "vout": 55403,
          "scriptSig": {
            "asm": "30440220... 0342494361ea8...",
            "hex": "...",
            "isTruncated": false
          },
          "sequence": 4294967295
        }
      ],
      "vout": [
        {
          "value": 1e-8,
          "n": 0,
          "scriptPubKey": {
            "asm": "OP_DUP OP_HASH160 d5eb631a0e9d8c5728c68fc15b0e54754b29d83e OP_EQUALVERIFY OP_CHECKSIG",
            "hex": "...",
            "reqSigs": 1,
            "type": "pubkeyhash",
            "addresses": [
              "1LW6uqvMLPf2R62LFNnAizPjfQijE9vfsg"
            ],
            "isTruncated": false
          },
          "scripthash": "f70ee0566985..."
        },
        {
          "value": 1e-8,
          "n": 1,
          "scriptPubKey": { ... }
        },
        {
          "value": 0.00000654,
          "n": 5000,
          "scriptPubKey": {
            "asm": "OP_DUP OP_HASH160 38041fad29e8c1dce7fbcf3fc98b800a26dd2a4c OP_EQUALVERIFY OP_CHECKSIG",
            "hex": "...",
            "reqSigs": 1,
            "type": "pubkeyhash",
            "addresses": [
              "167BnGMU9cXjr5tDbJSBJJekKLMTrAQcry"
            ],
            "isTruncated": false
          },
          "scripthash": "8b55ee1a86..."
        }
      ],
      "vincount": 1,
      "voutcount": 5001,
      "voutvalue": 0.00005654000000000542
    }
  }
}

filter

The filter transactions based on the output (vout) types. The available filters are: nulldata, multisig, pubkey, pubkeyhash, scripthash, and nonstandard.

Data JSON structure
{
  "chainSummary": {
    "blocks": 892459,
    "bestblockhash": "0000000000000000051b71584570f8e5b335b821678c13161cf22b6ad34674c0",
    "difficulty": 59976456494.39465,
    "chainwork": "00000000000000000000000000000000000000000164d4254584d55761a28f20",
    "networkhashps": 409429675870798000,
    "circulatingSupply": 19851434.375,
    "mempoolSize": 16130,
    "mempoolBytes": 227959287,
    "mempoolUsage": 348692384,
    "exchangeRate": {
      "currency": "USD",
      "rate": "28.453333333333333"
    }
  },
  "txStatsSummary": [
    {
      "time": 1744643752,
      "txcount": 2093233133,
      "window_block_count": 144,
      "window_tx_count": 3012566,
      "window_interval": 85093,
      "txrate": 35.40321765597641
    },
    ...
  ],
  "latestBlocks": [
    {
      "hash": "0000000000000000051b71584570f8e5b335b821678c13161cf22b6ad34674c0",
      "confirmations": 1,
      "size": 140294551,
      "height": 892459,
      "version": 541065216,
      "versionHex": "20400000",
      "merkleroot": "3eee592dcd873f39bd98118582fc49b8d56e072ea28984041cd735111753edca",
      "txcount": 9723,
      "time": 1744643752,
      "mediantime": 1744641985,
      "nonce": 2459067680,
      "bits": "18125505",
      "difficulty": 59976456494.39465,
      "chainwork": "00000000000000000000000000000000000000000164d4254584d55761a28f20",
      "previousblockhash": "000000000000000004e776b40810b944b47a59ce4e8d9187eb05a351273116fe",
      "nextblockhash": "",
      "coinbaseTx": {
        "hex": "...",
        "txid": "7519a6fb28cd2796bf855b55f928c5effb0217cc0e98b935c646649bc3aba9e4",
        "hash": "7519a6fb28cd2796bf855b55f928c5effb0217cc0e98b935c646649bc3aba9e4",
        "size": 125,
        "version": 1,
        "locktime": 0,
        "vin": [
          {
            "n": 0,
            "coinbase": "032b9e0d04...",
            "sequence": 0,
            "minerInfo": {
              "name": "GorillaPool.com 🦍",
              "link": "https://GorillaPool.com",
              "type": "tag"
            }
          }
        ],
        "vout": [
          {
            "value": 3.1281591,
            "n": 0,
            "scriptPubKey": {
              "asm": "OP_DUP OP_HASH160 ad6684ded42b6a8edf8f5b64cec273c996039e02 OP_EQUALVERIFY OP_CHECKSIG",
              "hex": "...",
              "reqSigs": 1,
              "type": "pubkeyhash",
              "addresses": [
                "1GoriLLa2bdsQ8fB1CA4JNkDX88mLqXf4u"
              ],
              "isTruncated": false
            },
            "scripthash": "c3ad9b15557df4604e5699d28b71ce8a8c479759472e6b9f252c93658c56b31a"
          }
        ],
        "blockhash": "...",
        "confirmations": 1,
        "time": 1744643752,
        "blocktime": 1744643752,
        "vincount": 1,
        "voutcount": 1,
        "voutvalue": 3.1281591
      },
      "totalFees": 0.0031590999999999703
    },
    {
      "hash": "000000000000000004e776b40810b944b47a59ce4e8d9187eb05a351273116fe",
      "confirmations": 2,
      "size": 270319069,
      "height": 892458,
      ...
    }
    ...
  ]
}
HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/1satordinals/<origin outpoint>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/1satordinals/b847a5c9aff596fb98435dd179fd7a6d541d54556518c357f53f54812d46f717_0"
Response JSON example
{
   "token":{
      "outpoint": "b847a5c9aff596fb98435dd179fd7a6d541d54556518c357f53f54812d46f717_0",
      "scriptHash": "e260c235d47f4418076ad4de93942508d0d7de6286337d753ee560b003f3c16a",
      "ownerAddress": "1siPrNPYBmWEwgsJLu6LS84iqJYBSCAf3",
      "origin":{
         "number": "827748:753:0",
         "outpoint": "b847a5c9aff596fb98435dd179fd7a6d541d54556518c357f53f54812d46f717_0",
         "scriptHash": "e260c235d47f4418076ad4de93942508d0d7de6286337d753ee560b003f3c16a",
         "ownerAddress": "1siPrNPYBmWEwgsJLu6LS84iqJYBSCAf3",
         "data":{
            "insc":{
               "file":{
                  "hash": "Yb51ss8Unqt43ziwJUm8LNCKSooBWrJLe5x2A/qldEw=",
                  "size": 13,
                  "type": "text/plain"
               },
               "text": "464400.bsvmap",
               "words":[
                  "bsvmap",
                  "464400"
               ]
            },
            "types":[
               "text"
            ]
         }
      },
      "data":{
         "insc":{
            "file":{
               "hash": "Yb51ss8Unqt43ziwJUm8LNCKSooBWrJLe5x2A/qldEw=",
               "size": 13,
               "type": "text/plain"
            },
            "text": "464400.bsvmap",
            "words":[
               "bsvmap",
               "464400"
            ]
         },
         "types":[
            "text"
         ]
      },
      "current":{
         "txid": "b847a5c9aff596fb98435dd179fd7a6d541d54556518c357f53f54812d46f717"
      }
   }
}
HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/1satordinals/<ordinal number>/origin
Response JSON structure
{
   "token":{
      "outpoint": string,
      "scriptHash": string,
      "ownerAddress": string,
      "origin":{
         "number": string,
         "outpoint": string,
         "scriptHash": string,
         "ownerAddress": string,
         "data":{
            "insc":{
               "file":{
                  "hash": string,
                  "size": integer,
                  "type": string
               },
               "text": string,
               "words":[
                  string,
                  string
               ]
            },
            "types":[
               string
            ]
         }
      },
      "data":{
         "insc":{
            "file":{
               "hash": string,
               "size": integer,
               "type": string
            },
            "text": string,
            "words":[
               string
            ]
         },
         "types":[
            string
         ]
      },
      "current":{
         "txid": string
      }
   }
}
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/1satordinals/827748:753:0/origin"
Response JSON example
{
   "token":{
      "outpoint": "b847a5c9aff596fb98435dd179fd7a6d541d54556518c357f53f54812d46f717_0",
      "scriptHash": "e260c235d47f4418076ad4de93942508d0d7de6286337d753ee560b003f3c16a",
      "ownerAddress": "1siPrNPYBmWEwgsJLu6LS84iqJYBSCAf3",
      "origin":{
         "number": "827748:753:0",
         "outpoint": "b847a5c9aff596fb98435dd179fd7a6d541d54556518c357f53f54812d46f717_0",
         "scriptHash": "e260c235d47f4418076ad4de93942508d0d7de6286337d753ee560b003f3c16a",
         "ownerAddress": "1siPrNPYBmWEwgsJLu6LS84iqJYBSCAf3",
         "data":{
            "insc":{
               "file":{
                  "hash": "Yb51ss8Unqt43ziwJUm8LNCKSooBWrJLe5x2A/qldEw=",
                  "size": 13,
                  "type": "text/plain"
               },
               "text": "464400.bsvmap",
               "words":[
                  "bsvmap",
                  "464400"
               ]
            },
            "types":[
               "text"
            ]
         }
      },
      "data":{
         "insc":{
            "file":{
               "hash": "Yb51ss8Unqt43ziwJUm8LNCKSooBWrJLe5x2A/qldEw=",
               "size": 13,
               "type": "text/plain"
            },
            "text": "464400.bsvmap",
            "words":[
               "bsvmap",
               "464400"
            ]
         },
         "types":[
            "text"
         ]
      },
      "current":{
         "txid": "b847a5c9aff596fb98435dd179fd7a6d541d54556518c357f53f54812d46f717"
      }
   }
}
HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/1satordinals/<outpoint>/content
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/1satordinals/b847a5c9aff596fb98435dd179fd7a6d541d54556518c357f53f54812d46f717_0/content"
Response Plain text
464400.bsvmap
HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/1satordinals/<outpoint>/latest
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/1satordinals/6fecd063b0ee00489f79a0e9c0793e0bcb265f81faa43e36193833a849bf9603_156/latest"
Response JSON example
{
   "token":{
      "outpoint": "7e796f68d56b7b530b91ff551f402d8972aa3ea6ecf9eb7187616cb4bf75bcb9_0",
      "scriptHash": "c34e301999f898cb3e8f50bc85b5f1c3a45ab3aee33f125c59784915a06d7b67",
      "scriptLockType": "p2pkh",
      "ownerAddress": "1N1QG9hdaMhaTwBDweVrrkbyrXxNeCBHst",
      "origin":{
         "number": "783989:21395:156",
         "outpoint": "6fecd063b0ee00489f79a0e9c0793e0bcb265f81faa43e36193833a849bf9603_156",
         "vout":156,
         "scriptHash": "28110cffb0f31f2ea4d13cdb9a848ffd0e3cd912ebf3ab5239b63733d3fec3da",
         "scriptLockType": "nonstandard",
         "ownerAddress": "1J3CFrgrmqmHrEtqCiP6ybjedKBwA3tELN",
         "spentTxid": "fda8480b34526ed3b5e780288b6b3851de94ef81018e3e752b561bf8324d7535",
         "data":{
            "insc":{
               "file":{
                  "hash": "TeOqczWHftnhDJjMza6Z/siyzLOTN9QkZ7lhYVPW/mQ=",
                  "size": 1841,
                  "type": "image/png"
               }
            },
            "map":{
               "app": "BigBlockPunkz",
               "collection": "BigBlockPunkz",
               "type": "ord"
            },
            "types":[
               "file"
            ]
         }
      },
      "current":{
         "txid": "7e796f68d56b7b530b91ff551f402d8972aa3ea6ecf9eb7187616cb4bf75bcb9",
         "txIndex": 2553,
         "blockHeight": 832795,
         "blockTime": 1708693512
      }
   }
}
HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/1satordinals/<outpoint>/history
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/1satordinals/6fecd063b0ee00489f79a0e9c0793e0bcb265f81faa43e36193833a849bf9603_156/history"
Response JSON example
{
   "tokens":[
      {
         "outpoint": "6fecd063b0ee00489f79a0e9c0793e0bcb265f81faa43e36193833a849bf9603_156",
         "vout":156,
         "scriptHash": "28110cffb0f31f2ea4d13cdb9a848ffd0e3cd912ebf3ab5239b63733d3fec3da",
         "scriptLockType": "nonstandard",
         "ownerAddress": "1J3CFrgrmqmHrEtqCiP6ybjedKBwA3tELN",
         "spentTxid": "fda8480b34526ed3b5e780288b6b3851de94ef81018e3e752b561bf8324d7535",
         "origin":{
            "number": "783989:21395:156",
            "outpoint": "6fecd063b0ee00489f79a0e9c0793e0bcb265f81faa43e36193833a849bf9603_156",
            "vout": 156,
            "scriptHash": "28110cffb0f31f2ea4d13cdb9a848ffd0e3cd912ebf3ab5239b63733d3fec3da",
            "scriptLockType": "nonstandard",
            "ownerAddress": "1J3CFrgrmqmHrEtqCiP6ybjedKBwA3tELN",
            "spentTxid": "fda8480b34526ed3b5e780288b6b3851de94ef81018e3e752b561bf8324d7535",
            "data":{
               "insc":{
                  "file":{
                     "hash": "TeOqczWHftnhDJjMza6Z/siyzLOTN9QkZ7lhYVPW/mQ=",
                     "size": 1841,
                     "type": "image/png"
                  }
               },
               "map":{
                  "app": "BigBlockPunkz",
                  "collection": "BigBlockPunkz",
                  "type": "ord"
               },
               "types":[
                  "file"
               ]
            }
         },
         "data":{
            "insc":{
               "file":{
                  "hash": "TeOqczWHftnhDJjMza6Z/siyzLOTN9QkZ7lhYVPW/mQ=",
                  "size": 1841,
                  "type": "image/png"
               }
            },
            "map":{
               "app": "BigBlockPunkz",
               "collection": "BigBlockPunkz",
               "type": "ord"
            },
            "types":[
               "file"
            ]
         },
         "current":{
            "txid": "6fecd063b0ee00489f79a0e9c0793e0bcb265f81faa43e36193833a849bf9603",
            "txIndex": 21395,
            "blockHeight": 783989,
            "blockTime": 1679320103
         }
      },
      //...
      {
         "outpoint": "7e796f68d56b7b530b91ff551f402d8972aa3ea6ecf9eb7187616cb4bf75bcb9_0",
         "scriptHash": "c34e301999f898cb3e8f50bc85b5f1c3a45ab3aee33f125c59784915a06d7b67",
         "scriptLockType": "p2pkh",
         "ownerAddress": "1N1QG9hdaMhaTwBDweVrrkbyrXxNeCBHst",
         "origin":{
            "number": "783989:21395:156",
            "outpoint": "6fecd063b0ee00489f79a0e9c0793e0bcb265f81faa43e36193833a849bf9603_156",
            "vout":156,
            "scriptHash": "28110cffb0f31f2ea4d13cdb9a848ffd0e3cd912ebf3ab5239b63733d3fec3da",
            "scriptLockType": "nonstandard",
            "ownerAddress": "1J3CFrgrmqmHrEtqCiP6ybjedKBwA3tELN",
            "spentTxid": "fda8480b34526ed3b5e780288b6b3851de94ef81018e3e752b561bf8324d7535",
            "data":{
               "insc":{
                  "file":{
                     "hash": "TeOqczWHftnhDJjMza6Z/siyzLOTN9QkZ7lhYVPW/mQ=",
                     "size": 1841,
                     "type": "image/png"
                  }
               },
               "map":{
                  "app": "BigBlockPunkz",
                  "collection": "BigBlockPunkz",
                  "type": "ord"
               },
               "types":[
                  "file"
               ]
            }
         },
         "current":{
            "txid": "7e796f68d56b7b530b91ff551f402d8972aa3ea6ecf9eb7187616cb4bf75bcb9",
            "txIndex": 2553,
            "blockHeight": 832795,
            "blockTime": 1708693512
         }
      }
   ],
   "total_count": 9
}

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/1satordinals/tx/<txid>
Response JSON structure
{
   "tokens":[
      {
         "outpoint": string,
         "scriptHash": string,
         "scriptLockType": string,
         "ownerAddress": string,
         "spentTxid": string,
         "origin":{
            "number": string,
            "outpoint": string,
            "vout": integer,
            "scriptHash": string,
            "scriptLockType": string,
            "ownerAddress": string,
            "spentTxid": string,
            "data":{
               "insc":{
                  "file":{
                     "hash": string,
                     "size": integer,
                     "type": string
                  }
               },
               "map":{
                  string: string
               },
               "types":[
                  string
               ]
            }
         },
         "data":{
            "insc":{
               "file":{
                  "hash": string,
                  "size": integer,
                  "type": string
               }
            },
            "map":{
               string: string
               },
               "type": string
            },
            "sigma":[
               {
                  "address": string,
                  "algorithm": string,
                  "signature": string,
                  "valid": boolean,
                  "vin": integer
               }
            ],
            "types":[
               string
            ]
         },
         "current":{
            "txid": string,
            "txIndex": integer,
            "blockHeight": integer,
            "blockTime": integer
         }
      }
   ],
   "total_count": integer
}
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/1satordinals/tx/9c59baa1944e93771379f110526f7c80a9c9627af583df3f760f1c01f8ea8d42"
Response JSON structure
{
   "tokens":[
      {
         "outpoint": "9c59baa1944e93771379f110526f7c80a9c9627af583df3f760f1c01f8ea8d42_0",
         "scriptHash": "435ef0918227553dec7539da2fd0faeb4dfda2405f46b12193035482a4164088",
         "scriptLockType": "nonstandard",
         "ownerAddress": "1PjgYHLBqkKhzddfhNN6A428irtAhDWZTN",
         "spentTxid": "99995013a737ed4437d87a2fbaafeae89630cd8ea228afc71f0393fd2f4b8e2b",
         "origin":{
            "number": "783989:21395:156",
            "outpoint": "6fecd063b0ee00489f79a0e9c0793e0bcb265f81faa43e36193833a849bf9603_156",
            "vout":156,
            "scriptHash": "28110cffb0f31f2ea4d13cdb9a848ffd0e3cd912ebf3ab5239b63733d3fec3da",
            "scriptLockType": "nonstandard",
            "ownerAddress": "1J3CFrgrmqmHrEtqCiP6ybjedKBwA3tELN",
            "spentTxid": "fda8480b34526ed3b5e780288b6b3851de94ef81018e3e752b561bf8324d7535",
            "data":{
               "insc":{
                  "file":{
                     "hash": "TeOqczWHftnhDJjMza6Z/siyzLOTN9QkZ7lhYVPW/mQ=",
                     "size": 1841,
                     "type": "image/png"
                  }
               },
               "map":{
                  "app": "BigBlockPunkz",
                  "collection": "BigBlockPunkz",
                  "type": "ord"
               },
               "types":[
                  "file"
               ]
            }
         },
         "data":{
            "insc":{
               "file":{
                  "hash": "hTBTPtJh/pEWUQnCmVFdu296UhaslM9q2ilDJtB74lM=",
                  "size": 785409,
                  "type": "image/png"
               }
            },
            "map":{
               "app": "ZoideNFT",
               "subType": "collectionItem",
               "subTypeData":{
                  "collectionId": "2a48f67ae1da8e679210b073d2e2cb5f0eb7bfcc68dc07f2f6b05e78fb407152_0",
                  "mintNumber": "6",
                  "name": "Reverb 6",
                  "rarityLabel": "COMMON"
               },
               "type": "ord"
            },
            "sigma":[
               {
                  "address": "12KP5KzkBwtsc1UrTrsBCJzgqKn8UqaYQq",
                  "algorithm": "BSM",
                  "signature": "H6nlPVuBqlTsK2B/Sh+oevNRcZDmTtmkRVTZeRGjnZXZfVxVhV9nZ5x5GWDbLnfbWYEAPnngoiF30nv0PaCjF68=",
                  "valid":true,
                  "vin":0
               }
            ],
            "types":[
               "file"
            ]
         },
         "current":{
            "txid": "9c59baa1944e93771379f110526f7c80a9c9627af583df3f760f1c01f8ea8d42",
            "txIndex": 829,
            "blockHeight": 832677,
            "blockTime": 1708617885
         }
      }
   ],
   "total_count": 1
}

network

The selected network: main or test.

txid

Transaction ID.

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/chain/info
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/chain/info"
Response JSON structure
{
    "chain": "main",
    "blocks": 635302,
    "headers": 635299,
    "bestblockhash": "000000000000000002a40d7410a6c08109521c14f4cf354e7b352b4eab8aa4ea",
    "difficulty": 287310033717.7086,
    "mediantime": 1589703256,
    "verificationprogress": 0.9999754124031851,
    "pruned": false,
    "chainwork": "0000000000000000000000000000000000000000010969f724913e0fe59377f4"
}

network

The selected network: main or test.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/circulatingsupply
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/circulatingsupply"
Response
18227675

network

The selected network: main.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/chain/tips
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/chain/tips"
Response JSON structure
[
  {
    "height": 721622,
    "hash": "000000000000000005693b8ef945a19fd269d2b19ebbad74e3d98d4427b2f1e0",
    "branchlen": 0,
    "status": "active"
  },
  {
    "height": 721213,
    "hash": "00000000000000000478d6745b0f4060f1a00c143846a99b2dd6e1ee0e7492a0",
    "branchlen": 1,
    "status": "valid-fork"
  },
  ...
]

network

The selected network: main.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/peer/info
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/peer/info"
Response JSON structure
[
  {
    "id": 326,
    "addr": "<address>",
    "addrlocal": "<address-local>",
    "services": "0000000000000021",
    "relaytxes": true,
    "lastsend": 1665409946,
    "lastrecv": 1665409976,
    "bytessent": 890791261,
    "bytesrecv": 2960980299,
    "conntime": 1654039986,
    "timeoffset": 0,
    "pingtime": 0.000493,
    "minping": 0.000303,
    "version": 70016,
    "subver": "/Bitcoin SV:1.0.11/",
    "inbound": true,
    "addnode": false,
    "startingheight": 1493982,
    "txninvsize": 0,
    "banscore": 0,
    "synced_headers": 1515937,
    "synced_blocks": 1515937,
    "whitelisted": false,
    "bytessent_per_msg": {
      "addr": 11220,
      "blocktxn": 0,
      "cmpctblock": 24060,
      "feefilter": 0,
      "getaddr": 0,
      "getdata": 26657339,
      "getheaders": 1085,
      "headers": 876489,
      "inv": 50080517,
      "notfound": 61,
      "ping": 3031616,
      "pong": 3031648,
      "reject": 664,
      "sendcmpct": 66,
      "sendheaders": 24,
      "tx": 807054746,
      "verack": 24,
      "version": 147
    },
    "bytesrecv_per_msg": {
      "addr": 55,
      "blocktxn": 1174185732,
      "cmpctblock": 1732490,
      "feefilter": 192,
      "getaddr": 24,
      "getdata": 3864931,
      "getheaders": 1085,
      "headers": 1471198,
      "inv": 133115380,
      "notfound": 61,
      "ping": 3031648,
      "pong": 3031616,
      "reject": 0,
      "sendcmpct": 33,
      "sendheaders": 24,
      "tx": 471157544,
      "verack": 24,
      "version": 147
    }
  }
  ...
]

network

The selected network: main.

WoC devs Telegram channel.
WhatsOnChain.com
here
here
here
WoC Telegram channel

TAAL Wallet

Terminology

Send BSV

Ability for the user to send satoshis to a valid address on the network.

Receive BSV

reveals a BSV address or QR code.

History

It shows the history of transaction with transaction ID and block height.

Add account

Ability for the user to add new account by creating new wallet with password, network selection and mnemonics .

Satoshis

The smallest indivisible unit is a bitcoin. 1E8 Satoshis = 1 bitcoin

Recovery phrase (also called seed phrase or mnemonic phrase)

A recovery phrase is a group of words, usually 12 or more that are generated when a new crypto wallet is created. You can use the recovery phrase to retrieve your crypto accounts, using any compatible wallet.

Passphrase

The Passphrase is an advanced feature that adds a 13th word of your choosing to your recovery phrase.

Using a Passphrase will cause an entirely different set of addresses to be created which cannot be accessed via the 12-word recovery phrase alone.

Aside of adding another layer, the Passphrase grants you plausible deniability when under duress.

If using a Passphrase, it’s key to store it securely and remember it perfectly, character for character.

Get Balance

Enables user to get the latest balance reflected in the account.

Airdrop

Testnet only. Will send a small amount of BSV test coins to your account.

Introduction

TAAL Wallet is a non-custodial chrome extension for managing native BSV and tokens.

The following are the features of TAAL Wallet:

  • Ability to connect a wallet to a web application.

  • Manage and store your keys locally.

  • Send and receive native BSV transactions

  • Sign token transactions

System Requirements

The following are the system requirements for the TAAL Wallet:

  • TAAL Wallet works only with Google Chrome web browser.

network

The selected network: main or test.

origin outpoint

network

The selected network: main or test.

origin number

network

The selected network: main or test.

outpoint

network

The selected network: main or test.

outpoint

network

The selected network: main or test.

outpoint

WebSockets

STAS Tokens (Beta)

Get All Tokens

This endpoint retrieves a list of supported tokens along with the relevant metadata.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/tokens
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/tokens"
Response JSON example
{
    "tokens": [
        {
            "description": "-",
            "image": "https://firebasestorage.googleapis.com/v0/b/musicartstaging/o/nftAssets%2F3e75ba7e-fa51-4efb-a483-3b2c71bab180_250x250?alt=media",
            "name": "fdsfs",
            "properties": {
                "issuer": {
                    "email": "info@musicart.io",
                    "governing_law": "England and Wales",
                    "issuer_country": "UK",
                    "jurisdiction": "UK",
                    "legal_form": "Limited",
                    "organisation": "Calekta Limited"
                },
                "legal": {
                    "terms": "\u00a9 2020 TAAL TECHNOLOGIES SEZC\nALL RIGHTS RESERVED. ANY USE OF THIS SOFTWARE IS SUBJECT TO TERMS AND CONDITIONS OF LICENSE. USE OF THIS SOFTWARE WITHOUT LICENSE CONSTITUTES INFRINGEMENT OF INTELLECTUAL PROPERTY. FOR LICENSE DETAILS OF THE SOFTWARE, PLEASE REFER TO: www.taal.com/stas-token-license-agreement"
                }
            },
            "protocol": "STAS",
            "schema_id": "NFT1.0/MA",
            "symbol": "ujtVA5",
            "token_id": "7bfb2ae7e878d107191259c1be72cf116da3f59d"
        },
        {
            "token_id": "2",
            "protocol": "STAS",
            "ticker": "CIPS",
            ....
        }
        ]
}

URL Parameters

Parameter
Description

network

The selected network: main.

Get Token by ID

This endpoint retrieves the token metadata including contract and issuance details.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/<tokenId>/<symbol>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/c402bc341157265f5f8a747c11099847056a229a/test1124"
Response JSON example
{
    "token": {
        "contract_txs": [
            "72ae93f5fdc5a4fa5abfab780d7d1c8ad988d25ae34578b80dce5ff9e5c3db03"
        ],
        "description": "generating stas token",
        "image": "https://firebasestorage.googleapis.com/v0/b/nftdev/o/nftTemp%2FWL1DdD?alt=media",
        "issuance_txs": [
            "b00bcc9dfc7dd483ff989f3d1d3f091b23e88ca2207c9e15788e3e84a5b10c8b"
        ],
        "name": "test",
        "properties": {
            "issuer": {
                "email": "info@vaionex.com",
                "governing_law": "US",
                "issuer_country": "US",
                "jurisdiction": "US",
                "legal_form": "Limited",
                "organisation": "vaionex corp."
            },
            "legal": {
                "terms": "test"
            }
        },
        "protocol": "STAS",
        "schema_id": "NFT1.0/MA",
        "symbol": "test1124",
        "token_id": "c402bc341157265f5f8a747c11099847056a229a",
        "tx_count": 3
    }
}

URL Parameters

Parameter
Description

network

The selected network: main.

tokenId

The unique ID of the token.

symbol

The symbol used in the registration of the token.

Get Token UTXOs for Address

This endpoint retrieves the token UTXOs for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/tokens/unspent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1GJ3x5bcEnKMnzNFPPELDfXUCwKEaLHM5H/tokens/unspent"
Response JSON example
{
    "address": "1JsQieDaYUg5pSRtpeEQhTv3buHvSX7WH4",
    "utxos": [
        {
            "amount": 2000,
            "index": 1,
            "redeemAddr": "c402bc341157265f5f8a747c11099847056a229a",
            "symbol": "test1124",
            "txid": "cf3968e6950286cf94aa9efb7a1cc1b9c74190d159ff6d2a4dc7d9feb6e50c55"
        }
    ]
}

URL Parameters

Parameter
Description

network

The selected network: main.

address

The address

Get Address Token Balance

This endpoint retrieves the token balances for a given address.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/address/<address>/tokens
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/address/1JsQieDaYUg5pSRtpeEQhTv3buHvSX7WH4/tokens"
Response JSON example
{
    "address": "1JsQieDaYUg5pSRtpeEQhTv3buHvSX7WH4",
    "tokens": [
        {
            "balance": 0,
            "image": "https://firebasestorage.googleapis.com/v0/b/nftdev/o/nftTemp%2FWL1DdD?alt=media",
            "protocol": "STAS",
            "redeemAddr": "c402bc341157265f5f8a747c11099847056a229a",
            "symbol": "test2"
        },
        {
            "balance": -2000,
            "image": "https://firebasestorage.googleapis.com/v0/b/nftdev/o/nftTemp%2FWL1DdD?alt=media",
            "protocol": "STAS",
            "redeemAddr": "c402bc341157265f5f8a747c11099847056a229a",
            "symbol": "test1124"
        }
    ]
}

URL Parameters

Parameter
Description

network

The selected network: main.

address

The address

Get Token Transactions

This endpoint retrieves the transactions for a given token.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/<tokenId>/<symbol>/tx
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/c402bc341157265f5f8a747c11099847056a229a/test1124/tx"
Response JSON example
{
    "redeem_addr": "c402bc341157265f5f8a747c11099847056a229a",
    "symbol": "test1124",
    "txs": [
        "cf3968e6950286cf94aa9efb7a1cc1b9c74190d159ff6d2a4dc7d9feb6e50c55",
        "b00bcc9dfc7dd483ff989f3d1d3f091b23e88ca2207c9e15788e3e84a5b10c8b",
        "72ae93f5fdc5a4fa5abfab780d7d1c8ad988d25ae34578b80dce5ff9e5c3db03"
    ]
}

URL Parameters

Parameter
Description

network

The selected network: main.

tokenId

The unique ID of the token.

symbol

The symbol used in the registration of the token.

Get Token Output Details

This endpoint returns the details of a valid token output or Not Found (404) for an invalid token output.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/tx/<txid>/out/<index>
cURL
curl --location --request GET "wget -O- https://api.whatsonchain.com/v1/bsv/main/token/tx/cf3968e6950286cf94aa9efb7a1cc1b9c74190d159ff6d2a4dc7d9feb6e50c55/out/1"
Response JSON structure
{
    "has_data": true,
    "icon_url": "https://firebasestorage.googleapis.com/v0/b/nftdev/o/nftTemp%2FWL1DdD?alt=media",
    "index": 1,
    "is_splittable": true,
    "symbol": "test1124",
    "token_id": "c402bc341157265f5f8a747c11099847056a229a",
    "txid": "cf3968e6950286cf94aa9efb7a1cc1b9c74190d159ff6d2a4dc7d9feb6e50c55",
    "value": 2000
}

URL Parameters

Parameter
Description

network

The selected network: main.

hash

The hash/txId of the transaction.

index

The Output/Vout index.

Need an additional API endpoint?

Change Log

These are the most recent changes and additions to the API:

  • 12/31/2024

    • Changes

  • 12/02/2024

    • New

  • 10/22/2024

    • New

  • 09/09/2024

    • Changes

  • 10/05/2024

    • Changes

  • 19/03/2024

    • New

  • 21/11/2023

    • New

  • 15/11/2023

    • New

  • 26/10/2023

    • New

  • 28/07/2023

    • New

  • 07/07/2023

    • New

  • 03/05/2023

    • New

  • 20/04/2023

    • New

  • 16/03/2023

    • New

  • 21/02/2023

    • New

  • 20/10/2022

    • New

  • 18/10/2022

    • New

  • 13/10/2022

    • New

  • 10/10/2022

    • New

  • 19/07/2022

    • New

  • 11/05/2022

    • New

      • STAS Token endpoints

  • 02/03/2022

    • New

  • 10/01/2022

    • New

  • 03/08/2021

    • New

  • 17/06/2021

    • New

      • WebSockets - Adding testnet support

  • 14/06/2021

    • New

  • 22/03/2021

    • New

  • 02/03/2021

    • Changes

      • Deprecating WoC Merchant API. Recommended to switch to TAAL Merchant API.

      • Deprecating WoC Bulk Broadcast. Recommended to switch to TAAL Merchant API.

    • New

      • Adding TAAL Merchant API details

  • 26/11/2020

    • New

  • 13/07/2020

    • New

  • 25/05/2020

    • New

      • Merchant API - Get Fee Quotes from multiple transaction processors

      • Merchant API - Submit tx to a transaction processor

      • Merchant API - Request Transaction status from a transaction processor

  • 08/03/2020

    • New

  • 03/02/2020

    • Changes

      • Removing support of STN network from address balance, history and UTXOs endpoints

      • Adding vout[x].scriptPubKey.isTruncated flag, if data size is more than 100KB in vout[x].scriptPubKey.hex

      • Removing old merkle proof endpoint */tx/{txid}/merkleproof

    • New

  • 18/01/2020

    • New

  • 18/11/2019

    • New

      • Bulk Broadcast transactions

  • 09/11/2019

    • New

  • 21/10/2019

    • New

  • 23/06/2019

    • New

    • Fixed

  • 19/05/2019

    • New

  • 22/04/2019

    • New

  • 15/04/2019

    • New

      • Get Health

ARC Endpoints

ARC is the successor of mAPI, the merchant API.

For instance the policy could be fetched using the following curl command

It is recommended to use the BIP-239 transaction format for submitting transactions to ARC.

More information about ARC can be found under these links

ARC Testnet

Community Libraries

Awesome community-maintained libraries

Golang

Python

Node.js

Architecture

List of tech stack used

TAAL Wallet Chrome extension is built using React and Typescript.

Features

Chrome Extension Documentation

Communication

Long lived connection

In background.js

In web page

In content script

One time communication (web -> background.js)

In background.js

In web page

In content script

BSV-21 (Beta)

BSV-21 protocol was originally called BSV-20 v2 but was renamed for clarity.

"This iteration of the BSV-20 protocol introduces a new tickerless mode functionality. Tickerless mode forgoes the first is first nature of BRC20-BTC, and allows the capabilities to have a smart contract, or an administrator, control distribution. Additionally, every transaction of a tickerless mode token forms part of a single on-chain DAG (Directed Acyclic Graph), such that the transaction can easily be tracked back to that token's genesis mint. "

Get Address Balance

This endpoint retrieves the amount of tokens that were not spent.

URL Parameters

Get a Depth

This endpoint retrieves transfers inscribed by the provided address and where they are spent.

URL Parameters

Query Parameters

Get a Token

This endpoint retrieves the token details given the token's identifier.

URL Parameters

Query Parameters

Get a Transfer

This endpoint retrieves the token's transfer details given the inscription's outpoint.

URL Parameters

Get History by Address

This endpoint retrieves transfers history given the address and token's identifier.

URL Parameters

Query Parameters

Get Spent Outputs

This endpoint retrieves spent inscriptions given the transaction's identifier.

URL Parameters

Query Parameters

Get Tokens by Transaction ID

This endpoint retrieves tokens that a given transaction contains.

URL Parameters

Query Parameters

Get Unspent Tokens by Address

This endpoint retrieves unspent BSV-21 inscriptions given an address.

URL Parameters

Query Parameters

Get Token Owners

This endpoint retrieves addresses that own a token or transfer(s) of the inscription.

URL Parameters

Query Parameters

Need an additional API endpoint?

Stats

Get Block Stats by Height

This endpoint retrieves the block stats for a given height.

  • Exchange rate information is not available for blocks processed before 2018/11/19.

  • Unidentified block miners are tagged as an empty string.

URL Parameters

Get Block Stats by Hash

This endpoint retrieves the block stats for a given hash.

  • Exchange rate information is not available for blocks processed before 2018/11/19.

  • Unidentified block miners are tagged as an empty string.

URL Parameters

Get Miner Block Stats

This endpoint retrieves the miner block stats for a specified number of days.

Unidentified block miners are tagged as an empty string.

URL Parameters

Get Miner Minimum Fee Rate Stats

This endpoint retrieves the miner minimum fee rate stats for a specified time period.

Minimum fee rate is in sat/KB.

URL Parameters

Get Miner Summary Stats

This endpoint retrieves the miner summary stats for specified days over a 24 hour period.

  • Unidentified block miners are tagged as an empty string.

URL Parameters

Get Tag Count by Height

This endpoint retrieves stats on tag count for a specific block at a given height.

URL Parameters

Inscription ID. More info .

Origin number. More info .

Inscription ID. More info .

Inscription ID. More info .

Inscription ID. More info .

Use WoC Sockets to stream chain stats, mempool transactions, block headers, and more! The is available in Beta, and the V1 is deprecated.

If your application needs customized/filtered events via WebSockets, please let us know in the

STAS is a token protocol that consists of a bitcoin script for locking/unlocking bitcoin transaction outputs. Read more in the .

If you want to make a request for an additional API endpoint that would help with your use case, please reach out to us using our . Please provide as much detail on what you're trying to achieve as possible.

Transaction -

Tokens -

Transaction -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

Block -

Address -

Address -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

Address -

Address -

Address -

Address -

Script -

Script -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

(Un)Spent Transaction Outputs -

Address -

Address -

Script -

Address -

Script -

Address -

Address -

Address -

Script -

Script -

On-Chain Data -

Transaction -

(documentation only)

Block -

Block -

Stats -

Stats -

Stats -

Stats -

Stats -

Chain info -

Exchange rate -

WebSockets - Options to filter by the output type.

WebSockets - Options to filter by the output type.

WebSockets -

WebSockets -

WebSockets - Extending support for non-centrifuge

WebSockets -

WebSockets -

WebSockets -

WebSockets -

WebSockets -

Enabled for testnet

Enabled for testnet

Removing hex field from response body of request

Limiting vout[x].scriptPubKey.asm and vout[x].scriptPubKey.hex size to return max 100KB in response body of

endpoint now returns txid on success or error msg from node on failure

The URL of TAAL's mainnet ARC API is:

A complete description of ARC API endpoints can be found under the following link: .

High-level documentation:

Github repository:

Description of BIP-239 standard:

URL:

Description
Link
Description
Link
Description
Link

Here is a brief intro from the :

Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description

If you want to make a request for an additional API endpoint that would help with your use case, please reach out to us using our . Please provide as much detail on what you're trying to achieve as possible.

Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
here
here
here
here
here
V2 API
WoC devs Telegram channel.
official documentation
WoC Telegram channel
1Sat Ordinals (Beta)
Output Tags
WoC Plugins
WoC Widgets
clients
Community Libraries
Get Merkle Proof
Get a Transaction as Binary
Get Transaction Propagation Status
Bulk transactions status
Bulk transactions raw data
Get raw transaction data (hex)
Get raw transaction output data by index (hex)
Get transaction by hash
Get transaction by hash
Get raw transaction data
Get raw transaction output data by index (hex)
Get Merkle Proof for transaction (Beta)
Bulk transaction details
Get merkle proof
Decode raw transaction
Download transaction receipt
Broadcast transaction
Get transactions by hash
Broadcast transactions
Get Confirmed UTXOs by Address
Get Confirmed UTXOs by Script
Bulk Spent Transaction Outputs (Beta)
Bulk Unconfirmed UTXOs by Address (Beta)
Bulk Confirmed UTXOs by Address (Beta)
Bulk Unconfirmed UTXOs by Script (Beta)
Bulk Confirmed UTXOs by Script (Beta)
Get Confirmed UTXOs by Address (Beta)
Get Confirmed UTXOs by Script (Beta)
Get Unconfirmed Spent Tx Output (Beta)
Get Confirmed Spent Tx Output (Beta)
Get Spent Transaction Output (Beta)
Get Header by Hash or Height
Get Header Byte File Links
Get Latest Header Bytes
Get block header by hash with block-headers-client response format
Get block header by hash
Get last 10 block headers
Get block by hash
Get block by height
Get block pages
Get Associated Scripthashes
Bulk History (Beta)
Bulk Unconfirmed Balance (Beta)
Bulk Confirmed Balance (Beta)
Bulk Unconfirmed History (Beta)
Bulk Confirmed History (Beta)
Get Confirmed Balance (Beta)
Get Confirmed History (Beta)
Get Address Usage Status
Get Mempool Balance
Get Mempool History
Get Unspent Mempool Transactions
Bulk address unspent transactions
Bulk address balance
Download address statement
Get address balance
Get address history
Get address UTXOs
Get address info
Bulk Unconfirmed Script History (Beta)
Bulk Confirmed Script History (Beta)
Get Confirmed Script History (Beta)
Get Script Usage Status
Get Mempool History
Get Script Mempool Unspent Transactions
Bulk script unspent transactions
Get script history
Get script unspent transactions
Get OP_RETURN Data by Tx Hash
Get peer info
Get chain tips
Get circulating supply
Get chain info
Get historical exchange rate
Get exchange rate
Mempool transactions
Confirmed transactions
Block transactions
Chain Stats
Mempool transactions
Confirmed transactions
Customized events
New block header event
Block headers history
Get explorer links
Get mempool info
Get mempool transactions
curl --location 'https://arc.taal.com/v1/policy' \
--header 'Authorization: <API Key>'
       .---.                   .---.
   .---|___|           .-.     |~~~|
.--|===| B |_          |_|     |~~~|--.
|  |===| I |'\     .---!~|  .--|   |--|
|  |   | T |.'\    |===| |--|%%| W |  |
|  |   | C |\.'\   | S | |__|  | O |py|
|go|   | O | \  \  |===| |==|  | C |  |
|  |   | I |  \.'\ | V |_|__|  |~~~|__|
|  |===| N |   \.'\|===|~|--|%%|~~~|--|
^--^---'---^    `-'`---^-^--^--^---'--' 
chrome.runtime.onConnectExternal.addListener(port => {
  console.log('Client connected', port);
  port.onMessage.addListener(msg => {
    console.log('onExternalMessage', msg);
  });
});
const port = chrome.runtime.connect(extensionId, { name: 'some-name' });
port.onMessage.addListener(console.log);
port.postMessage({ payload: 'anything' })
const port = chrome.runtime.connect({ name: 'some-name' });
port.postMessage({ payload: 'anything' });
port.onMessage.addListener(msg => {
  console.log('onMessage', msg);
});
chrome.runtime.onMessageExternal.addListener((payload, data, cb) => {
  console.log('onMessageExternal', { payload, data });
  if (typeof cb === 'function') {
    cb('response from background.js');
  }
  return true;
});
chrome.runtime.sendMessage(extensionId, { payload: 'anything' }, console.log)
chrome.runtime.sendMessage({ payload: 'anything' }, console.log);
HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/<address>/balance
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/bsv21/1MMRcQnACaByFV6gYPoSzd9VPjemLeT57q/balance"
Response JSON example
{
   "tokens":[
      {
         "outpoint":"7ea4f03a1e3b9e2c0509a3bc523814e911d0306048ee73c435ba05b50d0d18a8_0",
         "amount":"200",
         "decimals":2,
         "symbol":"YWT33"
      },
      {
         "outpoint":"c5bea9ef8bd1bd9de47cef5179bee557c8e7ae5ed303338b925088c6cae3f4e2_1",
         "amount":"10",
         "decimals":1,
         "symbol":"smtfg1",
         "icon":"c5bea9ef8bd1bd9de47cef5179bee557c8e7ae5ed303338b925088c6cae3f4e2_0"
      }
   ],
   "total_count":2
}

network

The selected network: main or test.

id

Token identifier - <txid>_<vout>.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/<address>/id/<id>/depth
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/bsv21/1s2YXTRJce8k8VybXz4EmUnxC6jLyWPes/id/e6d40ba206340aa94ed40fe1a8adcd722c08c9438b2c1dd16b4527d561e848a2_0/depth"
Response JSON example
{
   "branches":[
      {
         "txid":"02c7c1a574766b6755217df1d51219797ad9e68986669c761fe00210b3075898",
         "txIndex":405,
         "blockHeight":857818,
         "spent":{
            "outpoint":"a652c3d01b73d417d785c299cb397540de0474146c6e978fd20db31941157fcf_1",
            "txIndex":388,
            "blockHeight":861969
         }
      },
      {
         "txid":"22d79dd02b1b1c85b1119f800b5626b7f12645599098e2557b79ecb551e02b2a",
         "txIndex":444,
         "blockHeight":861969,
         "spent":{
            "outpoint":"f9ec4e4aee1bec1255108424a1c5b595151a35b1302be00ddb2d1c1503e010e7_1",
            "txIndex":422,
            "blockHeight":863272
         }
      }
   ],
   "total_count":2
}

network

The selected network: main or test.

address

Address.

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/id/<id>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/bsv21/id/942fa8659a65cbcfaf979c4abef28a8f9c1454836cc3a9b42662f2bf784d92ba_0"
Response JSON example
{
    "token": {
        "outpoint": "942fa8659a65cbcfaf979c4abef28a8f9c1454836cc3a9b42662f2bf784d92ba_0",
        "scriptHash": "96e31317c9059acb339ee65be792de959b4aee32ee79d9bddfd4f7689091ae73",
        "funderAddress": "1MxwReRMY53Y1G4rQN53w8DFZRYHTpHfYm",
        "data": {
            "bsv20": {
                "amt": 21000000,
                "icon": "ecb483eda58f26da1b1f8f15b782b1186abdf9c6399a1c3e63e0d429d5092a41_0",
                "id": "942fa8659a65cbcfaf979c4abef28a8f9c1454836cc3a9b42662f2bf784d92ba_0",
                "op": "deploy+mint",
                "protocol": "bsv-20",
                "symbol": "27ff2993c1e873e286a8a6fcfd5639ccaed466467f5907d737f5f051eb11b520"
            },
            "insc": {
                "file": {
                    "hash": "ZczVOfCd+PT0n7DbU2zSPH3gW31gkM4p8iN1bWUH7hU=",
                    "size": 199,
                    "type": "application/bsv-20"
                },
                "json": {
                    "amt": "21000000",
                    "icon": "ecb483eda58f26da1b1f8f15b782b1186abdf9c6399a1c3e63e0d429d5092a41_0",
                    "op": "deploy+mint",
                    "p": "bsv-20",
                    "sym": "27ff2993c1e873e286a8a6fcfd5639ccaed466467f5907d737f5f051eb11b520"
                }
            },
            "types": [
                "json"
            ]
        },
        "current": {
            "txid": "942fa8659a65cbcfaf979c4abef28a8f9c1454836cc3a9b42662f2bf784d92ba",
            "txIndex": 69616,
            "blockHeight": 880067,
            "blockTime": 1737168515
        }
    }
}

network

The selected network: main or test.

address

Address.

id

Token identifier - <txid>_<vout>.

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/outpoint/<outpoint>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/bsv21/outpoint/6dc1a50dd6f18f5c55d60fa8532043e19cd91e9d2d9fbceee8166868e0263e65_1"
Response JSON example
{
   "inscription":{
      "vout":1,
      "scriptHash":"7df2cabb01151773b2484da0752ead2e86f0b0604b67d562b3cbec780af6b179",
      "ownerAddress":"1Pp4sGru37gAfpbyLME6rVjamyJ9nd2ym",
      "data":{
         "bsv20":{
            "amt":1000,
            "id":"459f0e8bb038d55e3f732f11cc80af75c86b8f48dd17eac2bf92ebe9ac3a040c_0",
            "op":"transfer",
            "protocol":"bsv-20"
         },
         "insc":{
            "file":{
               "hash":"c6cYm2ltooXmDRSL6HOBF7gfuvgs5QEG5MXu4H4smbE=",
               "size":117,
               "type":"application/bsv-20"
            },
            "json":{
               "amt":"1000",
               "id":"459f0e8bb038d55e3f732f11cc80af75c86b8f48dd17eac2bf92ebe9ac3a040c_0",
               "op":"transfer",
               "p":"bsv-20"
            }
         },
         "types":[
            "json"
         ]
      },
      "current":{
         "txid":"6dc1a50dd6f18f5c55d60fa8532043e19cd91e9d2d9fbceee8166868e0263e65",
         "txIndex":40,
         "blockHeight":841255,
         "blockTime":1713795871
      }
   }
}

network

The selected network: main or test.

outpoint

Outpoint - <txid>_<vout>.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/<address>/id/<id>
cURL
curl --location --request GET "1s2YXTRJce8k8VybXz4EmUnxC6jLyWPes/id/e6d40ba206340aa94ed40fe1a8adcd722c08c9438b2c1dd16b4527d561e848a2_0/history?skip=3&limit=2"
Response JSON example

{
   "inscriptions":[
      {
         "vout":0,
         "scriptHash":"1629429acdd3c8cd72738b292caa616830ef82546fc9a0f8ad742e8c32caddfb",
         "ownerAddress":"1s2YXTRJce8k8VybXz4EmUnxC6jLyWPes",
         "data":{
            "bsv20":{
               "amt":22222200000000,
               "id":"e6d40ba206340aa94ed40fe1a8adcd722c08c9438b2c1dd16b4527d561e848a2_0",
               "op":"transfer",
               "protocol":"bsv-20"
            },
            "insc":{
               "file":{
                  "hash":"xM/dPLDlGFvpp/7113yjkqI/HkaaJjG8Cv3QznokKEo=",
                  "size":127,
                  "type":"application/bsv-20"
               },
               "json":{
                  "amt":"22222200000000",
                  "id":"e6d40ba206340aa94ed40fe1a8adcd722c08c9438b2c1dd16b4527d561e848a2_0",
                  "op":"transfer",
                  "p":"bsv-20"
               }
            },
            "types":[
               "json"
            ]
         },
         "current":{
            "txid":"22d79dd02b1b1c85b1119f800b5626b7f12645599098e2557b79ecb551e02b2a",
            "txIndex":444,
            "blockHeight":861969,
            "blockTime":1726254528
         }
      },
      {
         "vout":1,
         "scriptHash":"d931f30431274374fb8a0ee69cb0cfdb59555404089bf6a2d4627bc73adba192",
         "ownerAddress":"1s2YXTRJce8k8VybXz4EmUnxC6jLyWPes",
         "data":{
            "bsv20":{
               "amt":46666700000000,
               "id":"e6d40ba206340aa94ed40fe1a8adcd722c08c9438b2c1dd16b4527d561e848a2_0",
               "op":"transfer",
               "protocol":"bsv-20"
            },
            "insc":{
               "file":{
                  "hash":"XK86+/JWmnz2rU3IdgYUMg519oFtWA5pk3T2BkNP1rY=",
                  "size":127,
                  "type":"application/bsv-20"
               },
               "json":{
                  "amt":"46666700000000",
                  "id":"e6d40ba206340aa94ed40fe1a8adcd722c08c9438b2c1dd16b4527d561e848a2_0",
                  "op":"transfer",
                  "p":"bsv-20"
               }
            },
            "types":[
               "json"
            ]
         },
         "current":{
            "txid":"22d79dd02b1b1c85b1119f800b5626b7f12645599098e2557b79ecb551e02b2a",
            "txIndex":444,
            "blockHeight":861969,
            "blockTime":1726254528
         }
      }
   ],
   "total_count":2
}

network

The selected network: main or test.

address

Address.

id

Token identifier - <txid>_<vout>.

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/txid/<txid>/spent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/bsv21/txid/22d79dd02b1b1c85b1119f800b5626b7f12645599098e2557b79ecb551e02b2a/spent"
Response JSON example
{
   "inscriptions":[
      {
         "vout":0,
         "scriptHash":"7bc83b8837be332181e7d8f098c3f9bcbf34a1fd8acb3a4e0114f261f014b955",
         "ownerAddress":"1s2YXTRJce8k8VybXz4EmUnxC6jLyWPes",
         "spentTxid":"22d79dd02b1b1c85b1119f800b5626b7f12645599098e2557b79ecb551e02b2a",
         "data":{
            "bsv20":{
               "amt":10000000000000,
               "id":"e6d40ba206340aa94ed40fe1a8adcd722c08c9438b2c1dd16b4527d561e848a2_0",
               "op":"transfer",
               "protocol":"bsv-20"
            },
            "insc":{
               "file":{
                  "hash":"YtnAMmnJcV0qk50dbdAUxGWz/QUkM+zl51OpLPWhoK0=",
                  "size":127,
                  "type":"application/bsv-20"
               },
               "json":{
                  "amt":"10000000000000",
                  "id":"e6d40ba206340aa94ed40fe1a8adcd722c08c9438b2c1dd16b4527d561e848a2_0",
                  "op":"transfer",
                  "p":"bsv-20"
               }
            },
            "types":[
               "json"
            ]
         },
         "current":{
            "txid":"38f8a1e8d2953323cd3cace35341aaaffb46b0366c2d5eb1881ca0ec565a3867",
            "txIndex":403,
            "blockHeight":861969,
            "blockTime":1726254528
         }
      }
   ],
   "total_count":1
}

network

The selected network: main or test.

txid

Transaction identifier.

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/txid/<txid>
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/bsv21/txid/942fa8659a65cbcfaf979c4abef28a8f9c1454836cc3a9b42662f2bf784d92ba"
Response JSON example
{
    "tokens": [
        {
            "outpoint": "942fa8659a65cbcfaf979c4abef28a8f9c1454836cc3a9b42662f2bf784d92ba_0",
            "scriptHash": "96e31317c9059acb339ee65be792de959b4aee32ee79d9bddfd4f7689091ae73",
            "funderAddress": "1MxwReRMY53Y1G4rQN53w8DFZRYHTpHfYm",
            "data": {
                "bsv20": {
                    "amt": 21000000,
                    "icon": "ecb483eda58f26da1b1f8f15b782b1186abdf9c6399a1c3e63e0d429d5092a41_0",
                    "id": "942fa8659a65cbcfaf979c4abef28a8f9c1454836cc3a9b42662f2bf784d92ba_0",
                    "op": "deploy+mint",
                    "protocol": "bsv-20",
                    "symbol": "27ff2993c1e873e286a8a6fcfd5639ccaed466467f5907d737f5f051eb11b520"
                },
                "insc": {
                    "file": {
                        "hash": "ZczVOfCd+PT0n7DbU2zSPH3gW31gkM4p8iN1bWUH7hU=",
                        "size": 199,
                        "type": "application/bsv-20"
                    },
                    "json": {
                        "amt": "21000000",
                        "icon": "ecb483eda58f26da1b1f8f15b782b1186abdf9c6399a1c3e63e0d429d5092a41_0",
                        "op": "deploy+mint",
                        "p": "bsv-20",
                        "sym": "27ff2993c1e873e286a8a6fcfd5639ccaed466467f5907d737f5f051eb11b520"
                    }
                },
                "types": [
                    "json"
                ]
            },
            "current": {
                "txid": "942fa8659a65cbcfaf979c4abef28a8f9c1454836cc3a9b42662f2bf784d92ba",
                "txIndex": 69616,
                "blockHeight": 880067,
                "blockTime": 1737168515
            }
        }
    ],
    "total_count": 1
}

network

The selected network: main or test.

txid

Transaction ID.

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/<address>/unspent
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/bsv21/14h6iBhUj2SBDtMkSiGxed9SyaWpFwCw4j/unspent"
Response JSON structure
{
    "tokens": [
        {
            "scriptHash": "d5b8124a3cec0843ced890272b64c745fc1a311a9d9dc1453ba6d77c4a519305",
            "data": {
                "bsv20": {
                    "amt": 999000,
                    "id": "459f0e8bb038d55e3f732f11cc80af75c86b8f48dd17eac2bf92ebe9ac3a040c_0",
                    "op": "transfer",
                    "protocol": "bsv-20"
                },
                "insc": {
                    "file": {
                        "hash": "eXPedD7bUNMRNMu7a5zFX9GSMn1nyOwbI/5+Sa8CA4Y=",
                        "size": 119,
                        "type": "application/bsv-20"
                    },
                    "json": {
                        "amt": "999000",
                        "id": "459f0e8bb038d55e3f732f11cc80af75c86b8f48dd17eac2bf92ebe9ac3a040c_0",
                        "op": "transfer",
                        "p": "bsv-20"
                    }
                },
                "types": [
                    "json"
                ]
            },
            "current": {
                "txid": "6dc1a50dd6f18f5c55d60fa8532043e19cd91e9d2d9fbceee8166868e0263e65",
                "txIndex": 40,
                "blockHeight": 841255,
                "blockTime": 1713795871
            }
        }
    ],
    "total_count": 1
}

network

The selected network: main or test.

address

Address.

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/<network>/token/bsv21/id/<id>/owners
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/token/bsv21/id/cc7a38cfd087b9411b8533e6c5d30590a9e50ea9adc5ca3e3d947bb201a15ebd_0/owners"
Response JSON structure
{
    "owners": [
        {
            "address": "1JwtQdKJM9GrARS5X9cNaGadqbNSfzSKwF"
        },
        {
            "address": "1Gi1ahKC1Ybbi85RTMsyuifxHS754nd6Ni"
        },
        {
            "address": "1G6CB3Ch4zFkPmuhZzEyChQmrQPfi86qk3"
        }
    ],
    "total_count": 3
}

network

The selected network: main or test.

id

Token identifier - <txid>_<vout>.

skip

Skip items. For pagination.

limit

Limit number of items. For pagination.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/block/height/<height>/stats
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/height/698730/stats"
Response JSON structure
{
  "hash": "000000000000000002799ba826646d0060b06779e7bde9622145b410f114c1fb",
  "tx_count": 7088,
  "height": 698730,
  "version": 939515904,
  "version_hex": "37ffe000",
  "merkle_root": "58f529bbf8319340ee299a7b577177ca877ba3ecc2a4e8ef231ccd6387e9dbe6",
  "time": 1627996871,
  "median_time": 1627993031,
  "nonce": 111084755,
  "bits": "181112b7",
  "difficulty": 64399232575.38872,
  "chainwork": "0000000000000000000000000000000000000000012ef34e8452b98b968b3134",
  "miner_tag": "qdlnk",
  "total_fee": 9868209,
  "total_fee_usd": 13.628983449900002,
  "total_out": 58639450178,
  "avg_fee": 1392,
  "avg_fee_usd": 0.0019224912000000002,
  "median_fee": 175,
  "median_fee_usd": 0.00024169250000000004,
  "input_count": 16930,
  "output_count": 19002,
  "total_out_usd": 80986.9446408358,
  "subsidy": 625000000,
  "subsidy_usd": 863.1875000000001,
  "reward": 634868209,
  "reward_usd": 876.8164834499001,
  "coinbase": "036aa90a2f71646c6e6b2ff3d24370c50084e8887a0100",
  "size": 17444558,
  "exchange_rate": {
    "rate": 138.11,
    "time": 1627948800
  },
  "min_tx_size": 190,
  "max_tx_size": 1151375,
  "median_tx_size": 313,
  "avg_tx_size": 2461
}

network

The selected network: main.

height

The height of the block to retrieve.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/block/hash/<hash>/stats
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/hash/000000000000000002799ba826646d0060b06779e7bde9622145b410f114c1fb/stats"
Response JSON structure
{
  "hash": "000000000000000002799ba826646d0060b06779e7bde9622145b410f114c1fb",
  "tx_count": 7088,
  "height": 698730,
  "version": 939515904,
  "version_hex": "37ffe000",
  "merkle_root": "58f529bbf8319340ee299a7b577177ca877ba3ecc2a4e8ef231ccd6387e9dbe6",
  "time": 1627996871,
  "median_time": 1627993031,
  "nonce": 111084755,
  "bits": "181112b7",
  "difficulty": 64399232575.38872,
  "chainwork": "0000000000000000000000000000000000000000012ef34e8452b98b968b3134",
  "miner_tag": "qdlnk",
  "total_fee": 9868209,
  "total_fee_usd": 13.628983449900002,
  "total_out": 58639450178,
  "avg_fee": 1392,
  "avg_fee_usd": 0.0019224912000000002,
  "median_fee": 175,
  "median_fee_usd": 0.00024169250000000004,
  "input_count": 16930,
  "output_count": 19002,
  "total_out_usd": 80986.9446408358,
  "subsidy": 625000000,
  "subsidy_usd": 863.1875000000001,
  "reward": 634868209,
  "reward_usd": 876.8164834499001,
  "coinbase": "036aa90a2f71646c6e6b2ff3d24370c50084e8887a0100",
  "size": 17444558,
  "exchange_rate": {
    "rate": 138.11,
    "time": 1627948800
  },
  "min_tx_size": 190,
  "max_tx_size": 1151375,
  "median_tx_size": 313,
  "avg_tx_size": 2461
}

network

The selected network: main.

hash

The hash of the block to retrieve.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/miner/blocks/stats?days={days}
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/miner/blocks/stats?days=1"
Response JSON structure
[
  {
    "header": {
      "size": 297234612,
      "height": 757673,
      "time": 1663491738
    },
    "stats": {
      "total_size": 297234612,
      "total_fee": 23803452
    },
    "details": {
      "miner_tag": "taal.com"
    }
  },
  ...
 ]

network

The selected network: main.

days

The number of days to retrieve the data for. Only 1 or 30 days can be selected.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/miner/fees?from={from}&to={to}
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/miner/fees?from=1714608000&to=1714653060"
Response JSON structure
[
    {
        "miner": "taal.com",
        "min_fee_rate": 1
    },
    {
        "miner": "CUVVE",
        "min_fee_rate": 1.0003060717198577
    },
    {
        "miner": "GorillaPool.com 🦍",
        "min_fee_rate": 1.001001001001001
    },
    {
        "miner": "qdlnk",
        "min_fee_rate": 1.0001427259380782
    }
]

network

The selected network: main.

from

Starting from as Unix timestamp.

to

Until to as Unix timestamp.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/miner/summary/stats?days={days}
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/miner/summary/stats?days=90"
Response JSON structure
[
  {
    "period": 1658275200,
    "stats": {
      "": {
        "count": 3,
        "header": {
          "size": 520
        },
        "stats": {
          "total_size": 520,
          "total_fee": 63057
        }
      },
      "GorillaPool.com 🦍": {
        "count": 1,
        "header": {
          "size": 148698760
        },
        "stats": {
          "total_size": 148698760,
          "total_fee": 6068680
        }
      },
      "Mining-Dutch": {
        "count": 2,
        "header": {
          "size": 1072828
        },
        "stats": {
          "total_size": 1072828,
          "total_fee": 789414
        }
      },
      "SBICrypto.com": {
        "count": 30,
        "header": {
          "size": 28091831
        },
        "stats": {
          "total_size": 28091831,
          "total_fee": 21344586
        }
      },
      "SVpool": {
        "count": 9,
        "header": {
          "size": 480750592
        },
        "stats": {
          "total_size": 480750592,
          "total_fee": 44484376
        }
      },
      "qdlnk": {
        "count": 21,
        "header": {
          "size": 1409145367
        },
        "stats": {
          "total_size": 1409145367,
          "total_fee": 74006627
        }
      },
      "taal.com": {
        "count": 17,
        "header": {
          "size": 978720432
        },
        "stats": {
          "total_size": 978720432,
          "total_fee": 51728556
        }
      }
    }
  },
  ...
 ]

network

The selected network: main.

days

The number of days to retrieve the data for. Only 90 or 365 days can be selected.

HTTP Request
GET https://api.whatsonchain.com/v1/bsv/main/block/tagcount/height/{height}/stats
cURL
curl --location --request GET "https://api.whatsonchain.com/v1/bsv/main/block/tagcount/height/762291/stats"
Response JSON structure
{
  "count": 9128,
  "results": [
    {
      "name": "certihash",
      "count": 5588
    },
    {
      "name": "my2cents",
      "count": 2320
    },
    {
      "name": "run#cryptofights",
      "count": 709
    },
    {
      "name": "OP_RETURN",
      "count": 152
    },
    {
      "name": "bitcom#B",
      "count": 124
    },
    {
      "name": "bitcom#D",
      "count": 123
    },
    {
      "name": "peergame.com",
      "count": 29
    },
    {
      "name": "Badge",
      "count": 17
    },
    {
      "name": "nonstandard",
      "count": 15
    },
    {
      "name": "run",
      "count": 12
    },
    {
      "name": "STAS",
      "count": 11
    },
    {
      "name": "run#relayx.io",
      "count": 6
    },
    {
      "name": "tdxp.app",
      "count": 5
    },
    {
      "name": "bitcom",
      "count": 4
    },
    {
      "name": "bitcom#twetch",
      "count": 4
    },
    {
      "name": "haste arcade",
      "count": 4
    },
    {
      "name": "metanet#metaid",
      "count": 3
    },
    {
      "name": "DotWallet",
      "count": 2
    }
  ]
}

network

The selected network: main.

height

The height of the block.

API
Get tag count by height
Get miner block stats
Get miner summary stats
Get block stats by height
Get block stats by hash

Transaction Processing

https://arc.taal.com/v1
https://bitcoin-sv.github.io/arc/api.html
https://bitcoin-sv.github.io/arc/
https://github.com/bitcoin-sv/arc
https://github.com/bitcoin-sv/arc/blob/master/doc/BIP-239.md
https://arc-test.taal.com/v1
React 18
Redux Toolkit
BSV Javascript library
TypeScript
Webpack
ESLint
Prettier
Chrome Extension Manifest Version 3
ChromeExtension
official documentation
WoC Telegram channel

Terminology

Satoshis

The smallest indivisible unit of a bitcoin. 1E8 Satoshis = 1 bitcoin

Script

Low level bitcoin script.

SDK

Software Developer Kit is a software library to make certain tasks easier for a software developer.

UTXO

An Unspent Transaction Output is an amount of bitcoin that can be spent by the recipient.

Inscription ID

An outpoint representing a particular inscription, comprised of a transaction ID and output index with the following formatting: `txid_vout`

Inscription Number

This is an auto-incrementing id given to each inscription as they appear in mined blocks, starting with inscription #0. Because inscription numbers are dependent on the order of transactions in a block, inscription numbers are not assigned until a transaction is confirmed. This also makes inscription number sensitive to reorgs.

Origin

This is like a "low resolution" ordinal number. It represents the last time a particular ordinal became a 1 satoshi output. Since utxos can be split and joined over time, an ordinal can have more than one origin. This is a 1Sat protocol specific concept, not present in the original ordinals protocol.

Ordinal Number

An ordinal is an identifier given to a specific satoshi. It is given when the sat comes into existence during a coinbase transaction. To learn more about this concept read the original "ordinal theory" documentation.

Glossary

Blockchain

It is a form of distributed database (or ledger) that acts as a record of all the valid transactions which are transmitted to the blockchain network.

Contract

An on-chain document representing the contract between token issuer and user.

Issue

Mint a token from an on-chain contract transaction.

P2PKH (Pay to public key hash)

The most common locking script used by default to send bitcoin.

Redeem

Destroy the token and return the locked Satoshis to the issuer.

Satoshis

The smallest indivisible unit of a bitcoin. 1E8 Satoshis = 1 bitcoin.

Script

Low level bitcoin script.

SDK

Software Developer Kit is a software library to make certain tasks easier for a software developer.

STAS

A token script named after its creator Stas. Also a reverse acronym: Substantiated Tokens from Actualized Satoshis.

Token

It is a type of digital property or control element that can be transferred using a blockchain.

UTXO

An Unspent Transaction Output is an amount of bitcoin that can be spent by the recipient.

Go Wrapper for WoC API by MrZ

Go Wrapper for bitcoin RPC by Simon Ordish

Python3 Wrapper for WOC API by AustEcon

JS Wrapper for WoC API by baryon

Example: How to verify merkle proofs by Simon Ordish

Basic Tutorial - Node

Github Repository

mkdir 1sat-tutorial

cd 1sat-tutorial

Demo code using our 1Sat Token Studio API can be found on Github so you can clone our repository or if you want to do it manually, we need to make now a node project

npm init

and answer in the questions.

Let’s add the dependencies npm install bsv@1.5.4 npm install axios

Make sure your package.json looks like this (you might need to change the type to “module” and add a new entry to run the tutorial- "tutorial": "node index.js"

{ "name": "1sat-tutorial", "version": "1.0.0", "description": "1sat-tutorial", "type": "module", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "tutorial": "node index.js" }, "author": "TAAL", "license": "ISC", "dependencies": { "dependencies": { "axios": "^1.7.2", "bsv": "^1.5.4" } }

Now we are ready to start coding. Create the main file you specified during the setup e.g. index.jsin the root of the 1sat-tutorial folder as well as the helping file 1sat_utils.cjs using your editor or IDE of choice.

  1. Copy the code from our files and paste.

  2. in index.js you will need to replace the sample API key from your TAAL API Key

  3. You can also tune which steps to run, only the creation of a single/standalone token, the inscription of a collection with one item or individual steps you may want to debug in depth e.g.

    const STEPS_TO_TEST =[ 'single', 'collection']; ///const STEPS_TO_TEST =['1.1','1.2','1.3','1.4','1.5', '1.6', '1.7']; //const STEPS_TO_TEST =['2.1','2.2','2.3','2.4','2.5', '2.6', '2.7', '2.8', '2.9'];

You can test now. If all was properly configured you should see something like this:

Add label

Flow Diagram

UI Elements

Welcome to TAAL Wallet window

This is the welcome window of the TAAL Wallet.

The following table describes the UI elements available on this window.

UI Elements
Description

CREATE A WALLET button

Displays the Create a new Wallet window, where you can create a new wallet.

IMPORT WALLET button

Displays the Import your Wallet window, where you can import an existing wallet if you have the secret recovery phrase.

Create a new wallet window

You can use this window to create a new wallet.

To reach this window: On the Welcome to TAAL Wallet window, click CREATE A WALLET or on the Wallet window, click on Add new account.

The following table describes the UI elements available on this window.

UI Elements
Description

Account name field

The name of the account. This field is mandatory.

Password field

The 8 characters password for the account. This field is mandatory.

Repeat password field

The password for the account same as provided in the previous field. This field is mandatory.

Network drop-down list

The available networks, and the options are:

  • Testnet

  • Mainnet

This field is mandatory.

Recovery phrase

It is a group of words, usually 12 or more that are generated when a new crypto wallet is created. Note: Here is your 12 words recovery phrase. It is incredibly important to take a note of this and keep it safe as without you may lose access to your wallet and the funds contained within.

Import your Wallet window

You can use this window to import an existing wallet.

The following table describes the UI elements available on this window.

UI Elements
Description

create a new one button

Displays the Create a new Wallet window, where you can create a new wallet.

Account name field

The name of an existing account. This field is mandatory.

Password field

The 8 characters password for the account. This field is mandatory.

Repeat password field

The password for the account same as provided in the previous field. This field is mandatory.

Network drop-down list

The available networks, and the options are:

  • Testnet

  • Mainnet

This field is mandatory.

Recovery phrase field

It is a group of words, usually 12 or more that are generated when a new crypto wallet is created.

Passphrase

The Passphrase is an advanced feature that adds a 13th word of your choosing to your recovery phrase.

Wallet main window

The main window of the TAAL Wallet.

The following table describes the UI elements available on this window.

UI Elements
Description

Displays the wallets and selected network.

Add new account button

Displays the Create a new Wallet window, where you can create a new wallet.

Import account button

Displays the Import your Wallet window, where you can import an existing wallet.

Displays all the menu options available.

Home button

Displays Home window.

Select Wallet button

Displays the Your Wallets window, where you can select the Wallet you want.

Send BSV button

Displays the Send BSV window, where you can send satoshis to a valid address on the network.

Receive BSV button

Displays the Receive BSV window, where you can view the BSV address or QR code of the account.

History button

Displays the Your Wallet's history window, where you can view the history of transaction with transaction ID and block height.

Tokens button

Displays the Your Tokens window, where you can view the tokens.

Options button

Display the Access Control List window, where you can view and delete the Websites with access to TAAL Wallet.

Airdrop button

Testnet only. Will send a small amount of BSV test coins to your account.

Lock Wallet button

Locks the wallet.

Home window

This window displays the current account, wallets details, and balance.

The following table describes the UI elements available on this window.

UI Elements
Description

Current account

The name of the current account.

Edits the name of the current account.

Name field

The name of the wallet.

Path field

The path of the wallet

Address field

The address of the wallet.

Balance field

The balance in satoshis available in the wallet.

Updated at field

The date and time when the wallet was last updated.

SELECT ANOTHER WALLET button

Displays the Your Wallets window, where you can view the wallets available in your current account, and you can select the wallet you want.

Balance

The balance in

satoshis available in the current account.

Refreshes the balance.

SEND BSV button

Displays the Send BSV window, where you can send satoshis to a valid address on the network.

RECEIVE BSV button

Displays the Receive BSV window, where you can view the BSV address or QR code of the account.

HISTORY button

Displays the Your Wallet's history window, where you can view the history of transaction with transaction ID and block height.

TOKENS button

Displays the Your Tokens window, where you can view the tokens.

Your Wallets window

This window displays the wallets available in your current account, and you can select the wallet you want.

The following table describes the UI elements available on this window.

UI Elements
Description

CREATE A NEW WALLET button

Display the Create a New Wallet window, where you can create a new wallet.

Wallet section

Display the wallet details, such as Name, address, Path, Balance, and Updated at.

SELECT button

Enables you to select the wallet you want.

Send BSV window

You can use this window to send satoshis to a valid address on the network.

The following table describes the UI elements available on this window.

UI Elements
Description

Destination address field

The address to which you want to send satoshis. This field is mandatory.

Amount in satoshis (max 1002500) field

The amount in satoshis you want to send. This field is mandatory.

CANCEL button

Cancels the transaction.

SEND button

Sends satoshis to a valid address on the network.

Receive BSV

This window displays the BSV address or QR code of the account.

It works only with BSV. If you send any other cryptos, it will result in the loss of funds.

The following table describes the UI elements available on this window.

UI Elements
Description

Your BSV address: field

The BSV address of the account.

Copies the BSV address of the account.

QR code

The QR code of the account.

Your Wallet's history window

This window displays the history of transaction with transaction ID and block height.

The following table describes the UI elements available on this window.

UI Elements
Description

Refetch history button

Retrieves the history of the wallets.

TX ID field

The ID of the transaction.

Your token window

This view displays the tokens.

Access Control List window

This window displays the Websites with access to TAAL Wallet, and you can also delete them.

Tutorial

Install TAAL Wallet from Chrome Web Store

The following are the steps to install TAAL Wallet in your system from Chrome Web Store:

  1. In the Search the store field, search for TAAL Web3 Wallet.

  2. Click Add to Chrome. You can see the TAAL Wallet in your extensions.

  3. Click TAAL Wallet. The Terms of Service agreement window is displayed.

  4. Click ACCEPT. The Welcome to TAAL Wallet window is displayed and you are ready to use the TAAL Wallet.

TAAL Wallet works only with Google Chrome web browser.

Install TAAL Wallet using the code from GitHub

The following are the steps to install TAAL Wallet using the code from GitHub:

  1. In your Command Prompt, go to the working directory.

  2. Run yarn.

  3. Runyarn dev.

  4. Go to the Google Chrome web browser.

  5. Click Extensions > Manage Extensions. The Extensions window is displayed.

  6. In the Extensions window, enable Developer mode.

  7. Click Load unpacked. The Select the extension directory. dialog box is displayed.

  8. In the Select the extension directory. dialog box, select the dist folder from the project. The TAAL Wallet extension is available in your Extensions.

  9. Click TAAL Wallet. The Terms of Service agreement window is displayed.

  10. Click ACCEPT. The Welcome to TAAL Wallet window is displayed and you are ready to use the TAAL Wallet.

Customise the password length

Copy sample.env to .env and customise it with your requirements, Eg. PASSWORD_MIN_LENGTH=1

Create a new Wallet

The following are the steps to create a wallet:

  1. In the Account name field, enter the account name.

  2. In the Password field, enter the 8 characters password.

  3. In the Repeat password field, repeat the password.

  4. In the Network list, select the network, such as Taalnet, Testnet, and Mainnet.

  5. In the Secret phase field, you are provided with the 12 words seen phrase.

  6. Click NEXT. A new wallet is created.

Import an existing Wallet

The following are the steps to import an existing wallet:

  1. In the Account name field, enter the name of an existing account.

  2. In the Password field, enter the 8 characters password.

  3. In the Repeat password field, repeat the password.

  4. In the Network list, select the network, such as Taalnet, Testnet, and Mainnet.

  5. In the Secret phase field, enter the 12 words seen phrase provided when you created the this account.

  6. Click NEXT. An existing wallet is imported.

Create a new Wallet in the current account

The following are the steps to create a new wallet in the current account:

  1. On the Your Wallets window, click CREATE A NEW WALLET. The Create a New Wallet window is displayed.

  2. In the Name field, enter the name of the wallet.

  3. Click NEXT. A new wallet is created

Send BSV

The following are the steps to send BSV:

  1. In the Destination address field, enter the address to which you want to send satoshis.

  2. In the Amount in satoshis (max 1002500) field, enter the amount in satoshis you want to send.

  3. Click SEND. The satoshis is sent to a valid address on the network.

Receive BSV

View History

Airdrop

Transaction format and fee rate

Fee rate

The current standard fee rate which applies to all transactions submitted to any of the TAAL transaction processing APIs is: 1 sat/kb

The minimum fee for any transaction is 1 sat.

The fee required is rounded depending on size of the transaction. The following list exemplifies the logic:

  • Transactions with 1.4999... kb > size > 0.0 kb => min absolute fee required = 1 sat.

  • Transactions with 2.4999... kb > size > 1.5 kb => min absolute fee required = 2 sat

  • Transactions with 3.4999... kb > size > 2.5 kb => min absolute fee required = 3 sat

  • ...

Transaction format

There is a number of libraries which allow to build BSV transactions. Here is a short list:

Javascript example using version 1 of bsv.js and request modules

  1. Create a new Node.js project:

    mkdir example
    cd example
    npm init -y
    npm install bsv@1
    npm install request
  2. Save the following code to a main.js in your example folder:

    const fs = require('fs')
    const bsv = require('bsv')
    
    // Random key produced each time...
    const newKey = bsv.PrivateKey()
    
    console.log(`Private key:     ${newKey.toString()}`)
    console.log(`Mainnet address: ${newKey.toAddress('mainnet').toString()}`)
    
    console.log(`
    1. Create a funding transaction by sending 1000 satoshis (0.00001 BSV) to ${newKey.toAddress('mainnet').toString()}.
    
    2. Add your Taal apiKey, and funding transaction txid and vout to 'generated.js'.
    
    3. Execute the generated code:
    
      node generated.js
    
    `)
    
    
    fs.writeFileSync('generated.js', `
    const bsv = require('bsv')
    var request = require('request')
    
    const privKey = bsv.PrivateKey('${newKey}')
    
    const apiKey = ""        // Add Taal mainnet API Key
    const fundingTxid = ""   // Add the funding transaction txid
    const fundingVout = -1   // Replace with funding transaction vout
    const returnAddress = "" // The address to return the 1000 satoshis (less fees)
    
    if (apiKey === "" || fundingTxid === "" || fundingVout === -1 || returnAddress === "") {
      console.log('This generated file needs an apiKey, a fundingTxid, a fundingVout and a returnAddress')
      process.exit(1)
    }
    
    const utxo1 = {
      txId: fundingTxid,
      outputIndex: fundingVout,
      address: privKey.toAddress('mainnet').toString(),
      script: bsv.Script.buildPublicKeyHashOut(privKey.publicKey).toHex(),
      satoshis: 1000
    }
    
    const tx1 = bsv.Transaction()
      .from(utxo1)
      .to(privKey.toAddress('mainnet').toString(), 800)
      .change(returnAddress)
      .sign(privKey)
    
    const utxo2 = {
      txId: tx1.hash,
      outputIndex: 0,
      address: privKey.toAddress('mainnet').toString(),
      script: bsv.Script.buildPublicKeyHashOut(privKey.publicKey).toHex(),
      satoshis: 800
    }
    
    const tx2 = bsv.Transaction()
      .from(utxo2)
      .change(returnAddress)
      .sign(privKey)
      
    
    const txBuffer = Buffer.concat([
      tx1.toBuffer(),
      tx2.toBuffer()
    ])
    
    // Send the transaction to Taal API...
    request.post({
      url: 'https://api.taal.com/api/v1/batchBroadcast',
      headers: {
        'Authorization': apiKey,
        'Content-Type': 'application/octet-stream'
      },
      body: txBuffer
    }, function(error, response, body) {
      console.log(error, response.statusCode, body)
    })
    `)
  3. Execute the code and follow the onscreen instructions:

    node main.js   

Introduction

1SatOrdinals in an implementation of Ordinals running on the BSV blockchain.

Basic Tutorial - Postman

You can download our Postman Collection from here:

Once imported you will need to type in your personal values in the 1.1 Create Project Pre-request script

Once done, you can go through the steps one by one to create:

1.- A Standalone token (HTML token)

2.- A Collection (Image Token) with one collectionItem (Text token)

API

This API will allow you to create 1SatOrdinals Single and Collection Tokens.

Common

Create a Token Studio Project for your Standalone - Collection

Get a list of your Token Studio projects

It will return all projects associated with your API Key.

Get details for a specific project id

Returns a project for a valid project id.

URL Parameters

Output creation

Creates an output (single, collection, collectinItem) in the project.

Single projects can only contain single/standalone outputs

Collection projects need first a collection output created and then one or several collectionItems linked to the initial collection output

Body Parameters

Output deletion

Deletes an output (single, collection, collectinItem) in the project.

Query Parameters

Output List

Returns all outputs for a valid project id.

Query Parameters

Unsigned Transaction creation

Creates an unsigned transaction ready to sign and then be broadcast.

Unsigned transactions can refer to different outputs as well as different UTXO to be used for funding it

Response JSON structure

Body Parameters

Broadcast Transaction

Broadcast a signed transaction and returns its transaction Id

Response JSON structure

Body Parameters

To reach this window: On the Welcome to TAAL Wallet window, click IMPORT WALLET or on the Wallet window, click > Import account.

button

button

To reach this window: on the Wallet main window, click > Home.

Refresh balance or refresh button

To reach this window: On the Wallet main window, click > Select Wallet, or on the Home window, click SELECT ANOTHER WALLET.

To reach this window: On the Wallet main window, click > Send BSV or on the Home window, click SEND BSV.

To reach this window: On the Wallet main window, click > Receive BSV or on the Home window, click RECEIVE BSV.

Click to copy button

To reach this window: On the Wallet main window, click > History or on the Home window, click HISTORY.

To reach this window: On the Wallet main window, click > Tokens or on the Home window, click TOKENS.

To reach this window: On the Wallet main window, click > Options.

Go to . The chrome web store window is displayed.

Clone the code available at: .

On the Welcome to TAAL Wallet window, click CREATE A WALLET or on the Wallet window, click > Add new account. The Create a new wallet window is displayed.

On the Welcome to TAAL Wallet window, click IMPORT WALLET or on the Wallet window, click > Import account. The Import your Wallet window is displayed.

On the Wallet main window, click > Select Wallet. The Your Wallets window is displayed.

On the Wallet main window, click > Send BSV or on the Home window, click SEND BSV. The Send BSV window is displayed.

On the Wallet main window, click > Receive BSV or on the Home window, click RECEIVE BSV. The Receive BSV window is displayed.

Click to copy the BSV address of the account or scan the QR code.

To view History: On the Wallet main window, click > History or on the Home window, click HISTORY. The Your Wallet's history window is displayed in which you can view the history of transaction with transaction ID and block height.

To airdrop: On the Wallet main window, click > Airdrop. Testnet only. Will send a small amount of BSV test coins to your account.

The format of transaction is bound to the standard of BSV transactions as described .

See the for more information on 1Sat Ordinals and the for more information on Ordinals and ordinal theory.

An Api Key must be passed in the header of all requests see

Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
Parameter
Description
GitHub
GitHub
GitHub
npmjs
Gist
https://github.com/TAAL-GmbH/1sat-tutorial
Chrome Web Store
https://github.com/TAAL-GmbH/taal-wallet
here
https://www.npmjs.com/package/bsv
https://github.com/libsv/go-bt
HTTP Request
POST https://platform.taal.com/token-studio/api/v1/project/create
cURL
curl --location 'https://platform.taal.com/token-studio/api/v1/project/create' \
--header 'Apikey: ## VALID_API_KEY ##' \
--header 'Content-Type: application/json' \
--data '{
    "name": "1satcol project 1718100516565",
    "isFungible": false,
    "type": "single", //"collection"
    "tokenProtocol": "OneSatOrdinal"
}'

Response JSON structure
{
    "success": boolean,
    "data": {
        "projectUid": <uid>
    }
}
HTTP Request
GET https://platform.taal.com/token-studio/api/v1/project/
cURL
curl --location 'https://platform.taal.com/token-studio/api/v1/project/' \
--header 'Apikey: ## VALID_API_KEY ##'
Response JSON structure
{
    "success": boolean,
    "data": {
        "projectList": [
            {
                "uid": <uid>,
                "name": string,
                "network": string,
                "offChainData": {
                    "isFungible": boolean
                },
                "tokenProtocol": string
            }
        ]
    }
}
HTTP Request
GET https://platform.taal.com/token-studio/api/v1/project/<projectId>
cURL
  curl --location 'https://platform.taal.com/token-studio/api/v1/project/<projectId>' \
  --header "Apikey: ## VALID_API_KEY ##"
Response JSON structure
{
    "success": true,
    "data": {
        "uid": <uid>,
        "name": string,
        "tokenProtocol": string,
        "network": string,
        "isFungible": boolean,
        "type": string
    }
}

projectId

A valid project Id

HTTP Request
POST https://platform.taal.com/token-studio/api/v1/token/one-sat-ord/create-output
cURL
curl --location 'https://platform.taal.com/token-studio/api/v1/token/one-sat-ord/create-output' \
--header "Apikey: ## VALID_API_KEY ##" \
--header 'Content-Type: application/json' \
--data '{
    "projectUid": "<projectId>",
    
    "contentType":"text/html;charset=utf8",
    "b64File":"PGh0bWw+PGJvZHk+SGVsbG8gV29ybGQ8L2JvZHk+PC9odG1sPg==",
    
    "metadata": {
        "name": "My single token 1718101145907",
         "subType": "single",
         "subTypeData": "{\"description\": \"this is description\" }",
        "type": "ord",
        "description": "this is a standalone token description",
        "info": "anything",
        "eyes": "green"
    }
}'
Response JSON structure
{
    "success": true,
    "data": {
        "uid": <uid>,
        "type": string,
        "tokenProtocol": string
    }
}

subType

  • 'single' for standalone tokens in single projects

  • 'collection' for the seed token in collection projects

    • 'collectionItem' for each element linked to the collection

projectUid

projectUid

contentType

contentType depending on the desired output type (text, html or image)

b64File

Raw content formatted in b64

metadata

Mandatory:
"name": NFT name
"type": "ord"
"subType": "single" //"collection" or "collectionItem",
"subTypeData": stringified JSON,
"description": string,
Other e.g. traits:
        "info": "anything",
        "eyes": "green"
HTTP Request
DELETE https://platform.taal.com/token-studio/api/v1/output/{{outputUid}} 
cURL
curl --location --request DELETE 'https://platform.taal.com/token-studio/api/v1/output/{{outputUid}}' \
--header "Apikey: ## VALID_API_KEY ##" \
--header 'Content-Type: application/json'
Response JSON structure
```json
"success": true,
    "data": {
        "uid": "<uid>",
        "createdAt": "<timestamp>",
        "type": "token",
        "tokenProtocol": "OneSatOrdinal",
        "projectUid": "<uid>",
        "transactionUid": null,
        "txId": null,
        "identityUid": "<uid>",
        "address": null,
        "metadata": { <metadata>
        },
        "offChainData": {
            <fileData>
        }
    }
}
```

outputUid

A valid output Id

HTTP Request
GET https://platform.taal.com/token-studio/api/v1/output/by-project/{{projectUid}}?on-chain=0&type=collectionItem
cURL
  curl --location 'https://platform.taal.com/token-studio/api/v1/' \
  --header "Apikey: ## VALID_API_KEY ##"
Response JSON structure
{
    "success": boolean,
    "data": {
        "outputList": [
            {
                "createdAt": <date>,
                "uid": <uid>,
                "projectUid": <uid>,
                "transactionUid": <uid> (null if has not been used in a transaction yet),
                "type": string,
                "tokenProtocol": string,
                "metadata": { //Key / value pairs e.g.
                    "app": string,
                    "eyes": string,
                    "info": string,
                    "name": string,
                    "type": string,
                    "subType": string,
                    "description": string,
                    "subTypeData": stringified JSON
                },
                "offChainData": {
                    "b64FileHash": string,
                    "b64FileSize": int,
                    "contentType": string
                }
            }
        ]
    }
}

projectUid

A valid project Id

on-chain

Optional. If provided, the accepted values are 0/1 (false / true) to filter by outputs already broadcast

type

Optional. If provided, the accepted values are collection / collectionItem, to filter by a specific type of output

HTTP Request
POST https://platform.taal.com/token-studio/api/v1/token/one-sat-ord/create-transaction
cURL
curl --location 'https://platform.taal.com/token-studio/api/v1/token/one-sat-ord/create-transaction' \
--header "Apikey: ## VALID_API_KEY ##" \
--header 'Content-Type: application/json' \
--data '{
    "projectUid": "<projectUid>",
    "publicKey":  <Public Key>,
    "dstAddress": <Token Recipient Address>,
    "outputList": [<outputList>],
    "utxoList": [
        {
           "outputIndex": num,
            "txId": "<txId>"
        }
    ]
}'
{
    "success": boolean,
    "data": {
        "transactionUid": <uid>,
        "txObj": {<txObj>
        }
    }
}
<projectUid>

project Id

<publicKey>

publicKey

dstAddress
<Token Recipient Address>
outputList

List of output Ids

txId

Funding txId

outputIndex

Output Index of the tx e.g. 1

HTTP Request
POST https://platform.taal.com/token-studio/api/v1/submit
cURL
curl --location 'https://platform.taal.com/token-studio/api/v1/submit' \
--header "Apikey: ## VALID_API_KEY ##" \
--header 'Content-Type: application/json' \
--data '{
    "transactionUid": "<transactionUid>",
    "tx": "<txObjSigned>"
}
'
    {
      success: boolean,
      data: {
        txId: string
      }
    }
transactionUid

Transaction Uid returned by the create transaction endpoint

txObjSigned

Signed transaction ready to be broadcast

Authentication

FAQ

1. How can I cancel a subscription?

Subscriptions last for a month and they are automatically renewed unless you specify it. If you don’t want to renew one of your subscriptions:

  • Go to “My Account”

  • Unselect “Auto Renewal” for that subscription

2. What can I do when I can’t find the subscription that I want to cancel?

  • Go to “Support”

  • Create a ticket for Taal Support team.

3. How can I view my purchase history?

  • Go to “My Account”

  • Click on “Invoicing & Billing”

4. How can I change my payment method?

  • Go to “My Account”

  • Click on “Invoicing & Billing” - “View More”

  • Click on “Payment methods” - “Add payment method”

  • Edit the desired subscription to use the new payment method.

5. How can I request a refund?

  • Go to “Support”

  • Create a ticket for Taal Support team.

6. How can I check the status of my refund request?

  • Status of refund requests will be updated on the ticket

7. When will I get the money back?

  • It takes about 10 business days for those valid refund cases. You will be kept informed on the ticket you raised for refund.

8. How can I get the invoice?

  • Go to “My Account”

  • Click on “Invoicing & Billing”

9. What happens if I don't pay TAAL Client subscription?

Subscription will be terminated and the corresponding API Key revoked.

10. Will TAAL charge me after free trial?

TAAL will only charge for the paid plans. To avoid limitations on Free keys, you will need to upgrade that specific key.

11. Can I upgrade my account?

In the circumstance where you change your subscription pursuant to the Transaction Processing Agreement, you must cancel your previous subscription directly with Stripe. Subscriptions through the TAAL services will continue to accrue automatic renewal charges via Stripe until such cancellation is received by Stripe.

12. When will I be billed for my subscription?

Billing happens at the time of subscription or renewal

13. When will my subscription be renewed?

Same day next month.

14. Can I pay with PayPal?

At the moment it is only possible to pay with Credit Card

15. What will happen if the remaining allowance for my plan is 0?

The usage exceeding the allowance will be billed apart

https://github.com/TAAL-GmbH/1sat-tutorial

Support

TAAL Community

Protocol Specification | 1Sat Ordinals
Ordinals Docs

Join our community for support on the Transaction Processing and STAS services.

Join our WhatsOnchain Telegram channel for support on the WhatsOnchain services:

TAAL Blockchain Discord
https://t.me/joinchat/FfE6-EjZhoTHwhDhZH6F-w

Acronyms and Abbreviations

Acronym
Abbreviation

API

Application Programming Interface

BSV

Bitcoin Satoshi Vision

JSON

JavaScript Object Notation

MIME

Multipurpose Internet Mail Extensions

P2P

Peer-to-peer transactions

P2PKH

Pay to public key hash

SDK

Software Developer Kit

SPV

Simplified Payment Verification

STAS

Substantiated Tokens from Actualized Satoshis

TXID

Transaction ID

UTXO

Unspent Transaction Output

Start by creating a new wallet or recovering an existing one
Step 1
Recover an account secured with a standard recovery phrase
Recover an account secured with a standard recovery phrase and a passphrase