The Developer-First Indexing Solution
Vertex gives you the flexibility and power to access, transform, and stream on-chain data exactly how you need it.
Modular Indexers
Create multiple indexers per project, each with custom triggers and specific focus areas to efficiently process on-chain data.
Trigger Index Data Onchain
Define your rule how to parse Data and store data in your storage you had defined. You can use IDL or write your own parser with PDA you want to index data
Instant API
Give you API to access your indexed data. You can use REST API or webhooks to get data.
Analytics Dashboard
Visualize throughput, lag, storage usage, and query frequency to optimize your indexers and monitor performance.
Storage Backend
Auto-create tables in PostgreSQL or integrate with your own database to store and query indexed data efficiently.
How It Works
Build powerful indexers in minutes with our intuitive workflow
Define Your Indexer
Specify which Solana program to index and set up your triggers and listeners.
Upload IDL (Optional)
Upload your program's IDL to auto-generate schemas or define custom data structures.
Write Processing Scripts
Create scripts that transform, filter, and enrich your data during indexing.
Connect & Query
Use automatically generated APIs to query your indexed data via GraphQL or REST.
const campaignStatusSchema = utils.common.borsh.rustEnum([
utils.common.borsh.struct([], "Upcoming"),
utils.common.borsh.struct([], "Ongoing"),
utils.common.borsh.struct([], "Completed"),
utils.common.borsh.struct([], "Cancelled"),
]);
const borshCampaignDataSchema = utils.common.borsh.struct([
utils.common.borsh.str("name"),
utils.common.borsh.str("ctaLink"),
utils.common.borsh.str("logo"),
utils.common.borsh.u64("startDate"),
utils.common.borsh.u64("endDate"),
utils.common.borsh.u64("budget"),
utils.common.borsh.u64("ratePerClick"),
utils.common.borsh.u64("clicks"),
utils.common.borsh.u64("remainingBudget"),
campaignStatusSchema.replicate("status"),
]);
const borshCampaignSchema = utils.common.borsh.struct([
utils.common.borsh.u64("campaignId"),
utils.common.borsh.publicKey("advertiser"),
borshCampaignDataSchema.replicate("campaignData"),
]);
function execute(context) {
const pdaBuffer = context.pdaBuffer;
const bufferWithDiscriminator = pdaBuffer.subarray(8);
const parser = borshCampaignSchema.decode(bufferWithDiscriminator);
return {
action: 'INSERT',
data: {
campaign_id: Number(parser.campaignId),
advertiser: parser.advertiser.toString(),
start_date: new Date(Number(parser.campaignData.startDate) * 1000),
end_date: new Date(Number(parser.campaignData.endDate) * 1000),
budget: Number(parser.campaignData.budget),
rate_per_click: Number(parser.campaignData.ratePerClick),
}
}
}
Who Uses Vertex?
Powerful, flexible indexing for all Solana ecosystem participants
DApp Developers
Build fast, reliable frontends for DeFi, NFT, and DAO applications with custom indexers that meet your exact data needs.
- Create real-time data feeds for trading interfaces
- Track on-chain events to trigger notifications
- Generate custom user activity feeds and analytics
On-Chain Analysts
Extract, transform, and analyze blockchain data without building complex infrastructure or relying on centralized services.
- Create custom dashboards for protocol analytics
- Track wallet behavior and token flows
- Generate customized reports and alerting services
Infrastructure Providers
Build scalable infrastructure services on top of Sol Index to serve your customers with reliable Solana data access.
- Offer specialized data services to clients
- Integrate with existing tools and services
- Build specialized data warehousing solutions
Explorers & Dashboards
Build specialized blockchain explorers or dashboards with exactly the right data aggregation and display logic.
- Create program-specific transaction explorers
- Build visualizations for specific on-chain metrics
- Deploy interactive data exploration tools
Get Early Access
Join the waitlist for early access to Vertex, be the first to experience the future of Solana data indexing.