ERC20 Token Creator API

Programmatically create, deploy, and manage ERC20 tokens across Ethereum, Optimism, and Base networks. Build powerful blockchain applications with our RESTful API.

API Overview

The ERC20 Token Creator API provides a comprehensive suite of endpoints for programmatic token creation and management. Built on RESTful principles, our API enables developers to integrate blockchain token deployment directly into their applications, platforms, or services.

Fast & Reliable

Average response time under 200ms. 99.9% uptime SLA with automatic failover and redundancy across multiple regions.

Secure by Design

Enterprise-grade security with API key authentication, request signing, IP whitelisting, and encrypted data transmission.

Multi-Chain Support

Deploy tokens on Ethereum mainnet, Optimism, and Base networks with a single unified API interface.

Base URL

https://api.erc20tokencreator.net/v1

All API requests must be made over HTTPS. Requests made over plain HTTP will be rejected.

Authentication

The API uses API key authentication. Include your API key in the request header for all API calls. You can obtain your API key by contacting api@erc20tokencreator.net.

Authentication Header
Authorization: Bearer YOUR_API_KEY
Example Request with Authentication
curl -X POST https://api.erc20tokencreator.net/v1/tokens \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Token",
    "symbol": "MTK",
    "totalSupply": "1000000",
    "network": "ethereum"
  }'

API Endpoints

Create Token
POST/tokens

Deploy a new ERC20 token to the specified blockchain network.

Request Body Parameters

namerequired

Type: string
Description: The full name of the token (e.g., "My Awesome Token")

symbolrequired

Type: string
Description: Token ticker symbol, 3-5 characters (e.g., "MAT")

totalSupplyrequired

Type: string
Description: Total token supply (e.g., "1000000")

decimalsoptional

Type: number
Default: 18
Description: Number of decimal places (0-18)

networkrequired

Type: string
Options: "ethereum" | "optimism" | "base"
Description: Target blockchain network for deployment

tokenTyperequired

Type: string
Options: "standard" | "community" | "defi" | "enterprise" | "gaming" | "premium"
Description: Token template type with specific features

walletAddressrequired

Type: string
Description: Ethereum address to receive the tokens (must be valid EVM address)

metadataoptional

Type: object
Description: Additional token metadata (description, website, social links)

Example Request

{
  "name": "My Awesome Token",
  "symbol": "MAT",
  "totalSupply": "1000000",
  "decimals": 18,
  "network": "ethereum",
  "tokenType": "defi",
  "walletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "metadata": {
    "description": "A revolutionary DeFi token",
    "website": "https://mytoken.com",
    "twitter": "https://twitter.com/mytoken"
  }
}

Success Response (201 Created)

{
  "success": true,
  "data": {
    "tokenId": "tok_1a2b3c4d5e6f",
    "contractAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "transactionHash": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
    "network": "ethereum",
    "name": "My Awesome Token",
    "symbol": "MAT",
    "totalSupply": "1000000",
    "decimals": 18,
    "deployedAt": "2025-01-15T10:30:00Z",
    "explorerUrl": "https://etherscan.io/address/0x1234567890abcdef1234567890abcdef12345678"
  }
}
Get Token Details
GET/tokens/:tokenId

Retrieve detailed information about a specific token.

Path Parameters

tokenId

The unique identifier of the token returned during creation

Success Response (200 OK)

{
  "success": true,
  "data": {
    "tokenId": "tok_1a2b3c4d5e6f",
    "contractAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "network": "ethereum",
    "name": "My Awesome Token",
    "symbol": "MAT",
    "totalSupply": "1000000",
    "decimals": 18,
    "tokenType": "defi",
    "status": "deployed",
    "deployedAt": "2025-01-15T10:30:00Z",
    "holders": 42,
    "transactions": 156
  }
}
List Tokens
GET/tokens

Retrieve a paginated list of all tokens created with your API key.

Query Parameters

page

Type: number | Default: 1 | Page number for pagination

limit

Type: number | Default: 20 | Max: 100 | Items per page

network

Type: string | Optional: Filter by network (ethereum, optimism, base)

Success Response (200 OK)

{
  "success": true,
  "data": {
    "tokens": [
      {
        "tokenId": "tok_1a2b3c4d5e6f",
        "name": "My Awesome Token",
        "symbol": "MAT",
        "network": "ethereum",
        "deployedAt": "2025-01-15T10:30:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 42,
      "pages": 3
    }
  }
}
Get Network Status
GET/networks/status

Check the current status and gas prices of supported networks.

Success Response (200 OK)

{
  "success": true,
  "data": {
    "networks": [
      {
        "name": "ethereum",
        "status": "operational",
        "gasPrice": {
          "slow": "25",
          "standard": "30",
          "fast": "35",
          "unit": "gwei"
        },
        "blockNumber": 18500000
      },
      {
        "name": "optimism",
        "status": "operational",
        "gasPrice": {
          "slow": "0.001",
          "standard": "0.002",
          "fast": "0.003",
          "unit": "gwei"
        },
        "blockNumber": 112000000
      },
      {
        "name": "base",
        "status": "operational",
        "gasPrice": {
          "slow": "0.001",
          "standard": "0.002",
          "fast": "0.003",
          "unit": "gwei"
        },
        "blockNumber": 8500000
      }
    ]
  }
}

Code Examples

Here are practical examples of using the API in different programming languages.

JavaScript / Node.js
const axios = require('axios');

const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://api.erc20tokencreator.net/v1';

async function createToken() {
  try {
    const response = await axios.post(
      `${BASE_URL}/tokens`,
      {
        name: 'My Token',
        symbol: 'MTK',
        totalSupply: '1000000',
        decimals: 18,
        network: 'ethereum',
        tokenType: 'standard',
        walletAddress: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
        metadata: {
          description: 'My awesome token',
          website: 'https://mytoken.com'
        }
      },
      {
        headers: {
          'Authorization': `Bearer ${API_KEY}`,
          'Content-Type': 'application/json'
        }
      }
    );

    console.log('Token created:', response.data);
    return response.data;
  } catch (error) {
    console.error('Error creating token:', error.response?.data || error.message);
    throw error;
  }
}

createToken();
Python
import requests
import json

API_KEY = 'your_api_key_here'
BASE_URL = 'https://api.erc20tokencreator.net/v1'

def create_token():
    headers = {
        'Authorization': f'Bearer {API_KEY}',
        'Content-Type': 'application/json'
    }
    
    payload = {
        'name': 'My Token',
        'symbol': 'MTK',
        'totalSupply': '1000000',
        'decimals': 18,
        'network': 'ethereum',
        'tokenType': 'standard',
        'walletAddress': '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
        'metadata': {
            'description': 'My awesome token',
            'website': 'https://mytoken.com'
        }
    }
    
    try:
        response = requests.post(
            f'{BASE_URL}/tokens',
            headers=headers,
            json=payload
        )
        response.raise_for_status()
        
        print('Token created:', json.dumps(response.json(), indent=2))
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f'Error creating token: {e}')
        raise

if __name__ == '__main__':
    create_token()
PHP
<?php

$apiKey = 'your_api_key_here';
$baseUrl = 'https://api.erc20tokencreator.net/v1';

function createToken($apiKey, $baseUrl) {
    $data = [
        'name' => 'My Token',
        'symbol' => 'MTK',
        'totalSupply' => '1000000',
        'decimals' => 18,
        'network' => 'ethereum',
        'tokenType' => 'standard',
        'walletAddress' => '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
        'metadata' => [
            'description' => 'My awesome token',
            'website' => 'https://mytoken.com'
        ]
    ];

    $ch = curl_init($baseUrl . '/tokens');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json'
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode === 201) {
        echo "Token created: " . $response . "\n";
        return json_decode($response, true);
    } else {
        echo "Error creating token: " . $response . "\n";
        return null;
    }
}

createToken($apiKey, $baseUrl);

?>

Error Handling

The API uses standard HTTP status codes to indicate success or failure. All error responses include a JSON body with details about the error.

Error Response Format
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMETER",
    "message": "The 'symbol' parameter must be 3-5 characters",
    "field": "symbol",
    "timestamp": "2025-01-15T10:30:00Z"
  }
}
HTTP Status Codes
200

OK

Request succeeded

201

Created

Resource created successfully

400

Bad Request

Invalid request parameters or malformed JSON

401

Unauthorized

Invalid or missing API key

403

Forbidden

API key doesn't have permission for this action

404

Not Found

Requested resource doesn't exist

429

Too Many Requests

Rate limit exceeded

500

Internal Server Error

Something went wrong on our end

Common Error Codes
INVALID_PARAMETER

One or more request parameters are invalid

INSUFFICIENT_FUNDS

Wallet doesn't have enough ETH for deployment

NETWORK_ERROR

Blockchain network is temporarily unavailable

DUPLICATE_SYMBOL

Token symbol already exists on this network

RATE_LIMIT_EXCEEDED

Too many requests in a short time period

Rate Limits

To ensure fair usage and system stability, the API implements rate limiting. Rate limits vary based on your subscription tier.

Starter
Free Tier
Requests per minute:10
Requests per day:100
Token deployments/month:5
Professional
Recommended
Requests per minute:60
Requests per day:5,000
Token deployments/month:50
Enterprise
Custom
Requests per minute:Custom
Requests per day:Unlimited
Token deployments/month:Unlimited

Webhooks

Webhooks allow you to receive real-time notifications about events related to your tokens. Configure webhook endpoints to be notified when tokens are deployed, transactions occur, or errors happen.

Available Webhook Events
token.deployed

Triggered when a token is successfully deployed to the blockchain

token.verified

Triggered when a token contract is verified on the block explorer

token.failed

Triggered when token deployment fails for any reason

token.transfer

Triggered when tokens are transferred (optional, high volume)

Webhook Payload Example
{
  "event": "token.deployed",
  "timestamp": "2025-01-15T10:30:00Z",
  "data": {
    "tokenId": "tok_1a2b3c4d5e6f",
    "contractAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "transactionHash": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
    "network": "ethereum",
    "name": "My Awesome Token",
    "symbol": "MAT"
  }
}

Support & Contact

Need help with the API? Have questions about integration? Want to discuss enterprise solutions? We're here to help.

API Access & Support

For API access requests, technical support, or integration assistance:

api@erc20tokencreator.net

We typically respond within 24 hours on business days. Enterprise customers receive priority support.

What to Include in Your Request
  • Your use case and project description
  • Expected monthly token deployment volume
  • Preferred blockchain networks
  • Any specific feature requirements
  • Company/project website (if applicable)

Ready to Start Building?

Get your API credentials today and start creating tokens programmatically. Join developers building the future of blockchain applications.