Skip to main content
Of course, I use Apophis myself to build my own projects. So here are some examples of what I’ve built with Apophis.

DeTFL

TFL was the founding team of the Terra ecosystem. After the Great Death Spiral, in the wake of the SEC lawsuit, TFL was forced to build non-financial dapps. One of these was Enterprise, a competitor to DAODAO. DeTFL is a simple UI for TFL’s Enterprise protocols, specifically to recover stuck assets in Enterprise DAOs. Here are some snippets pertaining to the use of Apophis in the DeTFL project. Note that this project uses Preact and supports signals natively. For React, you’ll need to setup your build pipeline, or use the useSignals() hook.
Check out the full source code here. It includes an example for Transactions too! But the whole file is rather lengthy.

Centauri

Centauri was supposed to become a GUI for the TokenFactory, until I realized that the REST API doesn’t fully support the TokenFactory and returns “not implemented” errors. I’m not sure if it would work with gRPC, but Apophis does not currently support gRPC. Nonetheless, Centauri serves as a good example for integrating new Chain Modules. The TokenFactory is a unique example of a widely used Chain Module, so without Apophis, you’d need to install one Chain-specific library for each Chain you wish to support. Apophis can support any chain that adheres to the original API. Here’s how I integrated the TokenFactory with Apophis:
The CreateDenom region is all it takes to define a new message. No code generation required. Just find the type you need in the blockchain code and translate it. While it’s still an advanced use case, it made my life as an independent Interchain developer vastly easier. Protobuf build pipelines in the Cosmos are a royal PITA, so I’m glad I don’t have to deal with them. Find the full file & repo here.

Snap

Snap is currently a minimalist collection of scripts I use to take snapshots of NFT holders & stakers on DAODAO. It is extremely rudimentary & written in CoffeeScript. Eventually, I plan to build it into a full-fledged GUI. The full script to collect NFT holders is fairly short. While I love CoffeeScript, I’d never use it for a serious project. It’s great for one-off scripts like this, but in larger projects with multiple contributors, its legibility is abysmal.
This is a nice example because it demonstrates how to use Apophis outside of a browser. Other libraries don’t support this, but it was actually important for my own needs, for example precisely because I needed to compile a whitelist for upcoming mints.