01 / INTRODUCTION

What is Taoscription?

Taoscription is the first inscription & token protocol on Bittensor L1 (Subtensor). It enables anyone to permanently inscribe data — text, images, SVG, code, or any file — and deploy fungible tokens (TAO-20) directly on the Bittensor blockchain using system.remark extrinsics. Inscriptions are free. TAO-20 tokens use enforced fees to prevent bot spam.

[001] How it Works

The protocol utilizes Bittensor's native system.remark to record arbitrary data on-chain. Inscriptions can be raw data (text, SVG, images) or structured JSON for NFT collections and TAO-20 tokens. All inscriptions are indexed, rendered in the Explorer, and permanent.

JSON / TAO-20 DEPLOY
{
  "p": "tao-20",
  "op": "deploy",
  "tick": "TAOS",
  "max": "21000000",
  "lim": "420"
}

This is the actual deploy of $TAOS — the first TAO-20 token on Bittensor. Anyone can now mint 420 tokens per TX for 0.001 TAO.

[002] Key Features

  • check_circle
    L1 Sovereignty

    Data is stored directly in the Subtensor state, requiring no off-chain storage like IPFS.

  • check_circle
    Fair Launch Mechanics

    Open participation without pre-mines or whitelist requirements.

  • check_circle
    Native Integration

    Seamlessly compatible with existing Bittensor wallets (Talisman, Polkadot.js, SubWallet).

  • check_circle
    Raw Inscriptions

    Inscribe raw data directly — no JSON wrapper needed. Text, SVG, images go straight into the remark.

  • check_circle
    TAO-20 Fungible Tokens

    Deploy and mint BRC-20 style tokens with enforced fees. 4-letter tickers, first come first served.

[003] Supported Formats

Format MIME Type Max Size
Plain Text text/plain 100 KB
SVG Vector image/svg+xml 100 KB
PNG / JPEG image/png, jpeg 350 KB
JSON / Code application/json 100 KB

* Maximum size is constrained by block gas limits and system.remark payload capacity.

02 Creating an Inscription

To create an inscription on Bittensor L1, you need a Polkadot-compatible wallet (Polkadot.js, Talisman, or SubWallet) with a small amount of TAO for transaction fees.

Steps:

  1. Connect your wallet on the Inscribe page
  2. Choose your format: Text or File upload
  3. Upload or paste your content
  4. Review the fee (0.001 TAO platform + gas)
  5. Click Inscribe — your wallet signs a utility.batchAll (transfer fee + remark)
  6. Wait for block confirmation (~12 seconds)
  7. Your inscription is permanently on Bittensor L1

03 Supported Formats

Format MIME Type Max Size
Texttext/plain100 KB
SVGimage/svg+xml100 KB
Imageimage/png, jpeg, gif, webp350 KB
JSONapplication/json100 KB
Codetext/javascript, html, css100 KB
HTMLtext/html100 KB

04 Fees & Costs

Taoscription uses a hybrid fee model. Inscriptions are free to encourage adoption. TAO-20 tokens require fees to prevent bot spam.

Inscriptions

Raw inscription (text/image/SVG)0.001 TAO (suggested, not enforced)
Network gas~0.0001 TAO

Raw inscriptions are visible in the Explorer regardless of payment. The indexer is an open protocol — any system.remark on Bittensor is indexed.

TAO-20 Tokens

Deploy new token0.01 TAO (enforced)
Mint tokens0.001 TAO (enforced)
Transfer tokens0.0005 TAO (enforced)
Network gas~0.0001 TAO

TAO-20 fees are strictly enforced. Operations without proper payment to the treasury are ignored by the indexer. This prevents bots from minting entire supplies for free.

Other

Marketplace fee (future)2.5%
1 TAO= 1,000,000,000 rao

All fee transactions use utility.batchAll — the user signs a single TX that atomically transfers the fee and inscribes the data. If the TX fails, no TAO is spent.

05 Protocol Specification

All Taoscription operations use system.remark extrinsics on Bittensor L1 (Subtensor/Finney) with structured JSON payloads.

Protocol identifier: "p": "tao-nft"

06 Operations

Operation Who Description
deployCreatorCreate a new collection
mintBuyerMint via batchAll(transfer + remark) — user signs directly
inscribeAnyoneInscribe arbitrary data on-chain
transferOwnerTransfer ownership of an inscription
listOwnerList inscription for sale
buyBuyerBuy a listed inscription
burnOwnerPermanently destroy an inscription

Example: Inscribe Operation

{
  "p": "tao-nft",
  "op": "inscribe",
  "type": "image/svg+xml",
  "name": "My First Inscription",
  "data": "<svg>...</svg>"
}

Example: Transfer Operation

{
  "p": "tao-nft",
  "op": "transfer",
  "symbol": "MYART",
  "id": "42",
  "to": "5Gzzz...NEW_OWNER_SS58"
}

07 TAO-20 Token Standard

TAO-20 is a fungible token standard on Bittensor L1, inspired by BRC-20 on Bitcoin. Anyone can deploy and mint tokens using system.remark with JSON payloads.

Key rules:

  • Ticker: exactly 4 letters (A-Z) — e.g. TOAD, MEME, DOGE, PEPE
  • First come, first served — the first valid deploy claims the ticker forever
  • Fixed 8 decimals for all tokens
  • Fees enforced — deploy/mint/transfer without payment are ignored
  • Fair launch — no pre-mines, everyone mints at the same fee

08 Deploy a TAO-20 Token

Create a new fungible token. Fee: 0.01 TAO.

{
  "p": "tao-20",
  "op": "deploy",
  "tick": "TOAD",        // exactly 4 letters A-Z
  "max": "21000000",     // max supply
  "lim": "1000"          // max amount per mint
}

Sent via: utility.batchAll([balances.transferKeepAlive(treasury, 0.01 TAO), system.remark(JSON)])

If the ticker already exists or the fee is not paid, the deploy is silently ignored.

09 Mint TAO-20 Tokens

Mint tokens from an existing deployment. Fee: 0.001 TAO per mint.

{
  "p": "tao-20",
  "op": "mint",
  "tick": "TOAD",        // ticker to mint
  "amt": "1000"          // amount (must be ≤ lim)
}

Sent via: utility.batchAll([balances.transferKeepAlive(treasury, 0.001 TAO), system.remark(JSON)])

Validation: ticker must exist, amount ≤ limit per mint, total minted + amount ≤ max supply, fee paid.

Anti-bot: Every mint costs 0.001 TAO. To acquire 10,000 mints, a bot must spend 10 TAO (~$3,000). Fair for everyone.

10 Transfer TAO-20 Tokens

Send tokens to another address. Fee: 0.0005 TAO.

{
  "p": "tao-20",
  "op": "transfer",
  "tick": "TOAD",
  "amt": "500",
  "to": "5Gxxx...RECIPIENT_SS58"
}

Sent via: utility.batchAll([balances.transferKeepAlive(treasury, 0.0005 TAO), system.remark(JSON)])

The indexer verifies the sender's balance from the cryptographic signature of the TX. You can only transfer tokens you own.

11 Transfer Inscriptions

Transfer ownership of any inscription (text, SVG, image, etc.) to another address. Use the inscription's #ID from the Explorer.

{
  "p": "tao-nft",
  "op": "transfer",
  "id": "442",
  "to": "5Gxxx...RECIPIENT_SS58"
}

Sent via: system.remark(JSON) — no fee required, only network gas (~0.0001 TAO).

Security: The indexer verifies ownership from the cryptographic signature of the TX. You can only transfer inscriptions you own.

12 Marketplace

The marketplace allows listing, buying, and trading inscriptions. All operations are on-chain via system.remark.

v1: OTC Trading — transfers are peer-to-peer via system.remark. Buyers and sellers coordinate off-chain (Discord, Telegram) and settle on-chain.

v2: Escrow Marketplace (coming soon) — automated list → buy flow with on-chain escrow via the indexer. The buyer pays TAO, the indexer verifies payment and transfers the inscription atomically.