The Application + Recs Contract

Tier 3: The YOU tier

This is where you, the developer, come in! You'll need to deploy two contracts:

The Application

The Application is the sender and receiver of messages. The application must implement the IReceiver interface for receiving messages, and should expose functions for interacting with the endpoint for sending messages and updating configs.

Applications are configured on the protocol by selecting a library, and one set of AppConfig for each of the library's Send Module and Receive Module. These include things like:

  • which oracles and relayers are permitted to send messages

  • which Recs Contract to use

  • whether or not message-sending is paused for the application

  • how message disputes are handled (Rukh only)

  • some additional feature flags for more advanced features (see Rukh in-depth)

The Recs Contract

The Recs Contract (Recommendations Contract) is a smart contract that tells the oracle and relayer how to deliver specific messages. For each message delivery, the Send Module calls functions implemented in the Recs Contract for more dynamic configuration, like:

  • using a different relayer to deliver the message

  • extending dispute resolution time

Example applications which implement these components, along with the scripts to deploy and configure them: Code Examples

We suggest you start sending messages with test data on testnet using the Thunderbird V1 library with the provided oracle and relayer, listed here:

Orb Labs (makers of Earlybird) also are working on a protocol, MagicLane, for those who want an app for sending messages out of the box. Check it out at Token-Wrapping with MagicLane

Now, it's time to get started building the application!

pageGetting Started

Last updated