Creating the token mint

We recommend using a MacOS or Linux when following this guide.

1. Installing Solana Tools


Before starting, you need to follow this guide to install Solana Tools on our system, and this one to install the tooling for SPL tokens specifically. If you need assistance, feel free to reach out to us.

2. Create folder


mkdir new_token
cd new_token

First, in order to serve the off-chain metadata and the token logo image, we need to decide where should these files be hosted.

Metaplex foundation has an excellent guide explaining some of the options for storage providers: https://developers.metaplex.com/storage-providers. The documentation is targeted towards NFT projects but it is still applicable to our situation.

Although not ideal, a popular option is to use Github, it's less robust than Arweave or other decentralized options but more convenient if you're not so comfortable. You can submit a pull request here.

Once you picked a storage provider, we can proceed to upload your token logo image file. For example, here is pwrSOL token logo hosted on Arweave: https://arweave.net/vmJI1aPZNfTTIWH7ZLFxBP1VK7ptapg1hBukoDDNPME

With the URL of your hosted token logo image, we can prepare a json file containing the off-chain metadata and upload it to your storage provider of choice, e.g.:

// pwrSOL's off-chain metadata file hosted at https://2brtlweuaijbz7y4fyizzsqqotfak4tm6y6ct7wp772s4yflcmkq.arweave.net/0GM12JQCEhz_HC4RnMoQdMoFcmz2PCn-z__1LmCrExU
{
    "name": "Power Staked SOL",
    "symbol": "pwrSOL",
    "description": "MEV-Performance Optimized Liquid Staking Derivative from The Lode validator.",
    "image": "https://arweave.net/vmJI1aPZNfTTIWH7ZLFxBP1VK7ptapg1hBukoDDNPME"
}

With the off-chain metadata correctly pointing your token logo image hosted on a storage provider, we can now proceed to the on-chain portion of the setup process.

4. Setting Up Token Mint and On-chain Metadata Accounts


Let's start by preparing a json file containing your token's on-chain metadata. The uri field should be set to the URL obtained from the last step (off-chain metadata), e.g.:

// on-chain metadata: <MY-TOKEN-METADATA>.json
{
    "name": "bonkSOL",
    "symbol": "bonkSOL",
    "uri": "https://arweave.net/Hrt2n848OTwpQoTJM60SPmTADB2DlFWwhJbPdOzx7-w",
    "seller_fee_basis_points": 0,
    "creators": null
}

For creating a token mint account and an on-chain metadata account, we like to use metaboss command line tool: https://metaboss.rs/create.html

Grinding a vanity keypair (optional)


If you wish to use a vanity key for your token mint, please refer to this guide from Solana.

Once you obtain a keypair, run metaboss:

# Create a token mint account and an on-chain metadata account
# using a keypair file for the mint pubkey
metaboss create fungible \
    --decimals 9 \
    --metadata MY_TOKEN_METADATA.json \
    --mint-path MY_VANITY_KEYPAIR.json

If you don't want to grind your own keypair, then simply run:

# Create a token mint account and an on-chain metadata account
metaboss create fungible \
    --decimals 9 \
    --metadata MY_TOKEN_METADATA.json

After a successful run, you should see the signature of the transaction as well as token mint address and on-chain metadata address e.g.:

Signature: 4weLm2Nxq24t4Mx78PYo9FGdrYsuFbVy3MMMMYgU5RzaGp8PwfBm5aKozvpeXoMPhqQb2eXdCRNDdGDdUfrzUteH
Mint: 6DUW9uU9uw69Gj1gF7Je5f2VxFAhodX5WbujeLkCqM4V
Metadata: 3Spyme9RpDxxMzh4oytgSG8qiTM6hX52xHwTnS1Y1ubG

5. Disable the freeze authority and temporarily transfer the mint authority to Sanctum

After your token mint account is setup, the freeze authority of the token should be disabled as follows:

spl-token authorize --disable YOUR_MINT_ADDRESS freeze

And temporarily transfer the mint authority to Sanctum:

spl-token authorize YOUR_MINT_ADDRESS mint GRwm4EXMyVwtftQeTft7DZT3HBRxx439PrKq4oM6BwoZ

GRwm4EXMyVwtftQeTft7DZT3HBRxx439PrKq4oM6BwoZ is the manager key controlled by Sanctum.

To launch your stake pool, you'll need to temporarily transfer the mint authority of your LST to us. Once your stake pool is live, the mint authority will be transferred to your pool, ensuring that only your stake pool can mint new LSTs.

By using an explorer, make sure the following values are correctly set for your token mint account:

  • 9 decimals

  • 0 initial supply

  • no freeze authority

And confirm the on-chain metadata is correctly loading, e.g.:

Last updated

Logo

Copyright © 2024 Sanctum Labs