There’s widespread excitement about the new Web 3.0 era of decentralized apps, but up to now most dapps have struggled to deliver really compelling user experiences. In general, dapp user experiences lag far behind what users have come to expect in the conventional Web 2.0 world.

There’s a deep underlying reason for this — dapp developers have lacked the powerful platforms and interfaces that are commonplace in Web 2.0 and that make it easy to deliver great user experiences.

That changed when we delivered the first components of the dfuse platform. dfuse Stream, built on top of our hyperscale blockchain database dfuse DB, was launched earlier this fall, giving developers access to streaming real-time updates reflecting the state of any table on the blockchain, from any starting block height, along with snapshots of those tables anywhere in time — a first in blockchain history.

Together, dfuse DB and dfuse Stream enable developers to never miss a beat, navigate any chain reorganizations, and build dynamic user interfaces that update in real time rather than forcing the user to poll, retry or refresh.

Just a few weeks later, we launched dfuse RPC, enabling developers to submit transactions to the blockchain and receive guaranteed irreversibility in a single call, eliminating the need for developers to write complex code to handle and recover from intricate failure cases.

Today we are introducing dfuse Structured Query Engine (SQE), enabling developers to search the entire transaction history of the blockchain using a simple but powerful query language similar to GitHub’s, with sub-second response times.

“This reduces the effort, on the part of a developer, to create a list of game results, a trading history, a record of all wallet transfers, or any similar temporal view. It turns it into a single query with results available almost instantly.” — Marc-Antoine Ross, Co-Founder & CEO @ dfuse

Here are a few sample queries for EOS:

account:eosio.token receiver:eosio.token (data.from:eoscanadacom OR data.to:eoscanadacom)

all EOS transfers in and out of eoscanadacom

(ram.consumed:eoscanadacom OR ram.released:eoscanadacom)

all actions that consumed or released ram

(auth:eoscanadacom OR receiver:eoscanadacom)

this is equivalent to the history_api

Here’s what some of our early adopters have to say:

“dfuse has saved us many hours of developer time while allowing us to build a more flexible and scalable dapp” — Kedar Iyer, Everipedia “Wow very cool 😎 So it’s like a more “badass” history query API” — Denis Carriere, EOS Nation “Looking great 😄 … Can’t wait to pilot the dfuse GraphQL interface.” — César Rodríguez, Nebula Protocol

As many developers have asked, we’re also happy to confirm that there will always be a generous free tier of access to the dfuse API.

We are releasing dfuse SQE in Preview starting today. If you’d like priority access to it and other upcoming components of the dfuse platform, please apply for the dfuse Alpha Program for dapp developers.