Access real world data
Preferring the better-specified API connectivity problem over the oracle problem, API3 believes that an oracle node should be designed to interface APIs with smart contract platforms very well. The API3 solution to the API connectivity problem requires an expansive ecosystem of first-party oracles. Within this API3 sees thousands of API Providers participating in the Web3 API Economy.
That said Airnode and first-party oracles will also be a fundamental development tool for smart contract developers.
Oracle Protocols
A first-party oracle consists of two parts:
The oracle node (Airnode)
Protocol (oracle smart contracts)
An oracle protocol defines how decentralized applications can make requests to the oracle and receive responses.
Certain protocols may be more appropriate depending on how an oracle node is being utilized. As such Airnode utilizes a range of protocols to ensure a data feed achieves the appropriate efficiency for the respective use case.
Request-response Protocol
The first and the most commonly used API style follows the request–response pattern, where the user makes a request with parameters and the API responds as soon as possible. Airnode supports since it is easy to standardize and integrate with existing APIs that follow the same pattern.
An example use case of this scheme would be requesting the result of a specific match to be delivered, which can be used to resolve the respective prediction market.
Publish-subscribe Protocol
In addition, Airnode supports the publish–subscribe pattern, where the user requests the oracle to call back a specific method when parametrized conditions are met. For example, a decentralized exchange may request the oracle to trigger a liquidation event for a user in a leveraged position when ETH price drops below a particular price. Either of these patterns can be used to implement the live data feeds that DeFi applications use today, but they can also support a much larger variety of use cases in the form of dAPIs.
Airnode Requesters and Sponsors
As a developer it helps to understand what a requester is and what a sponsor does. They are both important parts of the Airnode ecosystem.
What is a Requester?
The term requester is important to remember. When requester is mentioned, the reference is to your smart contract that calls an Airnode.
As an example see the myContract.sol
contract in the diagram within the dApp Developers Overview doc, it is a requester.
What is a Sponsor?
Equally important is the term sponsor. A sponsor is an entity such as yourself, an organization, etc. Sponsors create relationships between requesters and Airnodes.
Sponsor's Requester/Airnode Relationships
As a sponsor you will use the public address from an account within a mnemonic you own to "sponsor a requester" and then use the public address (known as a sponsorAddress) to "derive a sponsorWallet" for an Airnode. This action creates a relationship between a sponsor's requester and a particular Airnode. You do this because a sponsor is the entity that pays for the fulfillment of a request, the gas costs the Airnode will incur. These costs will be withdrawn from the sponsorWallet
of the Airnode when the requester calls it.
Learn more
Understand the process of sponsoring a requester and deriving a sponsor wallet using the admin CLI commands within the Sponsor and Requester developer resource
API3 Market
API3 has developed an oracle solution that enables smart contracts to access and utilize valuable real-world data with ease. As such it is essential to make sure the process of accessing this data is as user-friendly and efficient as possible.
The API3 Market is a tool that enables developers to browse and use first-party data feeds in a self-serve manor. Developers can use a dAPI's interface to consume first-party data feed services in smart contracts.
FLEX_END_TAG