Request-Based Data Delivery Across EVM networks

Technical Overview:

Apollo is an intricate module developed to bridge the gap between EVM (Ethereum Virtual Machine) contracts and the data-rich environment of the Orally platform, particularly its Sybil component. Beyond mere data provisioning, Apollo is also configured to provide a level of randomness through a cryptographic measure, utilizing the unpredictable BLS signatures inherent to the Internet Computer (ICP) execution layer.

Deep Dive:

  1. EVM Contract Communication:

    • An EVM-based contract, when requiring data or randomness, communicates its requirement to the Apollo EVM contract.

    • This request, in essence, is a call to Apollo's EVM contract specifying the data required or the randomness generation needed.

  2. Apollo’s ICP Contract Interaction:

    • Apollo's ICP contract actively monitors its counterpart on the EVM for any new events or data requests.

    • Upon detecting a request, the ICP contract undertakes a series of operations to address this requirement.

  3. Data Procurement Through Sybil:

    • If the request pertains to data, Apollo's ICP contract communicates with the Sybil module to fetch the necessary data.

    • Sybil, as already known, aggregates and verifies the data from multiple sources to ensure its reliability and accuracy.

  4. Randomness Generation:

    • If the request pertains to randomness, Apollo's ICP contract leverages the BLS (Boneh-Lynn-Shacham) signatures inherent in the ICP execution layer.

    • This randomness generation is unpredictable, secure, and reliable, making it suitable for various applications.

  5. Transaction Preparation & Signature:

    • Post data fetching or randomness generation, Apollo's ICP contract prepares a transaction containing the necessary data.

    • This transaction is designed to call a predefined callback function named fulfillData([types]) on the requester's contract. The types parameter varies depending on the nature and structure of the data.

    • Before dispatching, the transaction is signed to ensure its authenticity and integrity.

  6. Transaction Dispatch to Requester:

    • The signed transaction, containing the requested data or randomness, is sent to the originating contract on its native blockchain.

    • Upon receipt, the requester's contract processes the fulfillData([types]) function, assimilating the data into its operations or logic as needed.

Payment Mechanism:

  • Subscription-Based:

    • Rather than a one-off payment, Apollo adopts a subscription model where the requesting contract (identified by its address) is charged.

    • Subscriptions allow for repeated and seamless data requests without the need for individual transaction payments.

Use Cases:

  1. Dynamic Data Requirements in DeFi:

    • Decentralized finance (DeFi) platforms often need real-time or periodic data updates to make lending, staking, or swapping decisions. Apollo can provide this data on-demand.

  2. Gaming & Lotteries:

    • Many gaming dApps or decentralized lotteries require randomness to decide outcomes. Apollo's randomness generation is apt for such applications.

  3. Decentralized Identity Verification:

    • For dApps requiring identity or user-related data verifications, Apollo's connection to Sybil can facilitate real-time verification data.

Additional Attributes:

  1. Multi-Chain Support:

    • Although Apollo inherently communicates with EVM contracts, its architecture and underlying principles enable potential expansion to support other blockchain infrastructures.

  2. Security:

    • The dual involvement of EVM and ICP contracts ensures robustness. The BLS signature mechanism further enhances security, especially in randomness generation.


Apollo stands as a testament to the power of bridging diverse blockchain technologies – EVM and ICP in this case. By offering on-demand data delivery and randomness generation, it embodies the spirit of decentralization and enhances the capabilities of smart contracts across blockchains. Its secure, reliable, and subscription-based approach makes it a vital asset in the modern decentralized application ecosystem.

Last updated