Skip to content

Token

View as Markdown

The thru token command provides comprehensive token management functionality, including minting, transfers, account management, and administrative operations.

  • CLI setup with configured keys and RPC endpoint

Create a new mint account on the blockchain and initialize it as a token mint with specified properties.

Terminal window
thru token initialize-mint $creator $ticker $seed [OPTIONS]

creator · string · required

Creator address used for mint account derivation, formatted as a 46-char ta…[address] or 64-char hex key. Effectively, this must be the feepayer.

ticker · string · required

Token symbol, maximum 8 characters (e.g., “USDC”, “ETH”)

seed · string · required

32-byte hex string for deterministic mint address derivation. To convert a readable string into a zero-padded 32-byte seed, run thru program seed-to-hex $seed.

string

Optional mint authority address. If omitted, the creator is used as mint authority.

string

Optional hex-encoded state proof for mint account creation. If not provided, the state proof is automatically generated.

string

Address that can freeze/unfreeze token accounts (optional)

integer

Number of decimal places for token precision (0-18)

string

Account to pay transaction fees

Example:

Terminal window
thru token initialize-mint \
ta...[creator] \
GOLD \
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

Create a new token account on the blockchain that can hold tokens from a specific mint.

Terminal window
thru token initialize-account $mint $owner $seed [OPTIONS]

mint · string · required

The mint address for which to create an account

owner · string · required

Address that will own and control this token account

seed · string · required

32-byte hex string for deterministic account address derivation. This seed is hashed with the owner and mint to create the final token account address.

string

Optional hex-encoded state proof for token account creation. If not provided, the state proof is automatically generated.

string

Account to pay transaction fees

Example:

Terminal window
thru token initialize-account \
ta...[mint] \
ta...[owner] \
fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210

Transfer tokens between two token accounts. Both accounts must be associated with the same mint, and neither account can be frozen. The fee payer must be the owner of the source token account to authorize the transfer.

Terminal window
thru token transfer $from $to $amount [OPTIONS]

from · string · required

Source token account address

to · string · required

Destination token account address

amount · integer · required

Amount to transfer (in smallest token units)

string

Account to pay transaction fees (must be the owner of the source token account)

Example:

Terminal window
thru token transfer \
ta...[from_token_account] \
ta...[to_token_account] \
1000000

Mint new tokens directly to a token account. The destination account must be associated with the specified mint and cannot be frozen. Only the designated mint authority can perform this operation.

Terminal window
thru token mint-to $mint $to $authority $amount [OPTIONS]

mint · string · required

The mint address from which to create new tokens

to · string · required

Destination token account to receive the minted tokens

authority · string · required

Mint authority address (must match the mint’s authority)

amount · integer · required

Amount to mint (in smallest token units)

string

Account to pay transaction fees

Example:

Terminal window
thru token mint-to \
ta...[mint] \
ta...[destination_token_account] \
alice \
5000000000

Permanently destroy tokens from an account. The account must be associated with the specified mint and cannot be frozen. Only the account owner can perform this operation.

Terminal window
thru token burn $account $mint $authority $amount [OPTIONS]

account · string · required

Token account containing tokens to burn

mint · string · required

The mint address of the tokens being burned

authority · string · required

Account owner address (must be the owner of the token account being burned)

amount · integer · required

Amount to burn (in smallest token units)

string

Account to pay transaction fees

Example:

Terminal window
thru token burn \
ta...[token_account] \
ta...[mint] \
alice \
1000000

Close a token account and transfer any remaining balance. The account must have a zero balance before closing. Only the account owner can perform this operation.

Terminal window
thru token close-account $account $destination $authority [OPTIONS]

account · string · required

Token account to close

destination · string · required

Account to receive any remaining token balance

authority · string · required

Account owner address (must be the owner of the token account being closed)

string

Account to pay transaction fees

Example:

Terminal window
thru token close-account \
ta...[token_account] \
ta...[destination_account] \
alice

Freeze a token account to prevent transfers. The account must be associated with the specified mint. Only the mint’s freeze authority can perform this operation, and the mint must have freeze authority enabled.

Terminal window
thru token freeze-account $account $mint $authority [OPTIONS]

account · string · required

Token account to freeze

mint · string · required

The mint address associated with the account

authority · string · required

Freeze authority address (must match the mint’s freeze authority)

string

Account to pay transaction fees

Example:

Terminal window
thru token freeze-account \
ta...[token_account] \
ta...[mint] \
freeze_authority

Unfreeze a previously frozen token account. The account must be associated with the specified mint. Only the mint’s freeze authority can perform this operation, and the mint must have freeze authority enabled.

Terminal window
thru token thaw-account $account $mint $authority [OPTIONS]

account · string · required

Token account to unfreeze

mint · string · required

The mint address associated with the account

authority · string · required

Freeze authority address (must match the mint’s freeze authority)

string

Account to pay transaction fees

Example:

Terminal window
thru token thaw-account \
ta...[token_account] \
ta...[mint] \
freeze_authority

Calculate the deterministic mint account address that would be created for a given creator and seed combination. Use this to predict the mint address before calling initialize-mint.

Terminal window
thru token derive-mint-account $creator $seed

creator · string · required

Creator address

seed · string · required

Seed for derivation (32 bytes hex, 64 hex characters)

Example:

Terminal window
thru token derive-mint-account \
ta...[creator] \
0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

Calculate the deterministic token account address that would be created for a given mint, owner, and seed combination. Use this to predict token account addresses before calling initialize-account.

Terminal window
thru token derive-token-account $mint $owner [OPTIONS]

mint · string · required

Mint account address

owner · string · required

Account owner address

string

Seed for derivation (32 bytes hex, optional - defaults to all zeros)

Example:

Terminal window
thru token derive-token-account \
ta...[mint] \
ta...[owner]
  1. (Optional) Verify the mint address

    You can optionally verify the mint account address that will be created:

    Terminal window
    thru token derive-mint-account \
    ta...[creator] \
    0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

    Where:

    • First argument: creator address
    • Second argument: seed for mint derivation (save this securely!)
  2. Initialize the mint

    Create the mint account - the address and state proof are automatically derived:

    Terminal window
    thru token initialize-mint \
    ta...[creator] \
    MYTOKEN \
    0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \
    --freeze-authority ta...[freeze_authority] \
    --decimals 6

    Where:

    • First argument: creator address
    • Second argument: token symbol/ticker
    • Third argument: seed for deterministic address derivation

Creating a token account is now simplified with automatic address and state proof derivation:

  1. (Optional) Verify the token account address

    You can optionally verify the token account address that will be created:

    Terminal window
    thru token derive-token-account \
    ta...[mint] \
    ta...[owner] \
    --seed fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210

    Where:

    • First argument: mint address (from the mint initialization)
    • Second argument: account owner address
    • --seed: unique seed for this token account (save this!)
  2. Initialize the token account

    Create the token account - the address and state proof are automatically derived:

    Terminal window
    thru token initialize-account \
    ta...[mint] \
    ta...[owner] \
    fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210

    Where:

    • First argument: mint address
    • Second argument: account owner address
    • Third argument: seed for deterministic address derivation