Deploying a Solana Token from Scratch: A Step-by-Step Guide
As a developer building on the Solana blockchain, you are likely to come across the popularity of Solana-based tokens. One such token is SPL (Solana Plasma), which is used for various applications such as decentralized finance (DeFi) platforms and decentralized governance systems. In this article, we’ll walk through the process of deploying an SPL token from scratch using the Solana SDK.
Prerequisites
Before you begin, make sure you have the following:
- Make sure the Solana CLI is installed on your machine
- A Solana Node running the mainnet testnet (we recommend using the
solana-cli
tool to interact with your node)
- A basic understanding of Solidity and Solana-specific concepts
Step 1: Clone the SPL Token Repository
Create a new repository for your SPL token by cloning the official SPL token repository:
git clone
This will create a new directory structure with the necessary files and folders.
Step 2: Set Up Your Development Environment
Create a new Solana wallet using the solana-keygen
command. This will generate a JSON key pair for your wallet.
solana-keygen --key-size=4096 --out keypair.json wallet
This will create a wallet.json
file containing your private and public keys.
Step 3: Set Up Your Solana Node
Update the Solana node’s configuration to use the solana-cli
tool to interact with your local blockchain. Create a new config.toml
file in the ~/.solana/cli/config.toml
directory:
[cli]
keypair = "path/to/wallet.key"
Replace "path/to/wallet.key"
with the actual path to your wallet JSON file.
Step 4: Initialize and Compile Your Token
Create a new folder for your token and initialize it using the following commands:
mkdir -p tokens/spl-token
cd tokens/spl-token
npm install solanacli --save-dev
npx solana-cli init spl-token
This will create a new spl-token
directory with a basic configuration.
Step 5: Create and Deploy Your Token
Create a new file named spl-token.sol
in the tokens/spl-token
directory. This is the Solidity smart contract for your SPL token.
// tokens/spl-token/spl-token.sol
pragma solidity ^0.8.0;
contract SplToken { {
mapping ( address => uint256 ) public balances ;
function deposit ( address _owner , uint256 amount ) public onlyOwner { ;
balances[_owner] += amount;
} }
function withdraw ( address _owner , uint256 amount ) public onlyOwner { ;
require( balances[_owner] >= amount, "Insufficient balance");
balances [_owner] -= amount;
} }
} }
function onlyOwner() internal view requiresOwnership {) .
require ( msg . sender == address ( _owner ) ) ;
} }
This contract provides basic functionality for depositing and withdrawing SPL tokens.
Step 6: Compile and Deploy Your Token
Compile your spl-token.sol
file using the following command:
solc -- bin spl - token . sol -- allow -- or solana
This will create a new spl-token.json
file containing the compiled contract’s bytecode.
Deploy your token to the Solana mainnet testnet using the following commands:
npx solana-cli deploy --pubkey < YOUR_MAINNET_PUBLIC_KEY > \
--chain-id\
--contract-name spl-token \
--storage-account \
--accounts account1,account2,account3\
--gas 2000000\
--gas-price 10 ether
Replace
with the actual public key of your mainnet wallet.