API3 DAO Development Update, February 2021

Burak Benligiray
API3
Published in
5 min readFeb 28, 2021

--

We were initially planning to publish a development update per-operations cycle (see the one for the first cycle here). However, we already have a lot of material built up, so a monthly schedule will serve us better at this point. Without further ado, let’s begin!

Airnode

We are planning to apply some finishing touches to Airnode and its protocol before releasing our first stable version, v0.1.0 (this would be the Airnode-alpha monolith on our roadmap). However, the existing version is feature-complete and is quite robust (based on internal and external usage on a variety of chains). Because of this, we decided to freeze this version under the name pre-alpha, and are currently using it to prototype API, dApp, and smart contract platform integrations. If you want to use Airnode before the release, make sure that you’re using the pre-alpha version. The changes between pre-alpha and v0.1.0 will be functionally minor, which means that the transition will be easy.

We strongly advocate for serverless hosting as the ideal solution for oracle nodes due to a variety of reasons such as failure resistance, easy redundancy, on-demand pricing, etc. Of course, the ideal workflow is to implement the integration while running your Airnode locally, then deploy it using the deployer once you are happy with the results. While this was available from the start, it was buried in an obscure README.md file in the monorepo. We have now containerized the node too (the previous container was the deployer), which people can easily use to run an Airnode locally and read the node logs on their terminal. Although this is intended for development and debugging, we will be maintaining this container to be usable in production for hosting on premise or cloud providers that the Airnode deployer will not support (for example Digital Ocean, which doesn’t provide native serverless functionality). Since this configuration will share the same stateless architecture, we are expecting it to be similarly robust.

I quickly spun up a clone of the airnode-starter node running locally on my machine for a screenshot. Note that this and the serverless deployment will work in tandem without stepping on each other’s toes, which shows how easy it is to add redundancy to Airnode across different hosting solutions.

During this month, we have worked with LimeChain to have the pre-alpha version of the request–response protocol contracts audited. We are pleased to announce that it was confirmed that the contracts did not include any vulnerabilities. We will continue using this version for our early integrations, while scheduling a more comprehensive audit for v0.1.0. This was also planned to be the first step of further cooperation with LimeChain on building solutions based on the Airnode protocol contracts, which you will hear more about in the future.

Airnode has a novel way of broadcasting fulfillment transactions that is very responsive to the status of the current gas price market. Furthermore, the requester covering the gas costs and the requests being fulfilled by requester-specific node wallets present some unique solutions to the cost–performance tradeoff problem that is common with oracles. This month, we have done statistical analysis, live testing, and further statistical analysis based on the results of the tests to come up with a final gas price strategy that can be optimized for the specific use-case.

Authoritative DAO

We’re happy to say that we’re on the final stretch with the authoritative DAO. The first audit is scheduled with Solidified for March 8–22. Following the revisions, a second audit is scheduled with Quantstamp for April 4–9. dOrg will be finalizing the dashboard implementation in the meantime, and barring an unforeseeable event, we are planning for the authoritative DAO to be live before April is out. Note that this is also when staking will go live, and we will be publishing posts, going over the tokenomic design and the related design decisions ramping up to that.

At the design side, the DAO dashboard UX design has been finalized (some mechanics were previously ambiguous). In the meantime, we have had the graphic design polished, and are hoping to have this version implemented before we go live.

The revised graphic design of the dashboard. See the previous version here.

Documentation

We are not only building a node for first-party oracles with Airnode, but also the protocol to integrate Web APIs to smart contract platforms. Since we are planning Airnode to become a very fundamental building block for smart contract use-cases that require secure, middleman-free data (which is quite a large audience), high quality documentation will be critical.

We have some special requirements:

  • API3 interacts with a number of stakeholders (API providers, dApps, developers, DAO members, smart contract platforms, etc.) and the documentation requires a specialized facet for each of them.
  • Our protocol has detailed specification formats both for integrating APIs and configuring Airnode. Since not all users will be on the same version, we need good versioning support at the documentation-side.
  • Since API3 is a decentrally governed, open source project, we need the documentation tooling to fit that. This requires qualities such as easy local development, traditional git workflow and not depending on proprietary/paid services and frameworks.

After some shopping around and prototyping, we have decided that VuePress satisfies our needs after some customization. We are currently migrating the existing docs to the new format, here’s a sneak peek.

The documentations will be frozen at the current state for the pre-alpha version, and we will be launching v0.1.0 with revised content.

Conclusion

Actually, a lot more is going on, yet these developments are not at a stage where they can be showcased (especially visually), so we would rather not spoil them. One final thing: We have updated our open positions page on the website. Please take a look and make sure to share it within your network. See you in the next post!

--

--