Only this pageAll pages
Powered by GitBook
1 of 26

TAAL Public docs

Loading...

Introduction

Loading...

Core Products

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

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. Enter the URL https://platform.taal.com/ in your browser

  2. Register or login on to TAAL PLATFORM.

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

WhatsOnChain

WhatsOnChain API docs have moved! https://docs.whatsonchain.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.

You can get access to and get .

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!

Whitepaper

TAAL Website

Blog Post

TAAL PLATFORM
1Sat Ordinals tokens API

1Sat Ordinals tokens API

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.

Flow Diagram

Acronyms and Abbreviations

Acronym
Abbreviation

Support

TAAL Community

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

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

API

Application Programming Interface

BSV

Bitcoin Satoshi Vision

JSON

JavaScript Object Notation

MIME

Multipurpose Internet Mail Extensions

TAAL Wallet

Introduction

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

See the Protocol Specification | 1Sat Ordinals for more information on 1Sat Ordinals and the Ordinals Docs for more information on Ordinals and ordinal theory.

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.

ARC Endpoints

ARC is the successor of mAPI, the merchant API.

The URL of TAAL's mainnet ARC API is: https://arc.taal.com/v1

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

curl --location 'https://arc.taal.com/v1/policy' \
--header 'Authorization: <API Key>'

A complete description of ARC API endpoints can be found under the following link: https://bitcoin-sv.github.io/arc/api.html.

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

  • High-level documentation:

  • Github repository:

  • Description of BIP-239 standard:

ARC Testnet

URL:

Basic Tutorial - Node

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 [email protected] 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

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

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

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: 100 sat/kb

The minimum fee for any transaction is 100 sat/kB.

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

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

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:

  2. Save the following code to a main.js in your example folder:

  3. Execute the code and follow the onscreen instructions:

here
https://www.npmjs.com/package/bsv
https://github.com/libsv/go-bt
mkdir example
cd example
npm init -y
npm install bsv@1
npm install request
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)
})
`)
node main.js   

Architecture

List of tech stack used

TAAL Wallet Chrome extension is built using React and Typescript.

Features

  • React 18

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

Redux Toolkit
BSV Javascript library
TypeScript
Webpack
ESLint
Prettier
Chrome Extension Manifest Version 3
ChromeExtension
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);

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. Go to Chrome Web Store. The chrome web store window is displayed.

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

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

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

  5. 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. Clone the code available at: .

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

  3. Run yarn.

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. 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.

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

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

Import an existing Wallet

The following are the steps to import an existing wallet:

  1. 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.

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

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

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 Wallet main window, click > Select Wallet. The Your Wallets window is displayed.

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

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

Send BSV

The following are the steps to send BSV:

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

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

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

Receive BSV

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

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

View History

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.

Airdrop

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

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.

  • 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.

  • 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.

  • Click NEXT. A new wallet is created

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

    https://github.com/TAAL-GmbH/taal-wallet

    Basic Tutorial - Postman

    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)

    API

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

    Common

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

    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

    Parameter
    Description

    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

    Parameter
    Description

    Output deletion

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

    Query Parameters

    Parameter
    Description

    Output List

    Returns all outputs for a valid project id.

    Query Parameters

    Parameter
    Description

    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

    Parameter
    Description

    Broadcast Transaction

    Broadcast a signed transaction and returns its transaction Id

    Response JSON structure

    Body Parameters

    Parameter
    Description

    projectId

    A valid project Id

    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

    outputUid

    A valid output Id

    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

    project Id

    publicKey

    List of output Ids

    Funding txId

    Output Index of the tx e.g. 1

    Transaction Uid returned by the create transaction endpoint

    Signed transaction ready to be broadcast

    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
        }
    }
    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
        }
    }
    
    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>
            }
        }
    }
    ```
    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
                    }
                }
            ]
        }
    }
    
    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>
    <publicKey>
    dstAddress
    <Token Recipient Address>
    outputList
    txId
    outputIndex
    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
    txObjSigned

    UI Elements

    Welcome to TAAL Wallet window

    This is the welcome window of the TAAL Wallet.

    Start by creating a new wallet or recovering an existing one

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

    UI Elements
    Description

    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

    Import your Wallet window

    You can use this window to import an existing wallet.

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

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

    UI Elements
    Description

    Wallet main window

    The main window of the TAAL Wallet.

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

    UI Elements
    Description

    Home window

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

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

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

    UI Elements
    Description

    Your Wallets window

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

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

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

    UI Elements
    Description

    Send BSV window

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

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

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

    UI Elements
    Description

    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.

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

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

    UI Elements
    Description

    Your Wallet's history window

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

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

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

    UI Elements
    Description

    Your token window

    This view displays the tokens.

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

    Access Control List window

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

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

    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.

    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.

    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.

    Refresh balance or refresh button

    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.

    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.

    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.

    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.

    button

    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.

    button

    Displays all the menu options available.

    Home button

    Displays Home 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.

    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.

    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.

    Your BSV address: field

    The BSV address of the account.

    Click to copy button

    Copies the BSV address of the account.

    QR code

    The QR code of the account.

    Refetch history button

    Retrieves the history of the wallets.

    TX ID field

    The ID of the transaction.

    Step 1
    Recover an account secured with a standard recovery phrase
    Recover an account secured with a standard recovery phrase and a passphrase

    Transaction Processing

    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.