diff --git a/docs/guides/airnode/calling-an-airnode/index.md b/docs/guides/airnode/calling-an-airnode/index.md
index c0c2da2d..8382b0bd 100644
--- a/docs/guides/airnode/calling-an-airnode/index.md
+++ b/docs/guides/airnode/calling-an-airnode/index.md
@@ -378,3 +378,47 @@ sponsor wallet for any new transactions.
The funds from the `sponsorWallet` have been transferred to the owner.
+
+## 5. Using HTTP Gateways (optional)
+
+You can use
+[HTTP Gateways](/reference/airnode/latest/understand/http-gateways.html) to make
+requests to the Airnode off-chain. HTTP Gateways are usually used to test and
+ensure if the Airnode is configured properly and working as expected without
+having the need to make a request on-chain.
+
+[Read more about HTTP Gateways here.](/reference/airnode/latest/understand/http-gateways.html)
+
+Once you deploy an Airnode, the HTTP Gateway and the HTTP Signed data Gateway
+URLs are displayed on the terminal at the end of the deployment process. You can
+use these URLs to make HTTP requests to the Airnode.
+
+For this example, we are going to use the Coingecko's Airnode HTTP Gateway URL
+to to make a request to the Airnode. You can use a tool like
+[Postman](https://www.postman.com/) or CURL to make a POST request.
+
+To make a request for the HTTP Gateway, you need to make a POST request to the
+HTTP Gateway URL followed by the endpoint ID along with the following parameters
+defined in the request body.
+
+```bash
+curl \
+-X POST \
+-H 'Content-Type: application/json' \
+-d '{"parameters": {"vs_currencies": "usd", "ids": "bitcoin"}}' \
+'https://v5smo0rs75.execute-api.us-east-1.amazonaws.com/v1/d8c1ffa0-6e08-a88c-c999-a31f2acc2c22/0x5dbf4e8c53ad4ffdec277ec4df847e6272597fd851f147c93208e0cff99df72d'
+```
+
+Similarly, for a HTTP Signed data Gateway request, you need to pass in the
+encoded parameters defined as `encodedParameters` in the request body. You can
+use the `@api3/airnode-abi` library to encode the parameters like previously
+shown.
+
+```bash
+curl \
+-X POST \
+-H 'Content-Type: application/json' \
+-d '{"encodedParameters": "0x315353535300000000000000000000000000000000000000000000000000000076735f63757272656e63696573000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120696473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001605f7061746800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a05f7479706500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000375736400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007626974636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b626974636f696e2e7573640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006696e743235360000000000000000000000000000000000000000000000000000"}' \
+'https://p9a26cqzo9.execute-api.us-east-1.amazonaws.com/v1/1f5dddde-02c6-2712-b941-2ec24f0113dc/0x5dbf4e8c53ad4ffdec277ec4df847e6272597fd851f147c93208e0cff99df72d'
+
+```
diff --git a/docs/guides/airnode/setting-up-airnode/index.md b/docs/guides/airnode/setting-up-airnode/index.md
new file mode 100644
index 00000000..0833ae24
--- /dev/null
+++ b/docs/guides/airnode/setting-up-airnode/index.md
@@ -0,0 +1,171 @@
+---
+title: Setting up an Airnode with your API
+sidebarHeader: Guides
+sidebarSubHeader:
+pageHeader: Guides → Setting up an Airnode with your API
+path: /guides/airnode/setting-up-airnode/
+outline: deep
+tags:
+ - airnode
+ - setting up airnode
+ - configuring airnode
+---
+
+
+
+
+
+
+
+# {{$frontmatter.title}}
+
+## Introduction
+
+[Airnode](/reference/airnode/latest/concepts/airnode.md) is a first-party oracle
+node deployed and operated by the API provider to provide any data from their
+REST API on-chain. It is a lightweight, serverless, and cost-efficient oracle
+node that can be deployed in minutes.
+
+This guide will walk you through the steps to set up an Airnode with your own
+REST API.
+
+## ChainAPI
+
+[ChainAPI](https://chainapi.com/) is a platform that enables you to integrate
+and deploy the open-source [Airnode](/reference/airnode/latest/understand/) with
+its step-by-step integration and deployment tools. It helps streamline the
+Airnode integration process for API providers.
+
+Using ChainAPI, API providers can configure and deploy an Airnode which allows
+them to provide their API data to multiple chains.
+
+ChainAPI can connect almost any API, whether open or authenticated, to Airnode.
+Airnode then queries your API operations to be consumed by EVM on-chain dApps,
+by using the [Request-Response Protocol](/reference/airnode/latest/concepts/).
+
+To get started, go to [ChainAPI](https://chainapi.com/) and login using
+[MetaMask](https://metamask.io/).
+
+
+
+Sign in with your MetaMask account. If you don't have a MetaMask account, you
+can create one by following the instructions
+[here](https://metamask.io/download.html).
+
+After registering, you will be redirected to the ChainAPI dashboard.
+
+
+
+## Creating a New Integration
+
+To create a new integration, click on the **Integrate** button on the top left
+corner of the dashboard and select **Integrate API**.
+
+
+
+Enter your API name, select the category and description and click on
+**Create**.
+
+
+
+Enter the base URL for your API and click on **Next**. You can also add in
+support for security schemes like API keys or an HTTP bearer token by clicking
+on **Add Security Scheme**.
+
+
+
+You will now be redirected to the next step where you can add your API
+endpoints. For each endpoint you want to add, click on **Add Endpoint** and
+enter the endpoint name, path, method, and description.
+
+
+
+You can now add all the parameters for your endpoint. Click on **Add parameter**
+and enter the parameter name and type(query/header/path/cookie). You can also
+define the parameter as a user-defined or a fixed value. You can add multiple
+parameters for each endpoint by clicking on **Add parameter**.
+
+
+
+[Reserved parameters](/reference/ois/latest/reserved-parameters) define what
+part of the response is to be picked and encoded before fulfillment. It can be
+defined by the requester or can also be hardcoded in the Airnode configuration.
+To hardcode the reserved parameters, click on **Reserved Parameters** to define
+the parameter's `_name`, `_path` and `_times`.
+
+[Pre/Post Processing](/reference/ois/latest/processing) allows you to specify
+snippets of Javascript code to be run before or after a request is made to your
+Airnode. Click on **Advanced** and select **Add Pre-processing** or **Add
+Post-processing** to add your snippets.
+
+- Pre-processing snippets are executed before making the request to the Airnode.
+- Post-processing snippets are executed after receiving the response from the
+ Airnode.
+
+To read more about pre and post-processing, click
+[here](/reference/ois/latest/processing).
+
+After adding all the required endpoints and parameters, click on **Finish**.
+
+
+
+## Setting up a Deployment
+
+To set up a new deployment for your Airnode, click on the **Deploy** button on
+the top left corner of the dashboard and select **New Deployment**.
+
+
+
+Enter your deployment name and select the integration you would want to use with
+the deployment. Click on **Next**.
+
+
+
+Select the cloud provider you would want to use for your deployment. You can
+choose between AWS or GCP. Choose the region and the Airnode version and click
+on **Next**.
+
+
+
+Select the chains you would want to use your Airnode on. You can choose any of
+the supported chains (Mainnets/Testnets) with up to 10 custom providers for each
+chain. Click on **Next** after selecting the chains and the number of providers.
+
+
+
+[Authorizer](/reference/airnode/latest/concepts/authorizers) contracts allow you
+to specify which smart contracts can make requests to your Airnode’s endpoints.
+
+When an Airnode receives a request, it can use on-chain authorizer contracts to
+verify if a response is warranted. This allows the Airnode to implement a wide
+variety of policies and to authorize requester contract access to its underlying
+API.
+
+- Public Authorizers will allow any smart contract to make requests to your
+ Airnode.
+- Restricted Authorizers will only allow smart contract addresses that have been
+ granted access to make requests to your Airnode.
+
+To read more about authorizers, click
+[here](/reference/airnode/latest/concepts/authorizers).
+
+For basic deployments, you can keep the authorizer as **Public**. Click on
+**Next**.
+
+
+
+Review your configuration for the final time and click on **Next**.
+
+
+
+You will now be redirected to download the configuration files for your Airnode.
+Click on **Download Files** to download the configuration file.
+
+
+
+You can now deploy your Airnode using the configuration file. You can either
+refer to the steps on-screen or follow the deployment guide
+[here](/guides/airnode/deploy-airnode/deploy-aws/).
+
+Once you are done deploying your Airnode, you can click on **Finish Deployment**
+to view your deployment status.
diff --git a/docs/guides/airnode/setting-up-airnode/src/chainapi-dashboard.png b/docs/guides/airnode/setting-up-airnode/src/chainapi-dashboard.png
new file mode 100644
index 00000000..e3120f63
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/chainapi-dashboard.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/chainapi.png b/docs/guides/airnode/setting-up-airnode/src/chainapi.png
new file mode 100644
index 00000000..ef557144
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/chainapi.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-2.png b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-2.png
new file mode 100644
index 00000000..e4bacd35
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-2.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-3.png b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-3.png
new file mode 100644
index 00000000..b00b418e
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-3.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-4.png b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-4.png
new file mode 100644
index 00000000..ba0c453a
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-4.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-5.png b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-5.png
new file mode 100644
index 00000000..014340ea
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-5.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-6.png b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-6.png
new file mode 100644
index 00000000..46c34172
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-6.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-7.png b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-7.png
new file mode 100644
index 00000000..17497170
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard-7.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard.png b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard.png
new file mode 100644
index 00000000..102559fb
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/deployments-dashboard.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-2.png b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-2.png
new file mode 100644
index 00000000..358b32b9
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-2.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-3.png b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-3.png
new file mode 100644
index 00000000..487b6220
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-3.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-4.png b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-4.png
new file mode 100644
index 00000000..525fff44
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-4.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-5.png b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-5.png
new file mode 100644
index 00000000..643192a5
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-5.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-6.png b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-6.png
new file mode 100644
index 00000000..a3d7e7d6
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard-6.png differ
diff --git a/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard.png b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard.png
new file mode 100644
index 00000000..815cc26d
Binary files /dev/null and b/docs/guides/airnode/setting-up-airnode/src/integrations-dashboard.png differ
diff --git a/docs/guides/qrng/lottery-guide/index.md b/docs/guides/qrng/lottery-guide/index.md
deleted file mode 100644
index 684d4287..00000000
--- a/docs/guides/qrng/lottery-guide/index.md
+++ /dev/null
@@ -1,362 +0,0 @@
----
-title: Building a Lottery with QRNG
-sidebarHeader: Guides
-sidebarSubHeader:
-pageHeader: Guides → QRNG
-path: /guides/qrng/lottery-guide/index.html
-outline: deep
-tags:
----
-
-
-
-
-
-
-
-# {{$frontmatter.title}}
-
-This is a simple tutorial that will walk you through building and deploying a
-decentralized lottery smart contract in Solidity using Remix to demonstrate the
-use of [API3's QRNG](/reference/qrng/) service. You will use the browser-based
-[Remix IDE](https://remix.ethereum.org) and [MetaMask](https://metamask.io/).
-Some basic knowledge of these two tools is assumed.
-
-Currently, QRNG has three [providers](/reference/qrng/providers.md), two of
-which provide quantum random numbers. This guide will use the
-[Testnet Random Numbers](/reference/qrng/providers#testnet-random-numbers),
-available only on testnets, which returns a pseudorandom number.
-
-Anyone can choose a number 1–10,000 and buy a ticket to enter into a weekly
-lottery. The ticket revenue is collected into a pot in the contract. After 7
-days, the contract will allow anyone to trigger the drawing.
-
-The contract will then call the API3 QRNG for a truly random number generated by
-quantum mechanics. The pot will be split amongst all users that chose this
-winning number. If there are no winners, the pot will be rolled over to the next
-week. Once deployed, the lottery will continue to run and operate itself
-automatically without any controlling parties.
-
-## 1. Coding the `Lottery` Contract
-
-::: warning Check your Network!
-
-Make sure you're on a Testnet before trying to deploy the contracts on-chain!
-
-:::
-
-> The complete contract code can be found
-> [here](https://github.com/camronh/Lottery-Tutorial/blob/main/contracts/Lottery.sol)
-
-Head on to [Remix online IDE](https://remix.ethereum.org) using a browser that
-you have added Metamask support to. Not all browsers support
-[MetaMask](https://metamask.io/download/).
-
-It should load up the `Lottery` contract.
-
-[Open in Remix](https://remix.ethereum.org/#url=https://raw.githubusercontent.com/api3-ecosystem/remix-contracts/master/contracts/Lottery.sol&lang=en&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.22+commit.4fc1097e.js)
-
-![Add Contract](/guides/qrng/lottery-guide/src/lottery1.png)
-
-As a requester, our `Lottery.sol` contract will make requests to an Airnode,
-specifically the API3 QRNG, using the
-[Request-Response Protocol (RRP)](/reference/qrng/airnode-rrp-v0.md). It may be
-helpful to take a little time to familiarize yourself if you haven't already.
-
-- You first need to define all the global variables - `pot`, `ticketPrice`,
- `week`, `endTime`, `MAX_NUMBER`, `airnodeAddress`, `endpointId` and
- `sponsorWallet`.
-
- ```Solidity
- // Global Variables
- uint256 public pot = 0; // total amount of ether in the pot
- uint256 public ticketPrice = 0.0001 ether; // price of a single ticket
- uint256 public week = 1; // current week counter
- uint256 public endTime; // datetime that current week ends and lottery is closable
- uint256 public constant MAX_NUMBER = 10000; // highest possible number
- address public constant airnodeAddress = 0x9d3C147cA16DB954873A498e0af5852AB39139f2;
- bytes32 public constant endpointId = 0x94555f83f1addda23fdaa7c74f27ce2b764ed5cc430c66f5ff1bcf39d583da36;
- address payable public sponsorWallet;
- ```
-
-- Add the constructor function that will take the `_airnodeRrpAddress`
-
-- When deploying the contract, you need to pass in a datetime that the lottery
- will end. After the lottery ends, the next week will begin and will end 7 days
- after the original `endTime`.
-
- ```Solidity
- /// @notice Initialize the contract with a set day and time of the week winners can be chosen
- /// @param _endTime Unix time when the lottery becomes closable
- constructor(uint256 _endTime, address _airnodeRrpAddress)
- RrpRequesterV0(_airnodeRrpAddress)
- {
- if (_endTime <= block.timestamp) revert EndTimeReached(_endTime);
- endTime = _endTime; // store the end time of the lottery
- }
- ```
-
-The `Lottery` contract will have five main functions: `setSponsorWallet()`,
-`enter()`, `getWinningNumber()`, `closeWeek()` and `getEntriesForNumber()`.
-
-- The `setSponsorWallet()` function will set the address of the
- [Sponsor Wallet](/reference/airnode/latest/concepts/sponsor.md#sponsorwallet).
- We will need to fund this wallet later.
-
- ```Solidity
- function setSponsorWallet(address payable _sponsorWallet)
- external
- onlyOwner
- {
- sponsorWallet = _sponsorWallet;
- }
- ```
-
-- The `enter()` function will take in `_number` as a parameter. It will be the
- participant's chosen lottery number for which they're buying a ticket. It will
- then add the user's address to list of entries for their number under the
- current week and add the funds to the `pot`.
-
- ```solidity
- function enter(uint256 _number) external payable {
- require(_number <= MAX_NUMBER, "Number must be 1-MAX_NUMBER"); // guess has to be between 1 and MAX_NUMBER
- if (block.timestamp >= endTime) revert EndTimeReached(endTime); // lottery has to be open
- require(msg.value == ticketPrice, "Ticket price is 0.0001 ether"); // user needs to send 0.0001 ether with the transaction
- tickets[week][_number].push(msg.sender); // add user's address to list of entries for their number under the current week
- pot += ticketPrice; // account for the ticket sale in the pot
- }
- ```
-
-Users can call this function with a number 1-10000 and a value of 0.001 ether to
-buy a lottery ticket. The user's address is added to the addresses array in the
-`tickets` mapping.
-
-- The `getWinningNumber()` function will be used to make the request for
- randomness. It calls the `airnodeRrp.makeFullRequest()` function of the
- `AirnodeRrpV0.sol` protocol contract which adds the request to its storage and
- emits a `requestId`.
-
- ```Solidity
- function getWinningNumber() external payable {
- // require(block.timestamp > endTime, "Lottery has not ended"); // not available until end time has passed
- require(msg.value >= 0.01 ether, "Please top up sponsor wallet"); // user needs to send 0.01 ether with the transaction
- bytes32 requestId = airnodeRrp.makeFullRequest(
- airnodeAddress,
- endpointId,
- address(this), // Use the contract address as the sponsor. This will allow us to skip the step of sponsoring the requester
- sponsorWallet,
- address(this), // Return the response to this contract
- this.closeWeek.selector, // Call this function with the response
- "" // No params
- );
- pendingRequestIds[requestId] = true; // Store the request id in the pending request mapping
- emit RequestedRandomNumber(requestId); // Emit an event that the request has been made
- sponsorWallet.call{value: msg.value}(""); // Send funds to sponsor wallet
- }
- ```
-
-- The off-chain QRNG Airnode gathers the request and performs a callback to the
- contract with the random number. Here, the `closeWeek()` function fulfills the
- request, gets the random number and assigns it as the winning number for that
- week.
-
-- It then checks from an array of addresses who participated in the lottery,
- divides the pot evenly among the winners and sends it to each winner.
-
- ```solidity
- function closeWeek(bytes32 requestId, bytes calldata data)
- external
- onlyAirnodeRrp
- {
- require(pendingRequestIds[requestId], "No such request made");
- delete pendingRequestIds[requestId]; // remove request id from pending request ids
-
- uint256 _randomNumber = abi.decode(data, (uint256)) % MAX_NUMBER; // get the random number from the data
- emit ReceivedRandomNumber(requestId, _randomNumber); // emit the random number as an event
-
- // require(block.timestamp > endTime, "Lottery is open"); // will prevent duplicate closings. If someone closed it first it will increment the end time and not allow
-
- winningNumber[week] = _randomNumber;
- address[] memory winners = tickets[week][_randomNumber]; // get list of addresses that chose the random number this week
- unchecked {
- ++week; // increment week counter, will not overflow on human timelines
- }
- endTime += 7 days; // set end time for 7 days later
- if (winners.length > 0) {
- uint256 earnings = pot / winners.length; // divide pot evenly among winners
- pot = 0; // reset pot
- for (uint256 i = 0; i < winners.length; ) {
- payable(winners[i]).call{value: earnings}(""); // send earnings to each winner
- unchecked {
- ++i;
- }
- }
- }
- }
- ```
-
-The `getEntriesForNumber()` is a read only function that returns the list of
-addresses that chose the given number for the given week.
-
-```Solidity
-function getEntriesForNumber(uint256 _number, uint256 _week) public view returns (address[] memory) {
- return tickets[_week][_number];
-}
-```
-
-The
-[`receive()`](https://docs.soliditylang.org/en/v0.8.14/contracts.html#receive-ether-function)
-function will be called if funds are sent to the contract. In this case, we need
-to add these funds to the pot.
-
-```Solidity
-receive() external payable {
- pot += msg.value; // add funds to the pot
-}
-```
-
-## 2. Deploying the Contract
-
-:::warning Set up your Testnet Metamask Account!
-
-Make sure you've already configured your Metamask wallet and funded it with some
-testnet ETH before moving forward. You can request some from
-[here](https://faucet.paradigm.xyz/)
-
-:::
-
-Now deploy the Lottery contract and call it through Remix. It will call the QRNG
-Airnode to request a random number.
-
-### Compile and Deploy the Lottery Contract on Goerli Testnet
-
-- [Click here](https://remix.ethereum.org/#url=https://raw.githubusercontent.com/api3-ecosystem/remix-contracts/master/contracts/Lottery.sol&lang=en&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.22+commit.4fc1097e.js)
- to open the Lottery Contract in Remix.
-
- ![Opening the Requester Contract in Remix](src/s1.png)
-
-- Click on the **COMPILE** tab on the left side of the dashboard and click on
- **Compile Lottery.sol**
-
-
-
-- Head to Deploy and run Transactions and select **Injected Provider —
- MetaMask** option under **Environment**. Connect your MetaMask. Make sure
- you’re on the Goerli Testnet.
-
-- The `endTime` will be the ending time of the lottery. To have it end in the
- next week, execute the following code snippet. Use its output for `_ENDTIME`
-
- ```js
- console.log((nextWeek = Math.floor(Date.now() / 1000) + 9000));
- ```
-
-- The `_airnodeRrpAddress` is the main `airnodeRrpAddress`. The RRP Contracts
- have already been deployed on-chain. You can check for your specific chain
- [here](/reference/airnode/latest/). Fill it in and Deploy the Contract.
-
- ![Deploying the Lottery](src/s3.png)
-
-## 3. Deriving the Sponsor Wallet
-
-The
-[Sponsor Wallet](/reference/airnode/latest/concepts/sponsor.md#sponsorwallet)
-needs to be derived from the requester's contract address (Lottery contract in
-this case), the Airnode address, and the Airnode xpub. The wallet is used to pay
-gas costs of the transactions. The sponsor wallet must be derived using the
-command
-[derive-sponsor-wallet-address](/reference/airnode/latest/developers/requesters-sponsors.md#how-to-derive-a-sponsor-wallet)
-from the Admin CLI. Use the value of the sponsor wallet address that the command
-outputs while making the request. **This wallet needs to be funded.**
-
-::: details Testnet Random Numbers QRNG Airnode Details
-
-```
-Testnet Random Numbers QRNG Airnode Address = 0x6238772544f029ecaBfDED4300f13A3c4FE84E1D
-Testnet Random Numbers QRNG Airnode XPUB = xpub6CuDdF9zdWTRuGybJPuZUGnU4suZowMmgu15bjFZT2o6PUtk4Lo78KGJUGBobz3pPKRaN9sLxzj21CMe6StP3zUsd8tWEJPgZBesYBMY7Wo
-```
-
-:::
-
-```sh
-npx @api3/airnode-admin derive-sponsor-wallet-address \
- --airnode-xpub xpub6CuDdF9zdWTRuGybJPuZUGnU4suZowMmgu15bjFZT2o6PUtk4Lo78KGJUGBobz3pPKRaN9sLxzj21CMe6StP3zUsd8tWEJPgZBesYBMY7Wo \
- --airnode-address 0x6238772544f029ecaBfDED4300f13A3c4FE84E1D \
- --sponsor-address