Launch a Token
Within this document, we'll explain how to launch a token on Injective.
There are two options for launching a token on Injective: bridging an existing token or creating a new token.
Bridging
The easiest way to launch a token on Injective is by bridging your existing assets from one of the supported networks that Injective is interoperable with. There are guides in the Bridge sections that you can reference to bridge assets from other networks to Injective.
Once the bridging process is completed, a token will be created on Injective, which you can then use to Launch a Market.
Creating a New Token
You can also create a new token on Injective using the TokenFactory
module. There are multiple ways on how to achieve this.
Using Injective Hub
The Injective Hub web app provides you the ability to create and manage tokens seamlessly, creating a market on Injective's native orderbook, etc.
Using TokenStation
The TokenStation web app provides you the ability to create and manage tokens seamlessly, creating a market on Injective's native orderbook, launching an airdrop, and much more.
Using DojoSwap
Similar to above, you can utilize DojoSwap's Market Creation module to create, manage, and list your token, along with several other useful features.
Programmatically
Using TypeScript
You can learn more about Launching a token on the TypeScript Documentation.
Using Injective CLI
You have to have injectived
installed locally before proceeding with this tutorial. You cal learn more about it on the Getting Startedpage in the Nodes section.
Once you have injectived
installed and a key added, you can use the CLI to launch your token:
Create a
TokenFactory
denom
The fee for creating a factory denom is 0.1 INJ
.
Tokens are namespaced by the creator address to be permissionless and avoid name collision. In the example above, the subdenom is ak
but the denom naming will be factory/{creator address}/{subdenom}
.
Submit token metadata
To get your token visible on Injective dApps, you have to submit its metadata.
This command expects the following arguments:
Once you have created your token and submitted the token metadata, it's time to mint your tokens.
This command will mint 1 token, assuming your token has 6 decimals.
Burn tokens
The admin of the token, can also burn the tokens.
Change admin
It's recommended once you have minted the initial supply to change admin to the null
address to make sure that the supply of the token cannot be manipulated. Once again, the admin of the token can mint and burn supply anytime. The NEW_ADDRESS
, as explained above in most of the cases should be set to inj1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqe2hm49
.
The examples above are for testnet. If you want to run them on mainnet, do the following changes:
injective-888
> injective-1
https://sentry.testnet.tm.injective.network:443
> http://sentry.tm.injective.network:443
Using Cosmwasm
To create and manage a bank token programmatically via a smart contract, one can use the following messages found in the injective-cosmwasm
package:
create_new_denom_msg
Purpose: Creates a message to create a new token denomination using the tokenfactory module.
Parameters:
sender
: The address of the account initiating the creation.subdenom
: The sub-denomination identifier for the new token.
Returns: A CosmosMsg
wrapped in an InjectiveMsgWrapper
, ready to be sent to the Injective blockchain.
Example:
create_set_token_metadata_msg
create_set_token_metadata_msg
Purpose: Creates a message to set or update metadata for a token.
Parameters:
denom
: The denomination identifier of the token.name
: The full name of the token.symbol
: The symbol of the token.decimals
: The number of decimal places the token uses.
Returns: A CosmosMsg
wrapped in an InjectiveMsgWrapper
, ready to be sent to the Injective blockchain.
Example:
create_mint_tokens_msg
create_mint_tokens_msg
Purpose: Creates a message to mint new tokens. The token must be a tokenfactory token and the sender must be the token admin.
Parameters:
sender
: The address of the account initiating the mint operation.amount
: The amount of tokens to mint.mint_to
: The recipient address where the newly minted tokens should be sent.
Returns: A CosmosMsg
wrapped in an InjectiveMsgWrapper
, ready to be sent to the Injective blockchain.
Example:
create_burn_tokens_msg
create_burn_tokens_msg
Purpose: Creates a message to burn tokens. The token must be a tokenfactory token and the sender must be the token admin.
Parameters:
sender
: The address of the account initiating the burn operation.amount
: The amount of tokens to burn.
Returns: A CosmosMsg
wrapped in an InjectiveMsgWrapper
, ready to be sent to the Injective blockchain.
Example:
Last updated