Skip to main content
Axiom’s Pulse feature is a powerful token discovery tool that shows real-time data for new tokens, tokens in bonding, and recently migrated tokens. In this guide, you’ll learn how to build a production-ready Pulse feature using Mobula’s open-source MTT (Mobula Trader Terminal) codebase.
Live Demo: Check out the working implementation at mtt.ggSource Code: The complete codebase is available at github.com/MobulaFi/MTT

What You’ll Build

By the end of this guide, you’ll have a Pulse feature with:
  • Three real-time token sections: New Pairs, Final Stretch (bonding), and Migrated
  • WebSocket streaming for instant updates
  • Advanced filtering by chain, protocol, metrics, and audits
  • Performant rendering with batched updates and memoization
  • Persistent filter state using Zustand with localStorage
Pulse Feature Preview

Architecture Overview

The MTT Pulse feature uses a modern React architecture:

Step 1: Project Setup

First, create a new Next.js project with the required dependencies:
Install the necessary packages:
The @mobula/sdk package provides the WebSocket client and REST API methods needed to connect to Mobula’s Pulse V2 stream.

Step 2: Configure the Mobula Client

Create a client configuration file that handles REST and WebSocket connections:
Add your API key to .env.local:
Get your free API key at admin.mobula.io

Step 3: Create the Data Store

The data store manages tokens for each view (new, bonding, bonded) with optimized sorting and token limits:

Step 4: Create the Pulse V2 Hook

This is the core hook that manages WebSocket subscriptions and handles real-time updates:

Step 5: Create the Stream Context

Wrap your components with a context provider to share stream state:

Step 6: Build the Token Card Component

Create a reusable card component to display token information:

Step 7: Build the Token Section Component

Create a section component that displays a list of tokens with real-time status:

Step 8: Assemble the Main Page

Put everything together on the main page:

Step 9: Add Advanced Filtering

The MTT codebase includes comprehensive filtering capabilities. Here’s how to add filter support:

Available Filter Parameters

The Pulse V2 API supports extensive filtering options. Here are the key filter parameters:
For the complete list of filter parameters, see the Pulse Stream V2 documentation.

Performance Optimizations

The MTT codebase uses several techniques for optimal performance:

1. Update Batching

2. Memoized Components

3. Virtualized Lists

For large token lists, consider using react-window:

Conclusion

You now have a fully functional Axiom-style Pulse feature built with:
  • Real-time WebSocket streaming for instant token updates
  • REST API fallback for fast initial page loads
  • Zustand state management with localStorage persistence
  • Performant rendering with batched updates and memoization
  • Advanced filtering by metrics, audits, and holder data

Next Steps


Get Started

Create a free Mobula API key and start building your own crypto terminal today!

Live Demo

See the Pulse feature in action

Source Code

Explore the complete MTT codebase

Pulse V2 API Docs

Learn about all available filters and data

Get API Key

Sign up for free API access