Skip to main content

Create Token

Overview

The Create Token page provides a comprehensive multi-step wizard that guides users through the creation of custom fungible tokens on the Klever blockchain. The process includes token configuration, optional initial minting, and the ability to create a liquidity pool immediately after token creation.

Creation Wizard Flow

The token creation process consists of 5 steps with smooth animations between each stage:

Step 1: Token Configuration Form

Page Title: "Create Token" Description: "Fill in the details to create your custom token"

Required Fields

Token Name

  • Description: Full name of the token
  • Maximum Length: 32 characters
  • Validation: No special characters allowed
  • Example: "My Custom Token"

Token Symbol

  • Description: Ticker symbol for the token
  • Maximum Length: 5 characters
  • Validation: No special characters allowed
  • Example: "MCT"

Decimals

  • Description: Number of decimal places for token precision
  • Range: 0-8
  • Validation: Must be an integer
  • Example: 6 (allows for 0.000001 token units)
  • Note: Higher decimals provide more granular token divisions

Max Supply

  • Description: Maximum total supply that can ever be minted
  • Validation: Must be greater than 0
  • Format: Numeric input with token precision
  • Example: 1,000,000
  • Note: This limit is permanent and cannot be changed after creation

Form Actions

  • Create Token Button: Proceeds to next step after validation
  • Real-time Validation: Immediate feedback on input errors
  • Back Navigation: Return to previous page

Token Form

Step 2: Initial Minting (Optional)

Title: "Mint Initial Supply" Description: "Mint tokens immediately after creation or skip this step to mint later"

Fields

Recipient Address

  • Description: Address that will receive the minted tokens
  • Features:
    • Auto-fill with connected wallet address button
    • Clipboard paste support
    • Address format validation
  • Validation: Must be a valid blockchain address

Amount to Mint

  • Description: Quantity of tokens to mint initially
  • Features:
    • "Mint All Tokens" button to automatically fill max supply
    • Cannot exceed max supply defined in Step 1
  • Validation: Must be greater than 0 and ≤ max supply

Action Options

  • Mint and Continue: Proceed with initial minting
  • Skip This Step: Create token without initial minting
  • Back: Return to token configuration

Important Note: If you skip minting, you'll need to use the Token Manager to mint tokens later.

Initial Mint

Step 3: Processing

Title: "Processing Transaction" Description: "Your transaction is being processed on the blockchain"

Features

  • Real-time Transaction Monitoring: Live status updates
  • Progress Indicator: Visual feedback of transaction progress
  • Transaction Hash: Displayed when available
  • Status Messages: Step-by-step transaction status
  • Error Handling: Clear error messages if transaction fails

Transaction States

  1. Pending: Transaction submitted to blockchain
  2. Processing: Transaction being confirmed
  3. Success: Transaction completed successfully
  4. Failed: Transaction failed (with error details)

Step 4: Success

Title: "Token Created Successfully!" Description: Confirmation message with token details

Displayed Information

  • Token Name and Symbol: Confirmation of created token
  • Transaction Hash: Link to view on blockchain explorer
  • Max Supply: Configured maximum supply
  • Minted Amount: Amount minted in initial step (if applicable)

Next Steps

If Initial Minting Was Performed:

  • Option 1: Create Liquidity Pool
    • Button: "Create Liquidity Pool"
    • Action: Proceeds to LP creation wizard
  • Option 2: Go to Token Manager
    • Button: "Manage Token"
    • Action: Navigate to Token Manager dashboard

If No Initial Minting:

  • Only Option: Go to Token Manager
    • Button: "Go to Token Manager"
    • Action: Navigate to Token Manager to mint tokens
    • Warning Message: "You need to mint tokens before creating a liquidity pool"

Success Screen

Step 5: Preparing Liquidity Pool (Optional)

Title: "Preparing Liquidity Pool" Description: "Preparing to create your liquidity pool..."

Features

  • Automatic Redirect: Redirects to LP creation after 8 seconds
  • Progress Animation: Visual countdown indicator
  • Skip Option: Manual button to skip wait and proceed immediately

Note: This step only appears if the user chose to create a liquidity pool from the success screen.

Validation Rules

Token Name

  • ✅ Maximum 32 characters
  • ✅ No special characters
  • ✅ Cannot be empty
  • ❌ Cannot contain emojis

Token Symbol

  • ✅ Maximum 5 characters
  • ✅ No special characters
  • ✅ Cannot be empty
  • ❌ Cannot contain spaces

Decimals

  • ✅ Must be an integer
  • ✅ Range: 0-8
  • ❌ Cannot be negative
  • ❌ Cannot be decimal

Max Supply

  • ✅ Must be greater than 0
  • ✅ Numeric only
  • ❌ Cannot be negative
  • ❌ Cannot be zero

Mint Address

  • ✅ Must match blockchain address format
  • ✅ Cannot be empty if minting
  • ✅ Must start with proper prefix (e.g., "klv1")

Mint Amount

  • ✅ Must be greater than 0
  • ✅ Cannot exceed max supply
  • ✅ Must respect token decimals

User Interactions

1. Creating a Token Without Initial Minting

  1. Click "Create Token" from Token Manager or navigation
  2. Fill in token details (name, symbol, decimals, max supply)
  3. Click "Create Token"
  4. Click "Skip This Step" on minting screen
  5. Wait for transaction processing
  6. Click "Go to Token Manager" on success screen
  7. Use Token Manager to mint tokens when needed

2. Creating a Token With Initial Minting

  1. Click "Create Token" from Token Manager or navigation
  2. Fill in token details (name, symbol, decimals, max supply)
  3. Click "Create Token"
  4. On minting screen:
    • Click auto-fill button for your address
    • Enter amount or click "Mint All Tokens"
  5. Click "Mint and Continue"
  6. Wait for transaction processing
  7. On success screen, choose next action

3. Creating a Token and Liquidity Pool

  1. Follow steps 1-7 from "Creating a Token With Initial Minting"
  2. On success screen, click "Create Liquidity Pool"
  3. Wait for LP preparation (or click skip)
  4. Complete liquidity pool creation wizard

Technical Implementation Notes

Smart Contract Integration

Token creation is handled through: /src/services/smart-functions/token-manager.js

Function: createTokenTransaction({ name, symbol, decimals, maxSupply, tokenKind })

Parameters:

  • name: String (max 32 chars)
  • symbol: String (max 5 chars)
  • decimals: Integer (0-8)
  • maxSupply: Number (formatted with token precision)
  • tokenKind: Type of token (fungible)

Minting Integration

Function: mintTransaction(amount, tokenSCAddress) or mintWithAddressTransaction(amount, toAddress, tokenSCAddress)

Transaction Flow

  1. Step 1 - Form Submission:

    • Client-side validation
    • Token parameters prepared
    • Navigation to Step 2
  2. Step 2 - Minting Setup:

    • Optional minting configuration
    • Address and amount validation
    • Transaction submission or skip
  3. Step 3 - Processing:

    • Transaction sent to blockchain
    • Real-time monitoring via monitorTransaction()
    • Hash retrieval and display
  4. Step 4 - Success Handling:

    • Transaction confirmation
    • Next step options presented
    • Token data stored
  5. Step 5 - LP Preparation (Optional):

    • 8-second countdown
    • Automatic redirect to LP creation
    • Token data passed to LP wizard

State Management

  • Multi-step Form State: Maintains data across wizard steps
  • Transaction Tracking: Monitors blockchain transaction status
  • Conditional Navigation: Dynamic next steps based on user choices
  • Error Recovery: Ability to retry on transaction failure

User Experience Features

  • Auto-fill Options: Quick-fill buttons for common values
  • Clipboard Integration: Paste functionality for addresses
  • Real-time Validation: Immediate feedback on input errors
  • Smooth Animations: Framer Motion transitions between steps
  • Progress Indication: Clear visual feedback at each stage
  • Multi-language Support: i18next integration

Security Considerations

  • Input Sanitization: Prevention of special characters in critical fields
  • Max Supply Limits: Validation to prevent unrealistic values
  • Address Validation: Ensures valid blockchain addresses
  • Transaction Verification: Hash verification for all operations
  • No Private Key Handling: All signing done through wallet extension

Special Features

Mint All Tokens Button

  • Automatically fills the amount field with max supply value
  • Ensures all tokens are minted in initial step
  • Formats number according to token decimals

Auto-fill Address Button

  • One-click fill with connected wallet address
  • Eliminates manual address entry errors
  • Clear visual indicator when filled

Smart Warnings

  • Alert when trying to create LP without minting
  • Warning about irreversible max supply
  • Notice about decimal precision impact

Responsive Design

  • Mobile-optimized wizard interface
  • Touch-friendly form controls
  • Adaptive button layouts

Common Use Cases

1. Project Token Creation

  • Create token for new project/DAO
  • Mint initial supply to project wallet
  • Create liquidity pool for trading

2. Reward Token

  • Create token with specific decimals
  • Skip initial minting
  • Distribute tokens gradually via Token Manager

3. Testing Token

  • Create token with small max supply
  • Mint all tokens immediately
  • Test without creating LP

Current Limitations

  • Only fungible tokens supported
  • Max supply cannot be changed after creation
  • Maximum 8 decimal places
  • Name limited to 32 characters
  • Symbol limited to 5 characters
  • No support for token metadata (images, descriptions)