Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The following are the steps to get an API key from TAAL:
Enter the URL https://platform.taal.com/ in your browser
Register or login on to TAAL PLATFORM.
Your mainnet and testnet API keys will be displayed.
This API accompanies the WhatsOnChain.com website to form a suite of blockchain explorer services run on fully independent infrastructure.
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
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.
Up to 3 requests/sec is free. Need more? Please create a free account on the TAAL Platform and view the available subscription plans 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 "Powered by WhatsOnChain" logo in your app or website.
Once you get your API key from the Platform, here is a usage example:
Please make sure to replace mainnet_xxxxxxxxxxxxxxxxxxxxxxx
with your actual API key.
If you need higher rate limits on testnet
, please contact us through Support.
Need help? Join our WoC devs Telegram channel and ask anything you need!
network
The selected network: main or test.
Welcome to TAAL Docs!!
You can use these docs to learn more about TAAL’s core products, explore guides, and check our API references.
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.
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.
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.
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 TAAL PLATFORM and get .
This endpoint retrieves information about the state of the chain for the selected network.
URL Parameters
network
The selected network: main or test.
This endpoint retrieves the circulating supply of BSV.
URL Parameters
network
The selected network: main.
This endpoint retrieves information about all known tips in the block tree.
The possible values for status:
invalid: This branch contains at least one invalid block.
headers-only: Not all blocks for this branch are available, but the headers are valid.
valid-headers: All blocks are available for this branch, but they were never fully validated.
valid-fork: This branch is not part of the active chain, but is fully validated.
active: This is the tip of the active main chain, which is certainly valid.
URL Parameters
network
The selected network: main.
This endpoint retrieves information on peers connected to the node.
URL Parameters
network
The selected network: main.
These endpoints cover spent and unspent transaction outputs.
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.
URL Parameters
This endpoint retrieves an ordered list of unconfirmed UTXOs for a given address. Returns up to 100k results in one request.
URL Parameters
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.
URL Parameters
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.
URL Parameters
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.
URL Parameters
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.
URL Parameters
This endpoint retrieves the ordered list of unconfirmed UTXOs for a given script. Returns up to 100k results in one request.
URL Parameters
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.
URL Parameters
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.
URL Parameters
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.
URL Parameters
This endpoint retrieves where the specified unconfirmed transaction output was spent.
URL Parameters
This endpoint retrieves where the specified confirmed transaction output was spent.
URL Parameters
This endpoint retrieves where the specified transaction output was spent, checking both confirmed and unconfirmed in a single call.
URL Parameters
Errors
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.
URL Parameters
Errors
Use either the 50001
,50002
, or 50003
port.
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.
Returns a response as long as the response message is less than 1MB in size.
URL Parameters
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.
The JSON structure for the above post request:
URL Parameters
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.
Returns a response as long as the response message is less than 1MB in size.
URL Parameters
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.
The JSON structure for the above post request:
URL Parameters
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:
network
The selected network: main or test.
address
The address
network
The selected network: main or test.
address
The address
network
The selected network: main or test.
network
The selected network: main or test.
address
The address
limit
Between 1 and 10000; default is 10000.
token
Provided next page token.
network
The selected network: main or test.
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.
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.
network
The selected network: main or test.
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.
network
The selected network: main or test.
network
The selected network: main or test.
txid
The transaction ID.
voutIndex
The specific output index.
network
The selected network: main or test.
txid
The transaction ID.
voutIndex
The specific output index.
network
The selected network: main or test.
txid
The transaction ID.
voutIndex
The specific output index.
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.
network
The selected network: main or test.
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.
network
The selected network: main or test.
address
The address
network
The selected network: main or test.
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.
network
The selected network: main or test.
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.
A separate endpoint Get Raw Transaction Output Data can be used to fetch the full hex data, if required by the client application.
URL Parameters
network
The selected network: main or test.
hash
The hash/txId of the transaction to retrieve.
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.
URL Parameters
network
The selected network: main or test.
hash
The hash/txId of the 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.
Keep in mind that this endpoint is meant for small-scale usage. For commercial or enterprise usage, please take a look at ARC Endpoints, which are built for those types of use cases.
URL Parameters
network
The selected network: main or test.
Request Body
txhex
The raw transaction data in hex.
You can fetch details for multiple transactions in a single request.
Max 20 transactions per request.
URL Parameters
network
The selected network: main or test.
You can get the status of multiple transactions in a single request.
Max 20 transactions per request.
URL Parameters
network
The selected network: main or test.
You can decode a raw transaction using this endpoint. Returns a json in response or an error message from the node.
URL Parameters
network
The selected network: main or test.
Request Body
txhex
The raw transaction data in hex.
You can download the transaction receipt (in PDF).
URL Parameters
network
The selected network: main or test.
hash
The hash/txId of the transaction.
This endpoint returns the transaction as a binary for a given hash.
URL Parameters
network
The selected network: main or test.
hash
The hash/txId of the transaction.
This endpoint returns the raw hex of a transaction for a given hash.
URL Parameters
network
The selected network: main or test.
hash
The hash/txId of the transaction.
You can get the raw data of multiple transactions in hex in a single request.
Max 20 transactions per request.
URL Parameters
network
The selected network: main or test.
This endpoint returns raw hex of the transaction output for a given transaction ID and output index.
URL Parameters
network
The selected network: main or test.
hash
The hash/txId of the transaction.
index
The Output/Vout index.
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.
URL Parameters
network
The selected network: main or test.
Errors
"unknown" for that txID
If a given txID is unknown.
(Ignored)
If a given output is unknown.
This endpoint returns the Merkle root of the branch for a confirmed transaction, in the TSC format. Returns null for unconfirmed transactions.
The old, non-TSC-format endpoint is no longer supported.
URL Parameters
network
The selected network: main or test.
hash
The hash/txId of the transaction.
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.
URL Parameters
network
The selected network: main or test.
Request Body
query
The text to search.
This endpoint serves as a usage status flag for a given script.
URL Parameters
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.
This endpoint retrieves the history of unconfirmed transactions for a given script. Returns up to 100k results in one request.
URL Parameters
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.
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.
URL Parameters
network
The selected network: main or test.
This endpoint retrieves the history of confirmed transactions for a given script. Pagination is available using the provided next-page token.
URL Parameters
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.
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.
URL Parameters
network
The selected network: main or test.
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.
Returns a response as long as the response message is less than 1MB in size.
URL Parameters
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.
This endpoint provides the current exchange rate for BSV.
URL Parameters
network
The selected network: main.
This endpoint provides the historical exchange rate data for BSV. Exchange rate data goes back to 2018/11/19.
URL Parameters
from
The starting date (unixtimestamp) to retrieve the exchange rate data.
to
The end date (unixtimestamp) to retrieve the exchange rate data.
This endpoint retrieves the block details of a given hash.
For a block with up to 100 transactions, all transaction ids are returned in response to this call. If a block has more than 100 transactions, only the top 100 transaction ids are returned. To get remaining ids see the 'Get block pages' section.
URL Parameters
network
Selected network: main or test.
hash
The hash of the block to retrieve
This endpoint retrieves the block details of a given block height.
For a block with up to 100 transactions, all transaction ids are returned in response to this call. If a block has more than 100 transactions, only the top 100 transaction ids are returned. To get remaining ids see the 'Get block pages' section.
URL Parameters
network
The selected network: main or test.
height
The height of the block to retrieve.
If a block has more than 100 transactions, the page URLs will be provided in the pages element when getting a block by hash or height.
URL Parameters
network
The selected network: main or test.
hash
The hash of the block to retrieve.
number
The page number.
This endpoint retrieves the block header details of a given hash or height.
Use '?format=block-headers-client' as a query parameter for the block-headers-client response format.
Possible values for the status when the block-headers-client format is requested:
active: Block is a part of the current active chain.
orphaned: Block is not a part of the current active chain.
URL Parameters
network
The selected network: main or test.
hash
The hash of the block to retrieve.
This endpoint retrieves the last 10 block headers.
URL Parameters
network
The selected network: main or test.
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.
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.
URL Parameter
network
The selected network: main.
count (optional)
Number of headers requested, between 1 and 100.
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.
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.
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.
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:
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
Go to the URL - , Click the TOOLS menu, and there you can find the Widget Creator.
network
The selected network: main or test.
network
The selected network: main or test.
We recommend the centrifuge websocket client side libraries below:
centrifuge-js – for a browser, NodeJS and React Native
centrifuge-go - for Go language
centrifuge-mobile - for iOS/Android with centrifuge-go
as basis and gomobile
centrifuge-dart - for Dart and Flutter
centrifuge-swift – for native iOS development
centrifuge-java – for native Android development and general Java
Non-centrifuge clients connect to separate endpoints specified in each section.
The supported networks are:
Mainnet
Testnet
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
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>
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 these 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}
URL Parameters
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.
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 these 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,...>
URL Parameters
filter
The filter transactions based on the output (vout) types. The available filters are: nulldata, multisig, pubkey, pubkeyhash, scripthash, and nonstandard.
This feature is currently unavailable as we are working on a v2. Please let us know in our Telegram channel if you are interested in streaming and what features you would like to see in the next version.
Receive confirmed transactions in real time.
Confirmed 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 transaction sizes greater than 1 MB. Recommended to fetch details for such transactions using these REST endpoints using the published txid value.
URL
Mainnet: wss://socket.whatsonchain.com/websocket?channels=woc:confirmedTx?filter=<filter1,filter2,...>
Testnet: wss://socket-testnet.whatsonchain.com/websocket?channels=woc:confirmedTx?filter=<filter1,filter2,...>
URL - for centrifuge clients
Mainnet: wss://socket.whatsonchain.com/confirmed?filter=<filter1,filter2,...>
Testnet: wss://socket-testnet.whatsonchain.com/confirmed?filter=<filter1,filter2,...>
URL Parameters
filter
The filter transactions based on the output (vout) types. The available filters are: nulldata, multisig, pubkey, pubkeyhash, scripthash, and nonstandard.
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
Examples
If your application needs customized/filtered events via WebSockets, please let us know in the WoC devs telegram channel.
These are the most recent changes and additions to the API:
12/31/2024
Changes
Transaction - Get Merkle Proof
12/02/2024
New
Tokens - 1Sat Ordinals (Beta)
10/22/2024
New
Transaction - Get a Transaction as Binary
09/09/2024
Changes
(Un)Spent Transaction Outputs - Get Confirmed UTXOs by Address
(Un)Spent Transaction Outputs - Get Confirmed UTXOs by Script
10/05/2024
Changes
Block - Get Header by Hash or Height
19/03/2024
New
Address - Get Associated Scripthashes
Address - Bulk History (Beta)
21/11/2023
New
(Un)Spent Transaction Outputs - Bulk Spent Transaction Outputs (Beta)
15/11/2023
New
(Un)Spent Transaction Outputs - Bulk Unconfirmed UTXOs by Address (Beta)
(Un)Spent Transaction Outputs - Bulk Confirmed UTXOs by Address (Beta)
(Un)Spent Transaction Outputs - Bulk Unconfirmed UTXOs by Script (Beta)
(Un)Spent Transaction Outputs - Bulk Confirmed UTXOs by Script (Beta)
Address - Bulk Unconfirmed Balance (Beta)
Address - Bulk Confirmed Balance (Beta)
Address - Bulk Unconfirmed History (Beta)
Address - Bulk Confirmed History (Beta)
Script - Bulk Confirmed Script History (Beta)
26/10/2023
New
(Un)Spent Transaction Outputs - Get Confirmed UTXOs by Address (Beta)
(Un)Spent Transaction Outputs - Get Confirmed UTXOs by Script (Beta)
(Un)Spent Transaction Outputs - Get Unconfirmed Spent Tx Output (Beta)
(Un)Spent Transaction Outputs - Get Confirmed Spent Tx Output (Beta)
(Un)Spent Transaction Outputs - Get Spent Transaction Output (Beta)
Address - Get Confirmed Balance (Beta)
Address - Get Confirmed History (Beta)
Script - Get Confirmed Script History (Beta)
28/07/2023
New
Address - Get Address Usage Status
Script - Get Script Usage Status
07/07/2023
New
Address - Get Mempool Balance
Address - Get Mempool History
Address - Get Unspent Mempool Transactions
Script - Get Mempool History
03/05/2023
New
On-Chain Data - Get OP_RETURN Data by Tx Hash
20/04/2023
New
Transaction - Get Transaction Propagation Status
16/03/2023
New
Output Tags (documentation only)
21/02/2023
New
Block - Get Header Byte File Links
Block - Get Latest Header Bytes
20/10/2022
New
Stats - Get tag count by height
18/10/2022
New
Stats - Get miner block stats
Stats - Get miner summary stats
13/10/2022
New
Stats - Get block stats by height
Stats - Get block stats by hash
10/10/2022
New
Chain info - Get peer info
Exchange rate - Get historical exchange rate
19/07/2022
New
11/05/2022
New
STAS Token endpoints
WebSockets - Options to filter Mempool transactions by the output type.
WebSockets - Options to filter Confirmed transactions by the output type.
02/03/2022
New
WebSockets - Block transactions
03/08/2021
17/06/2021
New
WebSockets - Adding testnet support
14/06/2021
New
WebSockets - Chain Stats
WebSockets - Extending support for non-centrifuge clients
22/03/2021
New
WebSockets - Mempool transactions
WebSockets - Confirmed transactions
WebSockets - Customized events
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
WebSockets - New block header event
WebSockets - Block headers history
13/07/2020
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
Enabled Get raw transaction data (hex) for testnet
Enabled Get raw transaction output data by index (hex) for testnet
03/02/2020
Changes
Removing support of STN network from address balance, history and UTXOs endpoints
Removing hex field from response body of Get transaction by hash request
Limiting vout[x].scriptPubKey.asm and vout[x].scriptPubKey.hex size to return max 100KB in response body of Get transaction by hash
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
18/11/2019
New
Bulk Broadcast transactions
09/11/2019
21/10/2019
23/06/2019
Fixed
Broadcast transaction endpoint now returns txid on success or error msg from node on failure
STAS is a token protocol that consists of a bitcoin script for locking/unlocking bitcoin transaction outputs. Read more in the official documentation.
This endpoint retrieves a list of supported tokens along with the relevant metadata.
URL Parameters
network
The selected network: main.
This endpoint retrieves the token metadata including contract and issuance details.
URL Parameters
network
The selected network: main.
tokenId
The unique ID of the token.
symbol
The symbol used in the registration of the token.
This endpoint retrieves the token UTXOs for a given address.
URL Parameters
network
The selected network: main.
address
The address
This endpoint retrieves the token balances for a given address.
URL Parameters
network
The selected network: main.
address
The address
This endpoint retrieves the transactions for a given token.
URL Parameters
network
The selected network: main.
tokenId
The unique ID of the token.
symbol
The symbol used in the registration of the token.
This endpoint returns the details of a valid token output or Not Found (404) for an invalid token output.
URL Parameters
network
The selected network: main.
hash
The hash/txId of the transaction.
index
The Output/Vout index.
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 WoC Telegram channel. Please provide as much detail on what you're trying to achieve as possible.
BSV-21 protocol was originally called BSV-20 v2 but was renamed for clarity.
Here is a brief intro from the official documentation:
"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
. "
This endpoint retrieves the amount of tokens that were not spent.
URL Parameters
network
The selected network: main or test.
id
Token identifier - <txid>_<vout>
.
This endpoint retrieves transfers inscribed by the provided address and where they are spent.
URL Parameters
network
The selected network: main or test.
address
Address.
Query Parameters
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
This endpoint retrieves the token details given the token's identifier.
URL Parameters
network
The selected network: main or test.
address
Address.
id
Token identifier - <txid>_<vout>
.
Query Parameters
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
This endpoint retrieves the token's transfer details given the inscription's outpoint.
URL Parameters
network
The selected network: main or test.
outpoint
Outpoint - <txid>_<vout>
.
This endpoint retrieves transfers history given the address and token's identifier.
URL Parameters
network
The selected network: main or test.
address
Address.
id
Token identifier - <txid>_<vout>
.
Query Parameters
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
This endpoint retrieves spent inscriptions given the transaction's identifier.
URL Parameters
network
The selected network: main or test.
txid
Transaction identifier.
Query Parameters
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
This endpoint retrieves tokens that a given transaction contains.
URL Parameters
network
The selected network: main or test.
txid
Transaction ID.
Query Parameters
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
This endpoint retrieves unspent BSV-21 inscriptions given an address.
URL Parameters
network
The selected network: main or test.
address
Address.
Query Parameters
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
This endpoint retrieves addresses that own a token or transfer(s) of the inscription.
URL Parameters
network
The selected network: main or test.
id
Token identifier - <txid>_<vout>
.
Query Parameters
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
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 WoC Telegram channel. Please provide as much detail on what you're trying to achieve as possible.
These endpoints will point to the current live MAPI reference implementation.
It is also possible to access endpoints for a specific MAPI specification:
At this moment only NFT tokens are supported. BSV-20 fungible tokens are not supported yet but will be in the near future.
This endpoint retrieves the token details by origin outpoint (the outpoint is the transaction ID and the output index).
URL Parameters
This endpoint retrieves the token details by Origin number (the number is the block height, transaction index, and output index).
Example:
URL Parameters
This endpoint retrieves the content of the token's file, in case it has one.
URL Parameters
This endpoint retrieves the token's latest transfer with the origin token.
URL Parameters
This endpoint retrieves the token's history of transfers.
URL Parameters
Query Parameters
This endpoint retrieves tokens that a transaction contains.
Example:
URL Parameters
Query Parameters
The simplest way to broadcast transactions to BSV is to use the broadcast and the batchBroadcast endpoints. /api/v1/broadcast expects a single transaction whilst /api/v1/batchBroadcast expects a batch of them.
With both of these it is possible to send your request as text with the application/json
mimetype or binary with the application/octet-stream
mimetype (discussed below).
The binary format has 2 advantages:
The size of the request payload is half of the text equivalent.
Unlike with JSON, the 1st transaction in the binary stream can be processed before the entire payload has been received.
The endpoints are:
Please note that these endpoints require a Taal APIKey that can be obtained for free by registering at https://platform.taal.com
application/json
)Request body
Response, if successful:
Response, if not successful
These are the exact responses returned by the bitcoin node.
application/octet-stream
)Request body
Response, if successful:
application/json
)Request body
application/octet-stream
)Request body
Response for both text and binary requests:
The resultDescription contains the exact responses returned by the bitcoin node for each transaction.
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
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
This endpoint retrieves the miner block stats for a specified number of days.
Unidentified block miners are tagged as an empty string.
URL Parameters
This endpoint retrieves the miner minimum fee rate stats for a specified time period.
Minimum fee rate is in sat/KB.
URL Parameters
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
This endpoint retrieves stats on tag count for a specific block at a given height.
URL Parameters
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 ).
The token origin represents the moment the NFT was created on the blockchain (more details ).
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.
network
The selected network: main or test.
origin outpoint
Inscription ID. More info here.
network
The selected network: main or test.
origin number
Origin number. More info here.
network
The selected network: main or test.
outpoint
Inscription ID. More info here.
network
The selected network: main or test.
outpoint
Inscription ID. More info here.
network
The selected network: main or test.
outpoint
Inscription ID. More info here.
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
network
The selected network: main or test.
txid
Transaction ID.
skip
Skip items. For pagination.
limit
Limit number of items. For pagination.
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
network
The selected network: main.
height
The height of the block to retrieve.
network
The selected network: main.
hash
The hash of the block to retrieve.
network
The selected network: main.
days
The number of days to retrieve the data for. Only 1 or 30 days can be selected.
network
The selected network: main.
from
Starting from as Unix timestamp.
to
Until to as Unix timestamp.
network
The selected network: main.
days
The number of days to retrieve the data for. Only 90 or 365 days can be selected.
network
The selected network: main.
height
The height of the block.
Ability for the user to send satoshis to a valid address on the network.
reveals a BSV address or QR code.
It shows the history of transaction with transaction ID and block height.
Ability for the user to add new account by creating new wallet with password, network selection and mnemonics .
The smallest indivisible unit is a bitcoin. 1E8 Satoshis = 1 bitcoin
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.
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.
Enables user to get the latest balance reflected in the account.
Testnet only. Will send a small amount of BSV test coins to your account.
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
The following are the system requirements for the TAAL Wallet:
TAAL Wallet works only with Google Chrome web browser.
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.
This endpoint retrieves various information for a given address.
URL Parameters
network
The selected network: main or test.
address
The address
This endpoint serves as a usage status flag for a given address.
URL Parameters
network
The selected network: main or test.
address
The address
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.
URL Parameters
network
The selected network: main or test.
address
The address
You can download the statement (in PDF) for a given address.
URL Parameters
network
The selected network: main or test.
address
The address
This endpoint retrieves the unconfirmed balance for a given address.
URL Parameters
network
The selected network: main or test.
address
The address
This endpoint retrieves the unconfirmed balance for multiple addresses in a single request.
Max 20 addresses per request.
URL Parameters
network
The selected network: main or test.
This endpoint retrieves the confirmed balance for a given address.
URL Parameters
network
The selected network: main or test.
address
The address
This endpoint retrieves the confirmed balance for multiple addresses in a single request.
Max 20 addresses per request.
URL Parameters
network
The selected network: main or test.
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.
URL Parameters
network
The selected network: main or test.
address
The address
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.
The JSON structure for the above post request:
URL Parameters
network
The selected network: main or test.
This endpoint retrieves unconfirmed transactions for a given address. Returns up to 100k results in one request.
URL Parameters
network
The selected network: main or test.
address
The address
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.
URL Parameters
network
The selected network: main or test.
This endpoint retrieves confirmed transactions for a given address. Pagination is available using the provided next-page token.
URL Parameters
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.
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.
URL Parameters
network
The selected network: main or test.
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.
Call standard individual unconfirmed and confirmed endpoints with page token for more history if required.
URL Parameters
network
The selected network: main or test.
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.
Returns a response as long as the response message is less than 1MB in size.
URL Parameters
network
The selected network: main or test.
address
The address
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.
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.
Go to “My Account”
Click on “Invoicing & Billing”
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
This is the welcome window of the TAAL Wallet.
The following table describes the UI elements available on this window.
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.
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.
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.
You can use this window to import an existing wallet.
The following table describes the UI elements available on this window.
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.
The main window of the TAAL Wallet.
The following table describes the UI elements available on this window.
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.
This window displays the current account, wallets details, and balance.
The following table describes the UI elements available on this window.
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.
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.
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.
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.
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.
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.
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.
This window displays the history of transaction with transaction ID and block height.
The following table describes the UI elements available on this window.
Refetch history button
Retrieves the history of the wallets.
TX ID field
The ID of the transaction.
This view displays the tokens.
This window displays the Websites with access to TAAL Wallet, and you can also delete them.
1SatOrdinals in an implementation of Ordinals running on the BSV blockchain.
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.
See the Protocol Specification | 1Sat Ordinals for more information on 1Sat Ordinals and the Ordinals Docs for more information on Ordinals and ordinal theory.
Join our community for support on the Transaction Processing and STAS services.
Join our WhatsOnchain Telegram channel for support on the WhatsOnchain services:
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:
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.
An on-chain document representing the contract between token issuer and user.
Mint a token from an on-chain contract transaction.
The most common locking script used by default to send bitcoin.
Destroy the token and return the locked Satoshis to the issuer.
The smallest indivisible unit of a bitcoin. 1E8 Satoshis = 1 bitcoin.
Low level bitcoin script.
Software Developer Kit is a software library to make certain tasks easier for a software developer.
A token script named after its creator Stas. Also a reverse acronym: Substantiated Tokens from Actualized Satoshis.
It is a type of digital property or control element that can be transferred using a blockchain.
An Unspent Transaction Output is an amount of bitcoin that can be spent by the recipient.
List of tech stack used
TAAL Wallet Chrome extension is built using React and Typescript.
Github Repository
https://github.com/TAAL-GmbH/1sat-tutorial
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.js
in the root of the 1sat-tutorial
folder as well as the helping file 1sat_utils.cjs using your editor or IDE of choice.
Copy the code from our files and paste.
in index.js you will need to replace the sample API key from your TAAL API Key
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
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
The following are the steps to install TAAL Wallet in your system from Chrome Web Store:
Go to Chrome Web Store. The chrome web store window is displayed.
In the Search the store field, search for TAAL Web3 Wallet.
Click Add to Chrome. You can see the TAAL Wallet in your extensions.
Click TAAL Wallet. The Terms of Service agreement window is displayed.
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.
The following are the steps to install TAAL Wallet using the code from GitHub:
Clone the code available at: https://github.com/TAAL-GmbH/taal-wallet.
In your Command Prompt, go to the working directory.
Run yarn.
Runyarn dev.
Go to the Google Chrome web browser.
Click Extensions > Manage Extensions. The Extensions window is displayed.
In the Extensions window, enable Developer mode.
Click Load unpacked. The Select the extension directory. dialog box is displayed.
In the Select the extension directory. dialog box, select the dist folder from the project. The TAAL Wallet extension is available in your Extensions.
Click TAAL Wallet. The Terms of Service agreement window is displayed.
Click ACCEPT. The Welcome to TAAL Wallet window is displayed and you are ready to use the TAAL Wallet.
Copy sample.env
to .env
and customise it with your requirements, Eg. PASSWORD_MIN_LENGTH=1
The following are the steps to create a wallet:
In the Account name field, enter the account name.
In the Password field, enter the 8 characters password.
In the Repeat password field, repeat the password.
In the Network list, select the network, such as Taalnet, Testnet, and Mainnet.
In the Secret phase field, you are provided with the 12 words seen phrase.
Click NEXT. A new wallet is created.
The following are the steps to import an existing wallet:
In the Account name field, enter the name of an existing account.
In the Password field, enter the 8 characters password.
In the Repeat password field, repeat the password.
In the Network list, select the network, such as Taalnet, Testnet, and Mainnet.
In the Secret phase field, enter the 12 words seen phrase provided when you created the this account.
Click NEXT. An existing wallet is imported.
The following are the steps to create a new wallet in the current account:
On the Your Wallets window, click CREATE A NEW WALLET. The Create a New Wallet window is displayed.
In the Name field, enter the name of the wallet.
Click NEXT. A new wallet is created
The following are the steps to send BSV:
In the Destination address field, enter the address to which you want to send satoshis.
In the Amount in satoshis (max 1002500) field, enter the amount in satoshis you want to send.
Click SEND. The satoshis is sent to a valid address on the network.
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 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
...
The format of transaction is bound to the standard of BSV transactions as described here.
There is a number of libraries which allow to build BSV transactions. Here is a short list:
Create a new Node.js project:
Save the following code to a main.js in your example folder:
Execute the code and follow the onscreen instructions:
You can download our Postman Collection from here:
https://github.com/TAAL-GmbH/1sat-tutorial
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)
This API will allow you to create 1SatOrdinals Single and Collection Tokens.
It will return all projects associated with your API Key.
Returns a project for a valid project id.
URL Parameters
projectId
A valid project Id
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
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
Deletes an output (single, collection, collectinItem) in the project.
Query Parameters
outputUid
A valid output Id
Returns all outputs for a valid project id.
Query Parameters
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
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
project Id
publicKey
List of output Ids
Funding txId
Output Index of the tx e.g. 1
Broadcast a signed transaction and returns its transaction Id
Response JSON structure
Body Parameters
Transaction Uid returned by the create transaction endpoint
Signed transaction ready to be broadcast