Tracking Pump.fun Token Mints in Real Time with GetBlock’s Yellowstone gRPC

A complete guide on how to track Pump.fun token launches on Solana in real-time using GetBlock’s Yellowstone gRPC service.

Overview

Traditional blockchain monitoring relies on polling RPC endpoints every few seconds, which introduces significant latency (2-5 seconds) and checking for updates that may not exist.

GetBlock's Yellowstone gRPC service solves this by streaming data from Solana validators in real time.

Here is a comparison:

Traditional RPC Polling
Websocket
Yellowstone gRPC

2-5 second delays, constant API requests, high resource usage

1-3 second delays, server pushes updates when available

~400ms latency, bidirectional streaming, direct validator connection

Why GetBlock’s Yellowstone gRPC?

GetBlock provides access to Solana's Yellowstone Geyser gRPC plugin, delivering real-time blockchain data through a high-performance streaming protocol:

  • Ultra-Low Latency: Direct streaming from validators with ~400ms latency vs 2-5 seconds with traditional RPC polling

  • Efficient Filtering: Subscribe only to the specific programs and accounts you need, reducing bandwidth and processing overhead

  • Bidirectional Streaming: Single persistent connection handles both requests and data flow, eliminating polling waste

  • No Infrastructure Needed: GetBlock manages validators, updates, and monitoring across global data centers (Europe, USA, Asia)

  • Simple Integration: Standard HTTPS endpoint with token authentication, works with existing gRPC client libraries.

In this guide, you will learn how to:

  1. Connects to GetBlock's Yellowstone gRPC service

  2. Subscribes to all transactions involving Pump.fun's program

  3. Filters for token creation instructions specifically

  4. Parses instruction data to extract token metadata

  5. Extracts account addresses (mint, creator, bonding curve)

  6. Displays formatted output with Solscan explorer links

  7. Tracks statistics and auto-reconnects on errors

Prerequisites

Before you begin, ensure you have:

  • Node.js and npm installed

  • Basic knowledge of JavaScript

  • A Dedicated Solana Node subscription on GetBlock - Required for Yellowstone gRPC access

Technology Stack:

  • Node.js

  • @triton-one/yellowstone-grpc - Official Yellowstone gRPC client

  • bs58 - Base58 encoding for Solana addresses

  • GetBlock’s Dedicated Solana Node with Yellowstone add-on

Step 1: Set Up Your GetBlock’s Yellowstone Endpoint

Deploy Your Dedicated Solana Node

First, you need to deploy a dedicated Solana node on GetBlock with the Yellowstone gRPC add-on enabled.

1. Sign up or log in

  • Create an account or log in to your existing account

2. Deploy your dedicated node

  • Navigate to your user Dashboard

  • Switch to the "Dedicated nodes" tab

  • Scroll down to "My endpoints"

  • Under "Protocol", select Solana

  • Set the network to Mainnet

  • Click Get

3. Enable the Yellowstone gRPC add-on

  • In Step 3 of your node setup (Select API and Add-ons)

  • Check the box for Yellowstone gRPC under Add-ons

  • Complete payout and finalise the setup

Generate a Yellowstone gRPC Access Token

Once your node is live, you'll create an access token to authenticate your gRPC connections.

1. Return to your dashboard

  • Under your dedicated node dashboard, click on "My endpoints".

  • Select Yellowstone gRPC

  • Click on Add to generate an access token

2. Your endpoint URL

You'll receive an HTTPS-style gRPC endpoint URL based on your chosen region:

GetBlock provides a single TLS endpoint - you don't need to configure different ports or protocols. Everything works over standard HTTPS (port 443).

Step 2: Set up Development Environment

  1. Create a directory for your project

  1. Install Dependencies:

What these packages do:

[email protected] because version 6.x + uses ES modules only, which don't work with vanilla js - require() statements.

Project Structure

Create the following files to have a basic structure for your project:

Step 3: Start Building Your Monitor

  1. Import dependencies into pumpfun-monitor.js :

What this does:

  • yellowstone gRPC Client for connecting to GetBlock

  • CommitmentLevel Settings for choosing transaction confirmation speed

  • bs58 for converting binary data into human-readable Solana addresses.

  1. Add your GetBlock configuration:

What this does:

  • Stores your GetBlock credentials.

  1. Add Pump.fun constants:

What this does:

  • PUMPFUN_PROGRAM - The unique program ID for Pump.fun on Solana

  • CREATE_DISCRIMINATOR - The 8-byte identifier that marks token creation instructions (derived from hashing "global:create")

  1. Add statistics tracker:

  • This creates an object to track how many tokens you've detected and when the last one appeared.

Step 4: Build Data Parser Functions

Now, you'll add a function to decode the binary data from Pump.fun's instruction format.

  1. Add string decoder:

What this does:

  • Pump.fun stores strings as [4 bytes for length][UTF-8 string data]. This function reads that format and returns both the string value and how many bytes were consumed.

  1. Add Instruction Parser:

    What this does:

  • Reads the token's metadata from Pump.fun's instruction data format. The data is organized like this:

    • First 8 bytes: Discriminator (identifies this as a "create" instruction)

    • Token name (e.g., "Super Doge")

    • Token symbol (e.g., "SDOGE")

    • Metadata URI (link to token image and details)

Step 5: Add Account Address Extractor

The next step is to create a function that extracts account addresses to identify newly created tokens' mint address, bonding curve pool address and creator's wallet address.

What this does:

  • Extracts three key addresses from the instruction:

    • accounts[0] - The newly created token's mint address

    • accounts[2] - The bonding curve pool address

    • accounts[7] - The creator's wallet address

Step 6: Add Instruction Verifier

The next step is to verify the instruction:

What this does:

  • Verifies two things:

    • The instruction calling Pump.fun's program

    • The first 8 bytes which match the create discriminator

Step 7: Add Display Function

The next step is to add a function that displays the data in a readable format:

What this does:

  • Formats and displays all token information in a readable format

  • Updates statistics

  • Includes Solscan link to the token, transaction hash and creator.

Step 8: Build the Main Monitor Function

Now you'll create the core function that connects to GetBlock and processes blockchain data.

Part A: Start the Function and Connect

What this does:

  • Creates a client connection to GetBlock using your credentials and opens a bi-directional streaming connection.

Part B: Configure Subscription

What this does:

  • Tells GetBlock you only want transactions involving Pump.fun's program, with CONFIRMED commitment level (~2-3 seconds, balanced speed/reliability).

Part C: Handle Incoming Data

What this does:

  • Processes each message from GetBlock - responds to keep-alive pings and extracts transaction data.

Part D: Process Instructions

What this does:

  • For each instruction, it checks if it's a create, parses metadata, extracts addresses, and displays results.

Part E: Handle Errors

What this does:

  • It handles stream errors and connection closures.

Part F: Send Request

What this does:

  • Sends your subscription request to GetBlock and confirms the connection is active.

Step 9: Add Execution Code

Finally, add the code to run your monitor:

What this does:

  • Runs your monitor and automatically restarts it if it crashes.

What this does:

  • Handles Ctrl+C to show final statistics before shutdown.

Step 10: Run Your Monitor

Run the following command in your terminal to start the server:

Expected Output

You'll see:

This means you're connected to GetBlock and monitoring is active.

When a Token Appears

When a new token appears, it displays like this:

Congratulations 🎉, you've successfully created an application that tracks Pump.fun token minted.

Troubleshooting

  1. Connection issues:

This means there is a connection glitch:

  • Verify your ENDPOINT and TOKEN in pumpfun-monitor.js

  • Check your GetBlock dashboard to confirm if the node is active

  • Test your internet connection

  1. Tokens not showing:

  • Be patient - Pump.fun typically has 50-200 tokens per day

  • Visit pump.fun to verify tokens are being created

  • Try CommitmentLevel.PROCESSED for faster updates

  1. Parser Errors:

These warnings are normal. This means some transactions aren't structured.

Security Best Practices

This is highly recommended to use environment variables instead of hard-coding. Create an .env file and store your token like this:

and reference it in your pumpfun-monitor.js like this:

Conclusion

In this guide, you learn how to build a tracking application that monitors Pump.fun token minted using GetBlock Yellowstone gRPC. This guide explains the importance of using GetBlock Yellowstone gRPC, how to get your Yellowstone gRPC token, set up the application to get the expected result.

It also explains how to troubleshoot some errors you may encounter and possible ways to enhance the security and maintainability of your applications.

Additional Resources

Last updated

Was this helpful?