Real-time USDY token analytics pipeline for Solana blockchain data.
This project streams all USDY (Ondo US Dollar Yield) transactions from Solana, starting from the first mint (block 290789141), and stores them in efficient Parquet files for analytics and visualization.
Token Details:
A1KLoBrKBde8Ty9qtNQUtq3C2ortoC3u7twggz7sEto6
# Install dependencies
make install
# Build the project
make build
Create a local.env
file with your StreamingFast JWT token:
SUBSTREAMS_API_TOKEN=your_jwt_token_here
# Start fresh streaming
make stream-parquet
# Resume from last position
make stream-parquet-resume
# Check progress
make check-progress
The system generates:
data/usdy_parquet/usdy_chunk_XXXX.parquet
data/usdy_parquet/progress.json
Each Parquet file contains:
signature
: Transaction signatureblock_number
: Block numberblock_timestamp
: Block timestampblock_hash
: Block hashevent_type
: Type of USDY eventinstruction_index
: Instruction indexraw_event
: Complete event data (JSON)make install
- Install dependencies and setup environmentmake build
- Build the project for WebAssemblymake test
- Run all testsmake format
- Format code using rustfmtmake lint
- Run clippy for code analysismake clean
- Clean build artifactsmake run-dev
- Run in development mode with GUImake stream-parquet
- Start clean Parquet streamingmake stream-parquet-resume
- Resume Parquet streamingmake check-progress
- Check streaming progressmake package
- Package substreams for distribution├── src/
│ ├── lib.rs # Main Rust substreams logic
│ └── pb/ # Protocol buffer definitions
├── proto/
│ └── usdy_events.proto # Event definitions
├── data/
│ └── usdy_parquet/ # Output Parquet files
├── stream_usdy_parquet.py # Python streaming script
├── check_progress.py # Progress monitoring
├── substreams.yaml # Substreams configuration
├── local.env # Environment variables (create this)
└── Makefile # Build and run commands
The Parquet files are optimized for:
pd.read_parquet()
local.env
file contains a valid JWT tokenFor issues or questions, check the logs and ensure:
local.env
Happy streaming! 🚀
substreams gui usdy-solana-tracker@v0.1.0 map_usdy_transactions
substreams gui usdy-solana-tracker@v0.1.0 map_usdy_events
substreams gui usdy-solana-tracker@v0.1.0 map_usdy_holder_deltas
substreams gui usdy-solana-tracker@v0.1.0 store_usdy_holders
message
Modules
message
Binary
message
Module
message
Package
message
PackageMetadata
message
ModuleMetadata
message
Clock
message
BlockRef
message
FileDescriptorSet
message
FileDescriptorProto
message
DescriptorProto
message
ExtensionRangeOptions
message
FieldDescriptorProto
message
OneofDescriptorProto
message
EnumDescriptorProto
message
EnumValueDescriptorProto
message
ServiceDescriptorProto
message
MethodDescriptorProto
message
FileOptions
message
MessageOptions
message
FieldOptions
message
OneofOptions
message
EnumOptions
message
EnumValueOptions
message
ServiceOptions
message
MethodOptions
message
UninterpretedOption
message
SourceCodeInfo
message
GeneratedCodeInfo
message
Any
message
Timestamp
message
Request
message
Response
message
BlockUndoSignal
message
BlockScopedData
message
SessionInit
message
InitialSnapshotComplete
message
InitialSnapshotData
message
MapModuleOutput
message
StoreModuleOutput
message
OutputDebugInfo
message
ModulesProgress
message
ModuleProgress
message
BlockRange
message
StoreDelta
message
DatabaseChanges
message
TableChange
message
CompositePrimaryKey
message
Field
message
UsdyTransactions
message
UsdyTransaction
message
UsdyInstruction
message
UsdyEvents
message
UsdyEvent
message
UsdyTransfer
message
UsdyMint
message
UsdyBurn
message
UsdyApproval
message
UsdyAccountCreation
message
UsdyHolderBalance
message
UsdyHolderDeltas
message
UsdyHolderDelta
message
Block
message
ConfirmedTransaction
message
Transaction
message
Message
message
MessageHeader
message
MessageAddressTableLookup
message
TransactionStatusMeta
message
TransactionError
message
InnerInstructions
message
InnerInstruction
message
CompiledInstruction
message
TokenBalance
message
UiTokenAmount
message
ReturnData
message
Reward
message
Rewards
message
UnixTimestamp
message
BlockHeight
enum
RewardType
message
DeployRequest
message
Parameter
message
DeployResponse
message
UpdateRequest
message
UpdateResponse
message
InfoRequest
message
InfoResponse
message
SinkProgress
message
PackageInfo
message
ListRequest
message
ListResponse
message
DeploymentWithStatus
message
RemoveRequest
message
RemoveResponse
message
PauseRequest
message
PauseResponse
message
StopRequest
message
StopResponse
message
ResumeRequest
message
ResumeResponse
enum
DeploymentStatus