# Chain Providers
Chain providers provide access to an evm on behalf of an API provider. Your Airnode will interact with one or more chain providers and respond to requests. You can use multiple chain providers for each chain and declare multiple chains each with one of more chain providers. Below are some of the chain providers you might use.
# One Chain: One Provider
As an example the chains
field declares its use of Sepolia blockchain with
id 11155111. The type
is set to evm which is the only type currently
supported by Airnode. It then applies an arbitrary name for the blockchain
provider "infuraSepolia" in the providers
array.
"chains": [
{
"authorizers": {
"requesterEndpointAuthorizers": [
"0xf18c105D0375E80980e4EED829a4A68A539E6178"
]
},
"authorizations": {
"requesterEndpointAuthorizations": {}
},
"contracts": {
"AirnodeRrp": "0xa0AD79D995DdeeB18a14eAef56A549A04e3Aa1Bd"
},
"id": "11155111",
"providers": {
"infuraSepolia": {
"url": "${INFURA_SEPOLIA_PROVIDER_URL}"
}
},
"type": "evm",
"options": {
"fulfillmentGasLimit": 500000,
"gasPriceOracle": [
{
"gasPriceStrategy": "latestBlockPercentileGasPrice",
"percentile": 60,
"minTransactionCount": 20,
"pastToCompareInBlocks": 20,
"maxDeviationMultiplier": 2,
},
{
"gasPriceStrategy": "providerRecommendedGasPrice",
"recommendedGasPriceMultiplier": 1.2,
},
{
"gasPriceStrategy": "providerRecommendedEip1559GasPrice",
"baseFeeMultiplier": 2,
"priorityFee": {
"value": 3.12,
"unit": "gwei",
}
},
{
"gasPriceStrategy": "constantGasPrice",
"gasPrice": {
"value": 10,
"unit": "gwei"
}
}
],
},
"maxConcurrency": 100
}
],
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# One Chain: Multiple Providers
Multiple providers can be used per chain. Simply add another object to
providers
. In this case both blockchain providers will have the same chain
id
and type
.
"chains": [
{
"authorizers": {
"requesterEndpointAuthorizers": [
"0xf18c105D0375E80980e4EED829a4A68A539E6178"
]
},
"authorizations": {
"requesterEndpointAuthorizations": {}
},
"contracts": {
"AirnodeRrp": "0xa0AD79D995DdeeB18a14eAef56A549A04e3Aa1Bd"
},
"id": "11155111",
"providers": {
"infuraSepolia": {
"url": "${INFURA_SEPOLIA_PROVIDER_URL}"
},
"alchemySepolia": {
"url": "${ALCHEMYSEPOLIA_PROVIDER_URL}"
}
},
"type": "evm",
"options": {
"fulfillmentGasLimit": 500000,
"gasPriceOracle": [
{
"gasPriceStrategy": "latestBlockPercentileGasPrice",
"percentile": 60,
"minTransactionCount": 20,
"pastToCompareInBlocks": 20,
"maxDeviationMultiplier": 2,
},
{
"gasPriceStrategy": "providerRecommendedGasPrice",
"recommendedGasPriceMultiplier": 1.2,
},
{
"gasPriceStrategy": "providerRecommendedEip1559GasPrice",
"baseFeeMultiplier": 2,
"priorityFee": {
"value": 3.12,
"unit": "gwei",
}
},
{
"gasPriceStrategy": "constantGasPrice",
"gasPrice": {
"value": 10,
"unit": "gwei"
}
}
],
},
"maxConcurrency": 100
}
],
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Multiple Chains: Multiple Providers
Not as complicated as it sounds. First create two or more chain objects were
each has a unique id
and type
and a list of providers
for each.
"chains": [
{
"authorizers": {
"requesterEndpointAuthorizers": [
"0xf18c105D0375E80980e4EED829a4A68A539E6178"
]
},
"authorizations": {
"requesterEndpointAuthorizations": {}
},
"contracts": {
"AirnodeRrp": "0xa0AD79D995DdeeB18a14eAef56A549A04e3Aa1Bd"
},
"id": "11155111",
"providers": {
"infuraSepolia": {
"url": "${INFURA_SEPOLIA_PROVIDER_URL}"
},
"alchemySepolia": {
"url": "${ALCHEMYSEPOLIA_PROVIDER_URL}"
}
},
"type": "evm",
"options": {
"fulfillmentGasLimit": 500000,
"gasPriceOracle": [
{
"gasPriceStrategy": "latestBlockPercentileGasPrice",
"percentile": 60,
"minTransactionCount": 20,
"pastToCompareInBlocks": 20,
"maxDeviationMultiplier": 2,
},
{
"gasPriceStrategy": "providerRecommendedGasPrice",
"recommendedGasPriceMultiplier": 1.2,
},
{
"gasPriceStrategy": "providerRecommendedEip1559GasPrice",
"baseFeeMultiplier": 2,
"priorityFee": {
"value": 3.12,
"unit": "gwei",
}
},
{
"gasPriceStrategy": "constantGasPrice",
"gasPrice": {
"value": 10,
"unit": "gwei"
}
}
],
},
"maxConcurrency": 100
},
{
"authorizers": {
"requesterEndpointAuthorizers": [
"0xf18c105D0375E80980e4EED829a4A68A539E6178"
]
},
"authorizations": {
"requesterEndpointAuthorizations": {}
},
"contracts": {
"AirnodeRrp": "0xa0AD79D995DdeeB18a14eAef56A549A04e3Aa1Bd"
},
"id": "11155111",
"providers": {
"infuraSepolia": {
"url": "${INFURA_SEPOLIA_PROVIDER_URL}"
}
},
"type": "evm",
"options": {
"fulfillmentGasLimit": 500000,
"gasPriceOracle": [
{
"gasPriceStrategy": "latestBlockPercentileGasPrice",
"percentile": 60,
"minTransactionCount": 20,
"pastToCompareInBlocks": 20,
"maxDeviationMultiplier": 2,
},
{
"gasPriceStrategy": "providerRecommendedGasPrice",
"recommendedGasPriceMultiplier": 1.2,
},
{
"gasPriceStrategy": "providerRecommendedEip1559GasPrice",
"baseFeeMultiplier": 2,
"priorityFee": {
"value": 3.12,
"unit": "gwei",
}
},
{
"gasPriceStrategy": "constantGasPrice",
"gasPrice": {
"value": 10,
"unit": "gwei"
}
}
],
},
"maxConcurrency": 100
}
],
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109