1Money Network
  • Getting Started
  • Overview
  • Developer Guide
  • Quick Start
  • User Guides
    • Custodians & Centralized Exchanges (CEXs)
    • Issuers
  • Validators
  • Integrations
    • Overview
    • Network Access
    • SDKs
      • Typescript
        • Get Started
        • API Methods
      • Golang
        • Get Started
        • API methods
      • Rust
    • REST APIs
      • Chains
        • Get Chain Id
      • Accounts
        • Get account by token
        • Get account nonce
      • Tokens
        • Issue token
        • Get token metadata
        • Update token metadata
        • Grant authority
        • Mint
        • Burn
        • Managelist
        • Pause/Unpause
      • Checkpoints
        • Get the latest Checkpoint number
        • Get checkpoint by number
        • Get checkpoint by hash
      • Transactions
        • Get transaction by hash
        • Get transaction receipt by hash
        • Submit payment
        • Submit cancellation
        • Estimate fee
    • Websocket
      • Subscribing & Unsubscribing
      • Retrieving Transaction Details
      • Keeping the connection alive
      • Stream | Checkpoints
    • Data Dictionary
      • Transaction Types
        • TokenCreate
        • TokenTransfer
        • TokenGrantAuthority
        • TokenRevokeAuthority
        • TokenBlacklistAccount
        • TokenWhitelistAccount
        • TokenMint
        • TokenBurn
        • TokenCloseAccount
        • TokenPause
        • TokenUnpause
        • TokenUpdateMetadata
          • TokenMetadata Structure
            • MetaDataKeyValuePair
        • Other Transaction Types (WiP)
  • Core Concepts
    • The 1Money Protocol
    • System Components
    • Account Model
    • Token Authority
    • Transactions and Instructions
    • Implementation and usability considerations
    • Security
Powered by GitBook
On this page
  • Introduction
  • Issuance Functions
  • 1. Issuing a token
  • 2. The authority system
  • Master authority
  • Authority privileges
  • Summary Table: Authority Actions
  • Granting or revoking authorities
  • 3. Pausing and unpausing the token
  • 4. Granting mint and burn authorities
  • 5. Minting tokens
  • 6. Burning tokens
  • 7. Blacklisting an address
  • 8. Whitelisting an address
  • 9. Updating token metadata
  1. User Guides

Issuers

PreviousCustodians & Centralized Exchanges (CEXs)NextValidators

Last updated 11 days ago

Introduction


Robust, role-based issuance and compliance features are offered on the 1Money Network.

This guide covers:

  • Token access types (public vs. private)

  • Authority hierarchy and permissions (to assign and revoke priviledges)

  • Token operations (mint, burn, pause, blacklist, whitelist, metadata updates)

  • Using the API for authority management

A are provided to manage and automate Issuance.

Issuance Functions


1. Issuing a token


When creating a Token, Issuers must choose between:

  • Public Token: Accessible to all network participants, except those blacklisted by the issuer.

  • Private Token: Restricted to whitelisted addresses only.

2. The authority system


The master_authority is the root of the permission hierarchy and has complete control over the token capabilities for the token. It can:

  • Grant and revoke all other authority types

  • Mint tokens without allowance restrictions

Note: The master_authority cannot be reassigned after token creation

The Authority system follows a hierarchical structure with the master_authority at the top:

                                 ┌─────────────────────┐
                                 │  master_authority   │
                                 └──────────┬──────────┘
                                            │
                                            ▼
          ┌─────────────────────────┬───────┴───────┬───────────────────────┬─────────────────────────┐
          │                         │               │                       │                         │
          ▼                         ▼               ▼                       ▼                         ▼
┌──────────────────────────┐ ┌─────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐ ┌───────────────────────────┐ 
│master_mint_burn_authority│ │pause_authorities│ │black_list_authorities│ │white_list_authorities│ │metadata_update_authorities│  
└─────────┬────────────────┘ └─────────────────┘ └──────────────────────┘ └──────────────────────┘ └───────────────────────────┘ 
          │ 
          ▼ 
 ┌─────────────────────┐ 
 │mint_burn_authorities│ 
 └─────────────────────┘

The Master Authority wallet can be secured using MPC solutions for multi party signing workflows available on most Custodian platforms.

Master authority

The Master Authority serves as the "super admin" for managing rights to other sub-authorities for a given Token.

The master_authority can assign or revoke the following roles:

The Master Authority can perform all the functions of all other authority types.

As such you can simplify your workflows by designating only the Master Authority.

Alternatively, you can choose to split these functions across other roles, you can assign different addresses for a more advanced management model.

Authority Type
Max Addresses
Capabilities

master_mint_burn_authority

1

Grant/revoke minting/burning privileges, set mint limits (cannot mint directly)

mint_burn_authorities

20

Mint tokens (up to allowance), burn tokens from any account (cannot grant privileges)

pause_authorities

5

Pause/unpause all token operations

black_list_authorities

5

Blacklist addresses (preventing them from sending/receiving tokens)

white_list_authorities

5

Whitelist addresses (allowing them to send/receive private tokens)

metadata_update_authorities

5

Update token name, URI, and additional metadata

Authority privileges

Minting and Burning

  • Only the master_authority and mint_burn_authorities can mint tokens.

    • master_authority: Unlimited minting

    • mint_burn_authorities: Minting up to assigned allowance

  • Both can burn tokens from any account.

Blacklisting

  • Only black_list_authorities can blacklist addresses.

  • Blacklisted addresses cannot send or receive tokens.

  • Blacklisting is immediate

Whitelisting

  • Only white_list_authorities can whitelist addresses.

  • Whitelisted addresses can participate in private token operations.

  • Whitelisting is immediate

Pausing and Unpausing

  • Only pause_authorities can pause or unpause tokens.

  • Paused State: All transfers, mints, and burns are disabled. Useful for emergencies or maintenance.

  • Unpaused State: All token operations resume.

  • The master_authority retains the ability to manage authorities even when paused.

Metadata Updates

  • Only metadata_update_authorities can update token metadata.

  • Changes are effective immediately.

  • The token URI can point to a JSON file with additional information.

  • Additional metadata supports arbitrary key-value pairs.

Summary Table: Authority Actions

Action
Authority Required

Grant/revoke roles

master_authority

Mint tokens

master_authority, mint_burn_authorities

Burn tokens

master_authority, mint_burn_authorities

Pause/unpause

pause_authorities

Blacklist address

black_list_authorities

Whitelist address

white_list_authorities

Update metadata

metadata_update_authorities

Granting or revoking authorities

  • In "action" - select either Grant or Revoke

  • Select the appropriate "authority_type" : MasterMintBurn, MintTokens, Pause, Burn, Blacklist, Whitelist , UpdateMetadata

Example:

cURL
curl -L \
  --request POST \
  --url 'https://api.testnet.1money.network/v1/tokens/grant_authority' \
  --header 'Content-Type: application/json' \
  --data '{
    "action": "Grant",
    "authority_address": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC742Ab",
    "authority_type": "MasterMintBurn",
    "chain_id": 1212101,
    "nonce": 0,
    "token": "0x6ADE9688A44D058fF181Ed64ddFAFbBE5CC742Ac",
    "value": "1500000000",
    "signature": {
      "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
      "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
      "v": "1"
    }
  }'

3. Pausing and unpausing the token


When the 1Money Network Operator creates a token for an issuer, the token will be paused by default.

When a token is paused:

  • No transfers, mints, or burns can occur

  • Pausing is effective immediately

This is useful for emergency situations or scheduled maintenance

The master_authority can still grant and revoke all authority types while their token is paused.

The pause_authorities must unpause the token before it can be transferred, minted or burned.

When a token is unpaused:

  • Transfers, mints, or burns can occur

  • Unpausing is effective immediately

  • All token operations resume normal functionality

The transaction signer must be the token's pause_authorities to pause or unpause a token.

cURL
curl -L \
  --request POST \
  --url 'https://api.testnet.1money.network/v1/tokens/pause' \
  --header 'Content-Type: application/json' \
  --data '{
    "action": "Unpause",
    "chain_id": 1212101,
    "nonce": 0,
    "token": "0x6ADE9688A44D058fF181Ed64ddFAFbBE5CC742Ac",
    "signature": {
      "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
      "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
      "v": "1"
    }
  }'

Similarly, to pause the token again, pause can be passed through the action parameter.

4. Granting mint and burn authorities


The master_mint_burn_authority has the power to grant mint_burn_authorities to specific addresses of their choosing.

mint_burn_authorities have minting privileges and can create new tokens up to their allowance limit but cannot grant minting privileges to others. They can also burn tokens from any account.

cURL
curl -L \
  --request POST \
  --url 'https://api.testnet.1money.network/v1/tokens/grant_authority' \
  --header 'Content-Type: application/json' \
  --data '{
    "action": "Grant",
    "authority_address": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC742Ab",
    "authority_type": "MintTokens",
    "chain_id": 1212101,
    "nonce": 0,
    "token": "0x6ADE9688A44D058fF181Ed64ddFAFbBE5CC742Ac",
    "value": "0",
    "signature": {
      "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
      "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
      "v": "1"
    }
  }'

5. Minting tokens


Only the master_authority and mint_burn_authorities can mint tokens.

master_authority can mint tokens without allowance restrictions, while the mint_burn_authorities can mint new tokens up to their allowance.

cURL
curl -L \
  --request POST \
  --url 'https://api.testnet.1money.network/v1/tokens/mint' \
  --header 'Content-Type: application/json' \
  --data '{
    "chain_id": 1212101,
    "nonce": 0,
    "recipient": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC742Ab",
    "token": "0x6ADE9688A44D058fF181Ed64ddFAFbBE5CC742Ac",
    "value": "1500000000",
    "signature": {
      "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
      "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
      "v": "1"
    }
  }'

6. Burning tokens


cURL
curl -L \
  --request POST \
  --url 'https://api.testnet.1money.network/v1/tokens/burn' \
  --header 'Content-Type: application/json' \
  --data '{
    "chain_id": 1212101,
    "nonce": 0,
    "recipient": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC742Ab",
    "token": "0x6ADE9688A44D058fF181Ed64ddFAFbBE5CC742Ac",
    "value": "1500000000",
    "signature": {
      "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
      "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
      "v": "1"
    }
  }'

7. Blacklisting an address


Only the black_list_authorities can blacklist addresses. This adds an account to the token's blacklist, preventing it from participating in token operations.

Parameters:

  • address: Address - The address to blacklist

Required Permissions:

  • The transaction signer must be in the token's black_list_authorities list

Note:

  • Blacklisted addresses cannot send or receive tokens

  • Blacklisting is effective immediately

  • The token account must exist and be associated with the token

cURL
curl -L \
  --request POST \
  --url 'https://api.testnet.1money.network/v1/tokens/blacklist' \
  --header 'Content-Type: application/json' \
  --data '{
    "action": "Blacklist",
    "address": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC742Ab",
    "chain_id": 1212101,
    "nonce": 0,
    "token": "0x6ADE9688A44D058fF181Ed64ddFAFbBE5CC742Ac",
    "signature": {
      "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
      "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
      "v": "1"
    }
  }'

8. Whitelisting an address


Only the white_list_authorities can whitelist addresses. This allows an address to participate in token operations.

Parameters:

  • address: Address - The address to whitelist

Required Permissions:

  • The transaction signer must be in the token's white_list_authorities list

Note:

  • Whitelisting is effective immediately

  • The token account must exist and be associated with the token

cURL
curl -L \
  --request POST \
  --url 'https://api.testnet.1money.network/v1/tokens/blacklist' \
  --header 'Content-Type: application/json' \
  --data '{
    "action": "Whitelist",
    "address": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC742Ab",
    "chain_id": 1212101,
    "nonce": 0,
    "token": "0x6ADE9688A44D058fF181Ed64ddFAFbBE5CC742Ac",
    "signature": {
      "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
      "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
      "v": "1"
    }
  }'

9. Updating token metadata


cURL
curl -L \
  --request POST \
  --url 'https://api.testnet.1money.network/v1/tokens/update_metadata' \
  --header 'Content-Type: application/json' \
  --data '{
    "additional_metadata": "[{\"key1\":\"v1\",\"key2\":\"v2\"}]",
    "chain_id": 1212101,
    "name": "TEST Stablecoin",
    "is_private": true,
    "nonce": 0,
    "token": "0x6ADE9688A44D058fF181Ed64ddFAFbBE5CC742Ac",
    "uri": "https://test.com",
    "signature": {
      "r": "72956732934625920503481762689501378577921804342307439094906376029324416116949",
      "s": "29902520081700531224291681396692026253288382272435451874524203378285409371412",
      "v": "1"
    }
  }'

This updates the token's metadata.

Note:

  • Metadata updates are effective immediately

  • The URI can point to a JSON file with additional information

  • Additional metadata can store arbitrary key-value pairs

The 1Money Network Operator will use the API to create the token on the issuer's behalf and grant master_authority to the issuer's specified address.

master_authority can use the API to grant or revoke authorities to specific addresses:

To unpause a token, the pause_authorities can use the API:

Use the API to set the mint_burn_authorities :

Use the API:

mint_burn_authorities can burn tokens through the API:

Use the API to blacklist addresses:

Use the API to whitelist addresses by setting the "action" to "Whitelist":

metadata_update_authorities can use the API:

comprehensive set of APIs and SDKs
Issuing a token
Token authority system
Granting and revoking authority
Pausing and unpausing the token
Minting tokens
Burning tokens
Blacklisting addresses
Whitelisting addresses
Updating token metadata
issue token
grant authority
pause/unpause
grant authority
mint
burn
blacklist/whitelist
blacklist/whitelist
update token metadata