About APRO
APRO has chosen SOON as their first SVM (Solana Virtual Machine) chain to support oracle services, marking a significant milestone in expanding their cross-chain oracle capabilities.
Overview
APRO is building a secure platform by combining off-chain processing with on-chain verification, extending both data access and computational capabilities. This forms the foundation of APRO Data Service, improving data accuracy and efficiency while offering the flexibility to create custom solutions tailored to the specific needs of DApp businesses.
Data Service Models
- Data Push: Uses a “Push-Based” data model where decentralized independent node operators continuously gather and push data updates to the blockchain when certain price thresholds or time intervals are met. This improves blockchain scalability and provides timely updates.
- Data Pull: Uses a “Pull-Based” data model to deliver real-time Price Feed services to dApps. Designed for on-demand access, high-frequency updates, low latency, and cost-effective integration, making it ideal for DeFi protocols and decentralized exchanges.
Key Benefits
-
Combined Off-Chain & On-Chain Architecture
- Integrates off-chain computing with on-chain verification
- Extends computing capabilities while ensuring system security
-
Customizable Computing Logic
- DApp businesses can implement custom computing logic
- Secure business logic processing without compromising security
-
Enhanced Security Features
- Hybrid node approach combining on-chain and off-chain resources
- Multi-network communication scheme to prevent single-point failures
- TVWAP price discovery mechanism for fair and accurate data
Integration Guide
Program IDs
These are the program IDs for APRO Oracle integration:
| Description | Devnet | Testnet |
|---|---|---|
| Apro_SVM_Oracle | 4Mvy4RKRyJMf4PHavvGUuTj9agoddUZ9atQoFma1tyMY | Coming soon |
| Sample_Client | HUJ8ouH6fVonhF1hPV6ENoLid5nbHfyZSpvfujw6X6Hm | Coming soon |
Feed IDs
The following feed IDs are available on the apro testnet:
| Name | Feed ID |
|---|---|
| BTC/USD | 0x0003665949c883f9e0f6f002eac32e00bd59dfe6c34e92a91c37d6a8322d6489 |
| ETH/USD | 0x0003555ace6b39aae1b894097d0a9fc17f504c62fea598fa206cc6f5088e6e45 |
| SOL/USD | 0x000343ec7f6691d6bf679978bab5c093fa45ee74c0baac6cc75649dc59cc21d3 |
| USDT/USD | 0x00039a0c0be4e43cacda1599ac414205651f4a62b614b6be9e5318a182c33eb0 |
| USDC/USD | 0x00034b881a0c0fff844177f881a313ff894bfc6093d33b5514e34d7faa41b7ef |
Authentication
Headers
All routes require the following two headers for user authentication:
| Header | Description |
|---|---|
| Authorization | The user’s unique identifier, provided as a UUID (Universally Unique IDentifier). |
| X-Authorization-Timestamp | The current timestamp, with precision up to milliseconds. The timestamp must closely synchronize with the server time, allowing a maximum discrepancy of 5 seconds (by default). |
API endpoints
Return a single report at a given timestamp
Endpoint:/api/soon/reports
| Type | Description | Parameter(s) |
|---|---|---|
| HTTP GET | Returns a single report for a given timestamp. | • feedID: A Data Streams feed ID • timestamp: The Unix timestamp for the report |
Return a single report with the latest timestamp
Endpoint:/api/soon/reports/latest
Sample request:
Return a report for multiple FeedIDs at a given timestamp
Endpoint:/api/soon/reports/bulk
Sample request:
Return multiple sequential reports for a single FeedID
Endpoint:/api/soon/reports/page
Sample request:
WebSocket Connection
Establish a streaming WebSocket connection that sends reports for the given feedID(s) after they are verified. Endpoint:/api/soon/ws
Sample request: