The Token Creations API provides real-time WebSocket notifications for token deployment events across Solana, including SPL tokens, Token-2022 standard implementations, and NFT collection launches.

WebSocket Endpoint

wss://api.nolimitnodes.com/socket?apikey=YOUR_API_KEY

Subscribe

{
  "method": "dataSubscribe",
  "params": {
    "referenceId": "TOKEN_CREATIONS",
    "streams": [
      {
        "stream": "tokenCreationsSubscribe",
        "params": {
          "creation_type": "mint",
          "program_id": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
          "standard": "spl-token-2022"
        }
      }
    ]
  },
  "id": 1
}

Filter Parameters

mint_address
string
Filter by specific token mint address.
creation_type
string
Filter by creation type. Values include "mint" (shorthand for all mint operations) or the full event name such as "spl_token_initialize_mint2_inner".
program_id
string
Filter by program ID (e.g., "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA").
decimals
number
Filter by token decimal places.
All filter parameters are optional. Omit all to receive every token creation event.

Subscription Confirmation

{
  "status": "Subscribed to tokenCreations",
  "subscription_id": "77ea428b-8572-4efb-8d3d-492454631d32",
  "stream": "tokenCreationsSubscribe",
  "reference_id": "TOKEN_CREATIONS"
}

Token Creation Event

{
  "method": "tokenCreationsSubscribe",
  "subscription_id": "77ea428b-8572-4efb-8d3d-492454631d32",
  "result": {
    "mint_address": "Dwzu6sNdC2VafKMN9cPHUZWGfT5tfX1mkqvCSBDZpump",
    "decimals": 6,
    "mint_authority": "TSLvdd1pWpHVjahSpsvCXUbgwsL3JAcvokwaKt1eokM",
    "freeze_authority": null,
    "creation_type": "spl_token_initialize_mint2_inner",
    "program_id": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
    "block_num": 366363984,
    "block_time": 1757694473,
    "transaction_signature": "2QdTKjKCLy8bTeXDNAAnFY7HWVeDYtagbZ16Fia1rh12ThtXL7ictXNiVjrfmJLzBhyjiL9oxk9J78asJNK5DHao"
  }
}

Response Fields

result
object

Token Information

  • mint_address — The on-chain address of the newly created token.
  • decimals — The number of decimal places (e.g., 6 for USDC-like tokens, 9 for SOL-like tokens).
  • creation_type — Indicates how the token was initialized, useful for distinguishing between standard SPL and Token-2022 creations.

Authorities

  • mint_authority — The address that can mint new tokens. A null value means the authority has been renounced, which is generally considered safer for holders.
  • freeze_authority — The address that can freeze token accounts. A null value means no one can freeze accounts.
A null value for mint_authority or freeze_authority indicates the authority has been renounced, which is generally considered safer for token holders.

Transaction Details

  • program_id — The token program used (SPL Token or Token-2022).
  • block_num / block_time — Block number and timestamp for ordering events.
  • transaction_signature — Full transaction signature for on-chain verification.

Unsubscribe

Request

{
  "method": "dataUnsubscribe",
  "params": {
    "subscriptionIds": ["77ea428b-8572-4efb-8d3d-492454631d32"],
    "referenceId": "UNSUB_REF"
  }
}

Response

{
  "status": "Unsubscribed",
  "unsubscribed_ids": ["77ea428b-8572-4efb-8d3d-492454631d32"],
  "reference_id": "UNSUB_REF"
}

Code Examples

const WebSocket = require("ws");

class TokenCreationMonitor {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.ws = null;
    this.tokens = {};
    this.creatorStats = {};
  }

  connect() {
    this.ws = new WebSocket(
      `wss://api.nolimitnodes.com/socket?apikey=${this.apiKey}`
    );
    this.setupHandlers();
  }

  setupHandlers() {
    this.ws.on("open", () => {
      console.log("Connected to Token Creations stream");
      this.subscribe();
    });

    this.ws.on("message", (data) => {
      const message = JSON.parse(data);
      if (message.method === "tokenCreationsSubscribe") {
        this.processToken(message.result);
      } else {
        console.log("Info:", JSON.stringify(message));
      }
    });

    this.ws.on("error", (error) => {
      console.error("WebSocket error:", error.message);
    });

    this.ws.on("close", () => {
      console.log("Connection closed. Reconnecting in 5s...");
      setTimeout(() => this.connect(), 5000);
    });
  }

  subscribe(filters = {}) {
    this.ws.send(
      JSON.stringify({
        method: "dataSubscribe",
        params: {
          referenceId: "TOKEN_CREATIONS",
          streams: [
            {
              stream: "tokenCreationsSubscribe",
              params: filters,
            },
          ],
        },
        id: 1,
      })
    );
  }

  processToken(token) {
    // Store token data
    this.tokens[token.mint_address] = token;

    // Track creator activity
    const creator = token.mint_authority || "unknown";
    if (!this.creatorStats[creator]) {
      this.creatorStats[creator] = { count: 0, tokens: [] };
    }
    this.creatorStats[creator].count++;
    this.creatorStats[creator].tokens.push(token.mint_address);

    // Risk assessment
    const risks = [];
    if (token.mint_authority) risks.push("mint_authority_active");
    if (token.freeze_authority) risks.push("freeze_authority_active");
    if (this.creatorStats[creator].count > 5) risks.push("prolific_creator");

    const riskLevel = risks.length === 0 ? "LOW" : risks.length === 1 ? "MEDIUM" : "HIGH";

    console.log(`\nNew Token Created [Risk: ${riskLevel}]`);
    console.log(`  Mint: ${token.mint_address}`);
    console.log(`  Decimals: ${token.decimals}`);
    console.log(`  Mint Authority: ${token.mint_authority || "Renounced"}`);
    console.log(`  Freeze Authority: ${token.freeze_authority || "Renounced"}`);
    console.log(`  Type: ${token.creation_type}`);
    console.log(`  Program: ${token.program_id}`);
    console.log(`  Block: ${token.block_num} | Time: ${token.block_time}`);
    if (risks.length > 0) {
      console.log(`  Risks: ${risks.join(", ")}`);
    }
  }
}

// Usage
const monitor = new TokenCreationMonitor("YOUR_API_KEY");
monitor.connect();

Best Practices

Authority & Security Analysis

  • Check mint_authority on every new token. Renounced (null) is safer for holders as no new tokens can be minted.
  • Check freeze_authority similarly. A non-null freeze authority means accounts can be frozen at any time.
  • Tokens with both authorities renounced are generally lower risk but not immune to other attack vectors.
  • Monitor for tokens where authorities are set to known program addresses vs. individual wallets.

Creator Due Diligence

  • Track creator addresses to build reputation profiles over time.
  • Flag creators who deploy many tokens in rapid succession, which may indicate automated or spam deployments.
  • Cross-reference creators against known deployer addresses from established projects.
  • Use the program_id to distinguish between standard SPL tokens and Token-2022 tokens, which may have additional extension capabilities.

Risk Management

  • Implement scoring systems that combine authority status, creator history, and token metadata.
  • Set alerts for high-risk patterns such as active mint + freeze authorities from unknown creators.
  • Monitor for Token-2022 tokens with transfer fee extensions or permanent delegate features.
  • Never interact with newly created tokens without verifying the creator and token configuration on-chain.