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

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");

6. wallet_address

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

Example:

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

7. sellerFeeBasisPoints

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

Example:

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

8. description

A brief description of the token.

Example:

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

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:

Swapping with Node.jsSwapping with PythonSwapping with Rust

Last updated