📂 Concepts and Definitions

# Airnode

Table of Contents

Airnode is a serverless oracle node implemented with a "set and forget" philosophy.

An Airnode is capable of serving one or more APIs to requesters (which are on-chain smart contracts) that request data served by a particular Airnode. Each and every Airnode has a unique mnemonic identifying its wallet. This mnemonic is kept secret and Airnode is publicly identified using the default address derived from the mnemonic.

# airnodeAddress

An Airnode is identified by the default address of a BIP 44 wallet (with the path m/44'/60'/0'/0/0) which is referred to as the airnodeAddress. This address is same for all chains on which Airnode operates. The wallet mnemonic is specified in the secrets.env file when deploying the Airnode.

Use the admin CLI command derive-airnode-address to derive the airnodeAddress from the mnemonic for informational purposes.

npx @api3/airnode-admin derive-airnode-address \
--airnode-mnemonic "cricket elephant ..."
# outputs
Airnode address: 0xaBd9...
1
2
3
4
5

# xpub

The Airnode owner announces the extended public key (xpub of the hardened derivation path m/44'/60'/0') off-chain. Then a sponsor derives a sponsor wallet for the Airnode using the xpub and airnodeAddress. The sponsor wallet will then be used by the Airnode to fulfill requests made by the sponsor's contracts.

Use the admin CLI command derive-airnode-xpub to get the xpub of an Airnode by passing the same mnemonic used to create the airnodeAddress.

npx @api3/airnode-admin derive-airnode-xpub \
--airnode-mnemonic "cricket elephant ..."
# outputs
Airnode xpub: xpub6CUGRUo...
1
2
3
4
5

# Admin CLI: generate-mnemonic

The generate-mnemonic command is useful because it will generate a mnemonic as well as return the airnodeAddress and xpub.

npx @api3/airnode-admin generate-mnemonic
# output
This mnemonic is created locally on your machine using "ethers.Wallet.createRandom" under the hood.
Make sure to back it up securely, e.g., by writing it down on a piece of paper:
cricket elephant ...
The Airnode address for this mnemonic is: 0xaBd9...
The Airnode xpub for this mnemonic is: xpub6CUGRUo...
1
2
3
4
5
6
7
8
9
10

# Verification

The xpub that the Airnode owner has announced is not verified on-chain. A sponsor can verify the xpub off-chain. Use the admin CLI command verify-xpub command from the admin CLI.

npx @api3/airnode-admin verify-airnode-xpub \
--airnode-xpub xpub6CUGRUo... \
--airnode-address 0xaBd9...
# output
Airnode xpub is: VALID
1
2
3
4
5
6
Last Updated: 8/9/2022, 2:28:25 PM