# Airnode
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...
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...
2
3
4
5
# Admin CLI: generate-airnode-mnemonic
The
generate-airnode-mnemonic
command is useful because it will generate a mnemonic as well as return the
airnodeAddress and xpub.
npx @api3/airnode-admin generate-airnode-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:
############################## MNEMONIC ###############################
cricket elephant ...
############################## MNEMONIC ###############################
The Airnode address for this mnemonic is: 0xaBd9...
The Airnode xpub for this mnemonic is: xpub6CUGRUo...
2
3
4
5
6
7
8
9
10
11
12
13
14
# 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
2
3
4
5
6

