Issuers
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 comprehensive set of APIs and SDKs 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.
The 1Money Network Operator will use the issue token API to create the token on the issuer's behalf and grant master_authority
to the issuer's specified address.
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
The Authority system follows a hierarchical structure with the master_authority
at the top:

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:
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
list_authorities
5
Blacklist/Whitelist addresses (preventing/allowing them from sending/receiving tokens)
metadata_update_authorities
5
Update token name, URI, and additional metadata
Authority privileges
Minting and Burning
Only the
master_authority
andmint_burn_authorities
can mint tokens.master_authority
: Unlimited mintingmint_burn_authorities
: Minting up to assigned allowance
Both can burn tokens from any account.
Listing(Blacklisting/Whitelisting)
Only
list_authorities
can blacklist/whitelist addresses.Blacklisted addresses cannot send or receive tokens.
Whitelisted addresses can participate in private token operations.
Listing 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
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
list_authorities
Whitelist address
list_authorities
Update metadata
metadata_update_authorities
Granting or revoking authorities
master_authority
can use the grant authority API to grant or revoke authorities to specific addresses:
In "action" - select either
Grant
orRevoke
Select the appropriate "authority_type" :
MasterMintBurn
,MintTokens
,Pause
,Burn
,Blacklist
,Whitelist
,UpdateMetadata
Example:
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.
To unpause a token, the pause_authorities
can use the pause/unpause API:
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.
Use the grant authority API to set the mint_burn_authorities
:
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.
Use the mint API:
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
mint_burn_authorities
can burn tokens through the burn API:
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/Whitelisting an address
We have public/private token. In public token mode, if an address is blacklisted, it will be put into blacklist and cannot send and receive with that address, using whitelist to bring it back thus can send and receive again(but will not put it into whitelist table.). In private token mode, if an address is not blacklisted, it cannot send or receive any token, when we whitelist the address, it can send and receive, we can use the blacklist feature to remove it from the whitelist, thus it cannot send and receive again(but will not put it into blacklist table.).
Only the list_authorities
can blacklist/whitelist addresses. This adds an account to the token's blacklist, preventing it from participating in token operations.
Parameters:
address: Address - The address to blacklist/whitelist
Required Permissions:
The transaction signer must be in the token's
list_authorities
list
Note:
Blacklisted addresses cannot send or receive tokens
Whitelisted addresses can send or receive tokens
Blacklisting is effective immediately
The token account must exist and be associated with the token
Use the mangelist API to whitelist addresses by setting the "action" to "Blacklist" or "Whitelist":
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. Updating token metadata
metadata_update_authorities
can use the update token metadata API:
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
Last updated