# 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-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...
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
2
3
4
5
6