XChain Platform Action - ISSUE

This action creates or updates a TICK.

Wallet issuer flow. The xchain-wallet ships a Manage Token surface (per-token admin page reachable from My Tokens) that wraps the issuer actions — ISSUE, MINT, DESTROY, DIVIDEND, AIRDROP, BROADCAST, supply/description locks, ownership transfer, dispenser creation — in a guided UI with owner-gate and confirm-prelude steps. The protocol-level fields below are the canonical source; the wallet is one of several clients that can build these transactions.

PARAMS

Name Type Description
VERSION String Format Version
TICK String Ticker name or Ticker ID
MAX_SUPPLY String Maximum token supply
MAX_MINT String Maximum amount of supply a MINT transaction can issue
DECIMALS String Number of decimal places token should have (max: 18, default: 0)
DESCRIPTION String Description of token (250 chars max)
MINT_SUPPLY String Amount of token supply to mint in immediately (default:0)
TRANSFER String Address to transfer ownership of the TICK to (owner can perform future actions on token)
TRANSFER_SUPPLY String Address to transfer MINT_SUPPLY to (mint initial supply and transfer to address)
LOCK_MAX_SUPPLY String Lock MAX_SUPPLY permanently (cannot increase MAX_SUPPLY)
LOCK_MAX_MINT String Lock MAX_MINT permanently (cannot edit MAX_MINT)
LOCK_MINT String Lock TICK against MINT command
LOCK_MINT_SUPPLY String Lock TICK against issuing additional supply via MINT_SUPPLY
LOCK_DESCRIPTION String Lock TICK against DESCRIPTION changes
LOCK_SLEEP String Lock TICK against SLEEP command
LOCK_CALLBACK String Lock TICK against CALLBACK command
CALLBACK_BLOCK String Enable CALLBACK command after CALLBACK_BLOCK
CALLBACK_TICK String TICK that users get when CALLBACK command is used
CALLBACK_AMOUNT String CALLBACK_TICK amount that users get when CALLBACK command is used
ALLOW_LIST String ACTION_INDEX of a LIST of addresses allowed to interact with this token
BLOCK_LIST String ACTION_INDEX of a LIST of addresses NOT allowed to interact with this token
MINT_ADDRESS_MAX String Maximum amount of supply any address can mint via MINT transactions
MINT_START_BLOCK String BLOCK_INDEX when MINT transactions are allowed (begin mint)
MINT_STOP_BLOCK String BLOCK_INDEX when MINT transactions are NOT allowed (end mint)
MEMO String An optional memo to include

Formats

Version 0

  • VERSION|TICK|MAX_SUPPLY|MAX_MINT|DECIMALS|DESCRIPTION|MINT_SUPPLY|TRANSFER|TRANSFER_SUPPLY|LOCK_MAX_SUPPLY|LOCK_MAX_MINT|LOCK_DESCRIPTION|LOCK_SLEEP|LOCK_CALLBACK|CALLBACK_BLOCK|CALLBACK_TICK|CALLBACK_AMOUNT|ALLOW_LIST|BLOCK_LIST|MINT_ADDRESS_MAX|MINT_START_BLOCK|MINT_STOP_BLOCK|LOCK_MINT|LOCK_MINT_SUPPLY|MEMO

Version 1 - Edit DESCRIPTION

  • VERSION|TICK|DESCRIPTION|MEMO

Version 2 - Edit MINT PARAMS

  • VERSION|TICK|MAX_MINT|MINT_SUPPLY|TRANSFER_SUPPLY|MINT_ADDRESS_MAX|MINT_START_BLOCK|MINT_STOP_BLOCK|MEMO

Version 3 - Edit LOCK PARAMS

  • VERSION|TICK|LOCK_MAX_SUPPLY|LOCK_MAX_MINT|LOCK_DESCRIPTION|LOCK_SLEEP|LOCK_CALLBACK|LOCK_MINT|LOCK_MINT_SUPPLY|MEMO

Version 4 - Edit CALLBACK PARAMS

  • VERSION|TICK|CALLBACK_BLOCK|CALLBACK_TICK|CALLBACK_AMOUNT|MEMO

Version 5 - Edit LIST PARAMS

  • VERSION|TICK|ALLOW_LIST|BLOCK_LIST|MEMO

Examples

ISSUE|0|JDOG
This example issues a JDOG token 
ISSUE|0|JDOG|1||||1|||1
This example issues a JDOG token with MAX_SUPPLY set to 1, Mints 1 token via MINT_SUPPLY, and has LOCK_MAX_SUPPLY set to 1 to permanently lock the MAX_SUPPLY
ISSUE|0|JDOG|0|0|0|http://j-dog.net/images/JDOG_icon.png
This example issues a JDOG token with a DESCRIPTION which points to an icon
ISSUE|0|JDOG|0|0|0|http://j-dog.net/images/JDOG_icon.png|0|1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev
This example issues a JDOG token with a DESCRIPTION which points to an icon, and transfers token ownership to 1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev
ISSUE|0|JDOG|1000|1|0
This example issues a JDOG token with a max supply of 1000, and a maximum mint of 1 JDOG per mint
ISSUE|0|JDOG|1000|1|0|BTNS Tokens Are Cool!
This example issues a JDOG token with a max supply of 1000, and a DESCRIPTION of 'BTNS Tokens are Cool!'
ISSUE|0|BRRR|10000000000000000000|10000000000000|0|https://j-dog.net/json/JDOG.json|100
This example issues a BRRR token with a max supply of 1 Quandrillion supply and a maximum mint of 1 Trillion BRRR per mint, associates a JSON file with the token, and immediately mints 100 BRRR to the broadcasting address.
ISSUE|0|TEST|100|1|0||1|1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev|1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev
This example issues a TEST token with a max supply of 100, and a maximum mint of 1 TEST per mint. This also mints 1 TEST token, and transfers ownership AND initial token supply to 1JDogZS6tQcSxwfxhv6XKKjcyicYA4Feev

Rules

  • TICK must be 1 to 250 characters in length
  • TICK characters allowed are :
    • Alphanumeric characters : a-zA-Z0-9
    • Special characters: ~!@#$%^&*()_+-={}[]\:<>.?
  • TICK characters NOT allowed are :
    • pipe | (used as field separator)
    • semicolon ; (used as command separator)
    • period . (used as parent/child indicator)
    • slash / (used as directory indciator)
    • ^ (caret) cannot be used as first character in a TICK name (used as ticker id indicator)
  • First ISSUE with valid status will be the owner of the TICK
  • Additional ISSUE transactions after first valid ISSUE, will be considered invalid and ignored, unless broadcast from TICK owners address
  • DECIMALS can not be changed after TICK supply is issued and/or minted
  • MAX_SUPPLY max value is 1,000,000,000,000,000,000,000 (1 Sextillion)
  • MAX_SUPPLY can not be set below existing supply
  • LOCK_MAX_SUPPLY can only be set to 1 when the token’s MAX_SUPPLY is set (MIN_TOKEN_SUPPLY or greater) — declared in the same ISSUE or already on the token record. Minted supply is NOT required: a fair-mint token may declare its MAX_SUPPLY and permanently lock it at issuance, before any supply exists. Setting LOCK_MAX_SUPPLY with no MAX_SUPPLY declared is invalid.

Notes

  • ISSUE TICK with MAX_SUPPLY and MINT_SUPPLY set to any non 0 value, to mint supply until MAX_SUPPLY is reached (owner can mint beyond MAX_MINT)
  • ISSUE TICK with MAX_SUPPLY and MAX_MINT set to any non 0 value, to enable user minting (fair minting)
  • ISSUE TICK with LOCK_MAX_SUPPLY set to 1 to permanently lock MAX_SUPPLY
  • ISSUE TICK with LOCK_MAX_MINT set to 1 to permanently lock MAX_MINT
  • ISSUE TICK with LOCK_MINT set to 1 to permanently prevent use of the MINT command
  • ISSUE TICK with LOCK_SLEEP set to 1 to permanently prevent use of the SLEEP command
  • ISSUE TICK with LOCK_CALLBACK set to 1 to permanently prevent use of the CALLBACK command
  • DESCRIPTION can contain a URL to a an icon to use for this token (48x48 standard size)
  • DESCRIPTION can contain a URL to a JSON file with additional information
  • DESCRIPTION can NOT contain any pipe | or semi-colon ; characters, as these are reserved
  • CALLBACK_BLOCK, CALLBACK_TICK, and CALLBACK_AMOUNT can be edited via ISSUE action if TICK supply is NOT distributed
  • DEPLOY ACTION can be used for backwards-compatability with BRC20/SRC20 DEPLOY
  • By default any ADDRESS can interact with a TICK, use ALLOW_LIST and BLOCK_LIST to change this behavior
  • MINT_ADDRESS_MAX can be used to limit the maximum TICK AMOUNT that a single address can MINT
  • MINT_START_BLOCK and MINT_STOP_BLOCK can be used to determine period(s) when MINT transactions are allowed
  • MIN_TOKEN_SUPPLY value is 0.000000000000000001
  • Use ^ (caret) as prefix when passing TICK_ID for TICK fields (^1234 = TICK_ID 1234)
  • ISSUE with DECIMALS 0 and LOCK_MAX_SUPPLY 1 is the standard non-fungible token (NFT) pattern — uniques, editions, and parent/child collections are defined in the NFT Standard

Copyright © 2025–2026 Dankest, LLC

Based on XChain Platform by Dankest, LLC – https://dankest.llc

Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-or-later) with a commercial license available for proprietary use.

You may use, modify, and distribute this material under the terms of the License. See LICENSE and NOTICE for full terms. See the licensing overview.

Edit this page on GitHub ↗