Getting Data
How to get program accounts
Learn how to efficiently query program accounts using Helius APIs
Program accounts contain the data for all instances of a Solana program. This guide shows you how to efficiently query and filter program accounts.
Using getProgramAccounts
The primary method for fetching program accounts is getProgramAccounts
:
API Reference
getProgramAccounts
Advanced Filtering
Optimize your queries with filters to reduce response size and improve performance:
API Reference
getProgramAccounts
Filter Types
memcmp
: Filter accounts that match a specific pattern at a given offsetdataSize
: Filter accounts by their exact data size- Multiple filters: All conditions must be satisfied (logical AND)
Performance Tips
Program account queries can be expensive to execute. Follow these practices:
- Always use the most restrictive filters possible
- Consider paginating results for programs with many accounts
- Use WebSocket subscriptions for accounts you need to monitor continuously
- For tokens and NFTs, prefer the specialized DAS API endpoints over raw program account queries
Rate Limiting Considerations
Heavy use of getProgramAccounts
might result in rate limiting. For high-volume needs, consider:
- Using dedicated RPC nodes
- Caching frequently accessed data
- Implementing backoff strategies for retries