SolanaPortal
  • ✨Welcome to SolanaPortal
  • Getting Started
    • ⭐Why SolanaPortal?
    • 📖Guide
    • 🗺️Best Practices
    • ❓FAQ
  • API Documentation
    • Swapping
      • Swapping with Node.js
      • Swapping with Python
      • Swapping with Rust
    • Token Creation
      • Pump.fun Token
      • Standard Token
  • Market Creation
  • ‼️Troubleshooting
  • Support
Powered by GitBook
On this page
  • Introduction
  • API Endpoint - Standard Token Creation
  • Required Metadata Parameters for Standard Token Creation
  • Metadata Explanations
  • Example Metadata Upload Request
  1. API Documentation
  2. Token Creation

Standard Token

Introduction

Standard Token Creation via SolanaPortal allows users to create custom tokens directly on the Solana blockchain without automatic liquidity provisioning. Unlike Pump.fun, which requires an initial buy to activate trading, standard tokens cannot be bought first as they have no market id and liquidity pool.

Additionally, metadata parameters are directly submitted to SolanaPortal’s Standard Token Creation API, ensuring complete customization over token properties. This method is ideal for users who want full control over their token supply, decimals, and branding without automatic market listing or liquidity constraints.


API Endpoint - Standard Token Creation

https://api.solanaportal.io/api/create/token/normal

This endpoint accepts formData and requires specific metadata fields submitted to create a token successfully.


Required Metadata Parameters for Standard Token Creation

Each parameter in the Standard Token Creation API plays a vital role in defining how your token functions on the Solana blockchain. Below is a detailed breakdown of all required parameters.

Parameter

Type

Required

Description

image

image

✅

The token image file to be uploaded.

name

String

✅

The full name of the token. This is displayed in wallets and token explorers.

symbol

String

✅

The ticker symbol for the token.

decimals

Integer

✅

Defines the number of decimal places the token supports. Common values: 6 or 9.

total_supply

Integer

✅

The total number of tokens minted at creation.

wallet_address

String

✅

The public key of the token creator’s wallet.

sellerFeeBasisPoints

Integer

✅

Sets a marketplace trading fee in basis points. 0 means no fee.

description

String

✅

A brief description of the token’s purpose or functionality.

twitter

String

✅

The Twitter/X profile of the project.

telegram

String

✅

The Telegram community link for discussions.

website

String

✅

The official website of the token project.


Metadata Explanations

1. image

The image file representing the token.

Example:

const image = await fs.openAsBlob("./token.png");
const formData = new FormData();
    formData.append("image", image); // Image file

Ensure the image is in a supported format (PNG, JPG, etc.).

2. name

The name of the token in metadata.

Example:

formData.append("name", "Test");

This should match the token name used in token creation.

3. symbol

The symbol or ticker of the token.

Example:

formData.append("symbol", "TST");

4. decimals

Defines how divisible your token is by setting the number of decimal places.

Example:

javascriptCopyEditformData.append("decimals", "6");

Common values are 6 and 9 decimals.

5. total_supply

The total number of tokens that will be minted at creation.

Example:

javascriptCopyEditformData.append("total_supply", "1000000");

Authorities are not revoked which include mint authority, freeze authority and update authority. You can mint more tokens after the token creation.

6. wallet_address

The public key of the wallet that will own the newly created token.

Example:

formData.append("wallet_address", wallet.publicKey.toBase58());

Ensure this is your Solana wallet address, as this wallet will have full control over the token.

7. sellerFeeBasisPoints

Defines the royalty percentage charged on trades in basis points (bps).

Example:

javascriptCopyEditformData.append("sellerFeeBasisPoints", "0");

Common value is set to 0 to avoid any incurred fees.

8. description

A brief description of the token.

Example:

 formData.append(
      "description",
      "This is an example token created via SolanaPortal.io"
    );

This will be visible on the exchange.

9. twitter

The Twitter/X profile link of the project.

Example:

formData.append("twitter", "https://x.com/test");

10. telegram

The Telegram community link.

Example:

formData.append("telegram", "https://x.com/test");

11. website

The official website of the project.

Example:

formData.append("website", "https://solanaportal.io");

Ensure the website is accessible and valid.


Example Metadata Upload Request

// Metadata upload request
    const image = await fs.openAsBlob("./token.png");
    const formData = new FormData();
    formData.append("image", image);
    formData.append("wallet_address", wallet.publicKey.toBase58());
    formData.append("name", "ExampleToken");
    formData.append("symbol", "EXM");
    formData.append("decimals", "6");
    formData.append("total_supply", "1000000");
    formData.append("sellerFeeBasisPoints", "0");
    formData.append("description", "An example token created via SolanaPortal");
    formData.append("twitter", "https://x.com/example");
    formData.append("telegram", "https://t.me/example");
    formData.append("website", "https://example.io");

    // Send request to SolanaPortal API
    const url = "https://api.solanaportal.io/api/create/token/normal";
    const response = await fetch(url, {
      method: "POST",
      body: formData,
    });

Important Notes

  • Unlike Pump.fun, tokens are not auto-listed or tradable upon creation. You need to set up a market and liquidity pool manually.

  • After submitting your token creation request, check the transaction on Solscan to confirm its status.

  • If you want your token to be tradable, you must follow up with market and liquidity pool creation.

  • Take advantage of the custom metadata options to make your token easily identifiable.

  • All fields are required; any missing values will lead to a failed request.

Next Steps

To learn how to implement standard token creation programmatically, visit the language-specific guides:

PreviousPump.fun TokenNextMarket Creation

Last updated 3 months ago

Swapping with Node.js
Swapping with Python
Swapping with Rust