Files
explorer-monorepo/docs/TOKEN_DEPLOYMENT_QUICK_START.md

4.6 KiB

Token Deployment Quick Start Guide

Date: 2025-12-24
Purpose: Quick reference for deploying tokens on ChainID 138


🚀 Quick Deployment Commands

1. Deploy USDT Token

cd /home/intlc/projects/smom-dbis-138

# Set environment variables (optional)
export USDT_OWNER=0x4A666F96fC8764181194447A7dFdb7d471b301C8
export USDT_INITIAL_SUPPLY=1000000000000  # 1M USDT (6 decimals)

# Deploy
forge script script/DeployUSDT.s.sol:DeployUSDT \
  --rpc-url http://192.168.11.250:8545 \
  --broadcast \
  --legacy \
  --gas-price 20000000000 \
  -vv

2. Deploy USDC Token

# Set environment variables (optional)
export USDC_OWNER=0x4A666F96fC8764181194447A7dFdb7d471b301C8
export USDC_INITIAL_SUPPLY=1000000000000  # 1M USDC (6 decimals)

# Deploy
forge script script/DeployUSDC.s.sol:DeployUSDC \
  --rpc-url http://192.168.11.250:8545 \
  --broadcast \
  --legacy \
  --gas-price 20000000000 \
  -vv

3. Deploy Governance Token

# Set environment variables (optional)
export GOV_TOKEN_OWNER=0x4A666F96fC8764181194447A7dFdb7d471b301C8
export GOV_TOKEN_NAME="DBIS Token"
export GOV_TOKEN_SYMBOL="DBIS"
export GOV_TOKEN_INITIAL_SUPPLY=400000000000000000000000000  # 400M tokens (40% of max)

# Deploy
forge script script/DeployGovernanceToken.s.sol:DeployGovernanceToken \
  --rpc-url http://192.168.11.250:8545 \
  --broadcast \
  --legacy \
  --gas-price 20000000000 \
  --via-ir \
  -vv

📋 Prerequisites

1. Install OpenZeppelin Contracts

cd /home/intlc/projects/smom-dbis-138

# Initialize git if not already
git init

# Install OpenZeppelin
forge install OpenZeppelin/openzeppelin-contracts

# Verify installation
ls -la lib/openzeppelin-contracts

2. Update foundry.toml

Ensure remappings.txt includes:

@openzeppelin/=lib/openzeppelin-contracts/

3. Set Environment Variables

Add to .env:

# Token Deployment
USDT_OWNER=0x4A666F96fC8764181194447A7dFdb7d471b301C8
USDT_INITIAL_SUPPLY=0  # 0 = no initial supply, mint on-demand

USDC_OWNER=0x4A666F96fC8764181194447A7dFdb7d471b301C8
USDC_INITIAL_SUPPLY=0

GOV_TOKEN_OWNER=0x4A666F96fC8764181194447A7dFdb7d471b301C8
GOV_TOKEN_NAME="DBIS Token"
GOV_TOKEN_SYMBOL="DBIS"
GOV_TOKEN_INITIAL_SUPPLY=0

Post-Deployment Steps

1. Verify Contract on Block Explorer

# Get deployed address from broadcast log
cast code <DEPLOYED_ADDRESS> --rpc-url http://192.168.11.250:8545

# Should return bytecode (not empty)

2. Update Environment Variables

Add to .env:

USDT_ADDRESS=<deployed_address>
USDC_ADDRESS=<deployed_address>
GOV_TOKEN_ADDRESS=<deployed_address>

3. Add to Token Lists

Update token-lists/lists/dbis-138.tokenlist.json:

{
  "chainId": 138,
  "address": "<deployed_address>",
  "name": "Tether USD",
  "symbol": "USDT",
  "decimals": 6,
  "logoURI": "https://..."
}

4. Update Database

Run migration or insert:

INSERT INTO tokens (address, symbol, name, decimals, chain_id)
VALUES (
    '<deployed_address>',
    'USDT',
    'Tether USD',
    6,
    138
);

5. Configure Oracle Price Feeds

# Add USDT/USD price feed to Oracle Aggregator
cast send <ORACLE_AGGREGATOR_ADDRESS> \
  "setAggregator(address,address,uint256)" \
  <USDT_ADDRESS> \
  <PRICE_FEED_ADDRESS> \
  <DEVIATION_THRESHOLD> \
  --rpc-url http://192.168.11.250:8545 \
  --private-key $PRIVATE_KEY

🔒 Security Checklist

  • Multi-signature wallet set up for token ownership
  • Security audit completed (for native stablecoins)
  • Pausable functionality tested
  • Access control verified
  • Initial supply distribution planned
  • Monitoring and alerts configured

📊 Cost Estimates

  • USDT Deployment: ~0.02 ETH
  • USDC Deployment: ~0.02 ETH
  • Governance Token: ~0.02 ETH
  • Total: ~0.06 ETH

🆘 Troubleshooting

OpenZeppelin Not Found

# Install OpenZeppelin
forge install OpenZeppelin/openzeppelin-contracts

# Update remappings
echo "@openzeppelin/=lib/openzeppelin-contracts/" >> remappings.txt

Compilation Errors

# Clean and rebuild
forge clean
forge build --via-ir

Deployment Fails

# Check balance
cast balance <DEPLOYER_ADDRESS> --rpc-url http://192.168.11.250:8545

# Check gas price
cast gas-price --rpc-url http://192.168.11.250:8545

# Increase gas price if needed
forge script ... --gas-price 50000000000

📚 Additional Resources

  • Full Recommendations: docs/STABLECOIN_AND_TOKEN_RECOMMENDATIONS.md
  • Missing Contracts: docs/MISSING_CONTRACTS_COMPREHENSIVE_LIST.md
  • Deployed Contracts: docs/DEPLOYED_CONTRACTS_REVIEW.md

Last Updated: 2025-12-24