Skip to main content
In this guide, youโ€™ll learn how to retrieve token launch creators/deployers using the Bags TypeScript SDK with Node.js. This includes provider, display name, wallet address, royalty percentage, and profile image.

Prerequisites

Before starting, make sure you have:

1. The Token Creators Script

Here is a comprehensive script to fetch token creator information. Save this as get-token-creators.ts. This script retrieves detailed information about the primary creator and any additional launch participants, including provider, display name, wallet, profile picture, and royalty percentage.

Endpoint Used Under the Hood

This guide uses:
import dotenv from "dotenv";
dotenv.config({ quiet: true });

import { BagsSDK } from "@bagsfm/bags-sdk";
import { PublicKey, Connection } from "@solana/web3.js";

// Initialize SDK
const BAGS_API_KEY = process.env.BAGS_API_KEY;
const SOLANA_RPC_URL = process.env.SOLANA_RPC_URL;

if (!BAGS_API_KEY || !SOLANA_RPC_URL) {
    throw new Error("BAGS_API_KEY and SOLANA_RPC_URL are required");
}

const connection = new Connection(SOLANA_RPC_URL);
const sdk = new BagsSDK(BAGS_API_KEY, connection, "processed");

async function getTokenCreators(tokenMint: string) {
    try {
        console.log(`๐Ÿ” Fetching token creators for: ${tokenMint}`);
        
        const creators = await sdk.state.getTokenCreators(new PublicKey(tokenMint));
        
        console.log(`๐Ÿ“Š Found ${creators.length} creator(s)/deployer(s)`);

        const primaryCreator = creators.find(c => c.isCreator);

        if (!primaryCreator) {
            throw new Error("โŒ No primary creator found for this token!");
        }

        console.log("โœจ Primary Creator Details:");
        console.log(`๐Ÿ‘ค Display Name: ${primaryCreator.providerUsername ?? primaryCreator.username ?? "N/A"}`);
        console.log(`๐Ÿ”— Provider: ${primaryCreator.provider ?? "unknown"}`);
        console.log(`๐Ÿ‘› Wallet: ${primaryCreator.wallet}`);
        console.log(`๐ŸŽจ Profile Picture: ${primaryCreator.pfp}`);
        console.log(`๐Ÿ’ฐ Royalty: ${primaryCreator.royaltyBps / 100}%`);

        const others = creators.filter(c => !c.isCreator);
        if (others.length > 0) {
            console.log("\n๐Ÿค Other Launch Participants:");
            others.forEach((participant, idx) => {
                console.log(`\n#${idx + 1}`);
                console.log(`๐Ÿ‘ค Display Name: ${participant.providerUsername ?? participant.username ?? "N/A"}`);
                console.log(`๐Ÿ”— Provider: ${participant.provider ?? "unknown"}`);
                console.log(`๐Ÿ‘› Wallet: ${participant.wallet}`);
                console.log(`๐ŸŽจ Profile Picture: ${participant.pfp}`);
                console.log(`๐Ÿ’ฐ Royalty: ${participant.royaltyBps / 100}%`);
            });
        } else {
            console.log("\n๐Ÿ“ No additional launch participants found for this token");
        }

        console.log("\nโœ… Successfully retrieved token creators!");
    }
    catch (error) {
        console.error("๐Ÿšจ Error fetching token creators:", error);
    }
}

getTokenCreators("CyXBDcVQuHyEDbG661Jf3iHqxyd9wNHhE2SiQdNrBAGS");

2. Run Your Script

To analyze a tokenโ€™s creators, edit the getTokenCreators function call at the bottom of the script with the actual mint address you want to analyze. Then, run the script from your terminal:
npx ts-node get-token-creators.ts

What Youโ€™ll See

The script will output detailed information about the tokenโ€™s launch creators/deployers: Example output:
๐Ÿ” Fetching token creators for: CyXBDcVQuHyEDbG661Jf3iHqxyd9wNHhE2SiQdNrBAGS
๐Ÿ“Š Found 2 creator(s)/deployer(s)
โœจ Primary Creator Details:
๐Ÿ‘ค Display Name: tokenCreatorOnTwitter
๐Ÿ”— Provider: twitter
๐Ÿ‘› Wallet: 8xX...abc
๐ŸŽจ Profile Picture: https://example.com/pfp.jpg
๐Ÿ’ฐ Royalty: 5%

๐Ÿค Other Launch Participants:
#1
๐Ÿ‘ค Display Name: feeShareUser
๐Ÿ”— Provider: github
๐Ÿ‘› Wallet: 3yz...def
๐ŸŽจ Profile Picture: https://example.com/pfp2.jpg
๐Ÿ’ฐ Royalty: 2%

โœ… Successfully retrieved token creators!

Understanding the Data

  • isCreator: Identifies the primary token creator. There can be multiple creators/deployers, but at most one will have isCreator: true.
  • provider: The social/login provider associated with the creator (e.g., twitter, tiktok, kick, github). Use this to show a platform logo. May be unknown or null.
  • providerUsername: The username on the provider platform, when available. Prefer this for display. The plain username is a Bags internal username and may be absent.
  • wallet: The creatorโ€™s wallet address.
  • pfp: URL to the profile image, when available.
  • royaltyBps: Royalty in basis points. Divide by 100 to display as a percentage.
  • twitterUsername (optional): The creatorโ€™s Twitter/X username, if available.
  • bagsUsername (optional): The creatorโ€™s Bags platform username, if available.
  • isAdmin (optional): Whether this user is an admin of the token.

Key Information Retrieved:

  • Display Name: providerUsername if present, otherwise username
  • Provider: Source platform for displaying logos and context
  • Wallet: Wallet address string
  • Profile Picture: URL string
  • Royalty: Percentage derived from royaltyBps / 100

Alternative: Using the Bags CLI

This section requires the Bags CLI. See Install and Set Up the Bags CLI to get started.
Get token creators directly from the terminal:
bags launch creators --mint TOKEN_MINT_ADDRESS
Use --json for machine-readable output:
bags launch creators --mint TOKEN_MINT_ADDRESS --json

Use Cases

This information is valuable for:
  • Due Diligence: Research token creators before investing
  • Creator Discovery: Find and follow successful token creators
  • Fee Analysis: Understand how token fees are distributed
  • Partnership Opportunities: Identify potential collaborators
  • Portfolio Research: Learn about the teams behind your investments
For token performance metrics, also check out our Get Token Lifetime Fees guide.