Published Packages
The Substreams ecosystem includes a growing registry of community-contributed packages available at substreams.dev. These packages provide ready-to-use Substreams modules for a wide variety of blockchain use cases, from DeFi protocols to NFT marketplaces, gaming applications, and infrastructure tools.
What Are Published Packages?
Published packages are complete Substreams modules that have been packaged and shared by the community through the Substreams registry. These packages offer:
Community-driven development: Built and maintained by developers worldwide
Diverse use case coverage: Spanning DeFi, NFTs, gaming, infrastructure, and more
Easy discovery and integration: Searchable registry with detailed package information
Collaborative improvement: Open-source packages that benefit from community contributions
Discovering Packages
Using the Substreams Registry
The substreams.dev website provides several ways to discover packages:
Search and Browse
Search by name: Find packages by searching for specific protocols or use cases
Browse by category: Explore packages organized by blockchain, protocol type, or functionality
Filter by chain: Focus on packages for specific blockchains like Ethereum, Solana, or Cosmos
Sorting Options
Most downloaded: Find the most popular and trusted packages
Recently uploaded: Discover the latest additions to the registry
By contributor: Explore packages from specific developers or organizations
Package Information
Each package listing includes:
Version history: Track package updates and changes
Download statistics: See how widely used a package is
Documentation: Access usage instructions and examples
Source code links: Review the implementation on GitHub
Top Contributors
The registry features a contributor leaderboard showcasing the most active package publishers:
StreamingFast: Core foundational modules and infrastructure packages
TopLedger: Comprehensive DeFi and trading analytics modules
Pinax Network: Multi-chain data extraction and transformation tools
Community developers: Individual contributors building specialized modules
Popular Package Categories
DeFi Protocols
Uniswap V2/V3: Swap events, liquidity changes, and pool analytics
Aave: Lending, borrowing, and liquidation events
Compound: Interest rate changes and market activities
Curve: Pool swaps and liquidity provider actions
Balancer: Weighted pool operations and governance
NFT and Gaming
OpenSea: NFT marketplace transactions and metadata
Axie Infinity: Game-specific events and token transfers
The Sandbox: Virtual land transactions and asset movements
CryptoPunks: Historical sales and ownership changes
Art Blocks: Generative art minting and trading
Infrastructure and Tools
ENS (Ethereum Name Service): Domain registrations and resolutions
Chainlink: Oracle price feeds and data updates
The Graph: Subgraph deployment and indexing events
Gnosis Safe: Multi-signature wallet operations
1inch: DEX aggregator trades and routing
Cross-Chain and Layer 2
Polygon: Layer 2 transaction processing and bridge events
Arbitrum: Rollup transactions and state updates
Optimism: Optimistic rollup data and fraud proofs
IBC: Inter-blockchain communication for Cosmos ecosystem
Using Published Packages
Installation
To use a published package in your Substreams project:
Find the package on substreams.dev
Copy the package URL from the package details page
Add it to your imports in
substreams.yaml:
Integration Example
Rust Implementation
Package Quality and Trust
Evaluation Criteria
When selecting packages, consider:
Download statistics: Higher download counts often indicate reliability
Contributor reputation: Packages from established contributors tend to be well-maintained
Documentation quality: Well-documented packages are easier to integrate and debug
Update frequency: Regularly updated packages are more likely to be compatible with latest changes
Community feedback: Check GitHub issues and discussions for user experiences
Best Practices
Version pinning: Use specific versions in your imports to ensure reproducibility
Testing: Thoroughly test packages in your development environment
Monitoring: Keep track of package updates and security advisories
Fallback plans: Have alternatives ready in case a package becomes unavailable
Contributing Packages
Publishing Your Own Package
To contribute to the ecosystem:
Develop your Substreams: Create a useful, well-tested module
Package it: Use the Substreams CLI to create a
.spkgfilePublish to registry: Upload your package to the Substreams registry
Document thoroughly: Provide clear usage instructions and examples
Maintain actively: Respond to issues and keep the package updated
Package Guidelines
Clear naming: Use descriptive names that indicate the package's purpose
Comprehensive documentation: Include usage examples and API documentation
Semantic versioning: Follow semantic versioning for releases
License clarity: Specify the license for your package
Community engagement: Respond to user feedback and contributions
Advanced Usage Patterns
Package Composition
Combine multiple packages for complex analytics:
Next Steps
Explore the Substreams Registry to discover available packages
Learn about Foundational Modules for core blockchain data processing
Check out Foundational Stores for pre-computed historical data
Read the guide on Publishing a Substreams Package to contribute your own modules
Last updated
Was this helpful?

