Back to work
Case Study · DeFi · 2024

SuperBoring

A streaming DEX that lets users DCA between any two tokens, streamed every second. Powered by Superfluid, paid out more frequently than any other service, with no gas charged to the user.

Impact

Since launch
$12.3MTotal inflow volume
16.7KTotal DCAs
2.4M$BORING staked
SuperBoring app: DCA dashboard against a black-hole backdrop
01My role

I led the design process end-to-end, owning the product experience from early concepts to final delivery. I worked closely with engineers to find ways to onboard users into the ecosystem without exposing underlying technical complexity.

I created and iterated on wireframes in tight collaboration with the PM and engineering team and delivered both desktop and mobile experiences, accounting for less obvious edge cases users encounter when setting up DCA.

02Context

The Superfluid ecosystem had powerful real-time money streaming tech, but no flagship utility app that put it in users' hands. After kicking around a few ideas with the team, we committed to a DCA platform: an app that turns Superfluid's continuous streams into a tool anyone can use to invest.

SuperBoring is the most powerful streaming DEX. It lets users DCA between any two tokens, settles more frequently than any other service, doesn't charge for gas, and rewards every swap with $BORING, a token users can stake to earn a slice of protocol fees on each market.

SuperBoring mechanism diagram

Who we were building for

Three audiences with the same underlying need: an automated way to trade without playing market-timer.

Target audience 1

Active traders

People who want to invest in the same assets over time without staring at charts.

Target audience 2

Crypto-salary earners

People paid in crypto who want to diversify their portfolio on autopilot.

Target audience 3

Institutions

Funds and treasuries looking for predictable, MEV-resistant execution at scale.

03Problem

Timing the market is impossible.

Dollar-cost-averaging is a proven strategy against the questionable results of trying to buy low / sell high. Don't worry whether it's the right time. Just DCA.

The existing multi-chain DCA products in DeFi let users trade every few hours at minimum, or as infrequently as once a month. That isn't actually an average price. It's a few snapshots. We wanted to settle trades as frequently as humanly possible, and the only stack that could do that was Superfluid's.

03Solution

DCA at the mathematical average price, settled every second.

Tokens are constantly swapped on the user's behalf as they stream them to the market. Trades settle frequently, and users receive the output token directly into their balance. At the time, SuperBoring was the only DCA strategy on the market with such a short swap window.

How could we turn a continuous-stream primitive into a product that actually feels easier to use than a normal swap?

04Mechanism

It was clear and simple for the user but quite complex under the hood:

  1. 01

    Open a stream

    The user picks the pair (e.g. USDCx → ETHx) and a flow-rate. From that moment on, the input token is continuously put on sale on their behalf.

  2. 02

    TOREX settles continuously

    Swaps execute against a time-weighted average price (TWAP) oracle from Uniswap, eliminating MEV.

  3. 03

    Receive the output token

    The output token lands in the user's balance as it's swapped, not at the end of a window or a fixed schedule.

  4. 04

    Earn $BORING for participating

    Every active DCA opens $BORING stream into the user's balance as a reward token.

  5. 05

    Stake $BORING to earn fees

    Users stake on any market to take a share of the fees that market generates, in real time.

Pick the pair and configure the stream.
01Pick the pair and configure the stream.
DCA position added to the Portfolio overview.
02DCA position added to the Portfolio overview.
Active DCA details with average price and awaiting settlement amount.
03Active DCA details with average price and awaiting settlement amount.
$BORING accrues over time.
04$BORING accrues over time.
05User stakes $BORING on a market to earn a share of its fees in real time.

Available on 8 networks

Arbitrum One logoArbitrum OneAvalanche logoAvalancheBase logoBaseBNB Smart Chain logoBNB Smart ChainGnosis logoGnosisEthereum logoEthereumOP Mainnet logoOP MainnetPolygon logoPolygon
05Onboarding gap

The biggest friction point: SuperTokens.

Superfluid streams only run on SuperTokens: wrapped versions of regular ERC-20s (USDC → USDCx, MATIC → MATICx, and so on). For anyone already inside the Superfluid ecosystem this was friction-free. For everyone else, it was a wall. New users had to wrap their tokens before they could DCA, and wrapping is a separate transaction with its own gas cost.

We had to onboard users who'd never heard of SuperTokens without making them learn what they are.

The fix: Auto-wrap

Auto-wrap asks the user for permission once per token. From then on, whenever the user's SuperToken balance runs low, we auto-wrap on their behalf and cover the cost. The user never has to think about wrapping again. To them, it just feels like the app is using their USDC directly.

Empty state. User selects only tokens to DCA.
01Empty state. User selects only tokens to DCA.
Auto-Wrap enabled: one approval per token forever. SuperBoring covers gas for the wrap.
02Auto-Wrap enabled: one approval per token forever. SuperBoring covers gas for the wrap.
Auto-Wrap disabled: user has to go through the wrapping manually.
03Auto-Wrap disabled: user has to go through the wrapping manually.
Success screen: stream is flowing.
04Success screen: stream is flowing.

It was the single highest-leverage change we made for new-user conversion: it removed the one explanation step that was killing first-time funnels.

06Design decisions

Beyond the broad mechanism, a few specific product design calls shaped how the app actually feels to use.

Match inflow

Many users already receive a token stream from elsewhere, so the DCA configurator treats their inflow as a dynamic balance. If their monthly inflow is 1,000 USDC, they can start a DCA matching that amount even if they only hold 5 USDC in their wallet right now. I capped the DCA at the inflow itself, so users can't stream out more than what's actually streaming in. Otherwise they'd get liquidated.

01Balances table with detailed breakdown of regular ERC-20 tokens, supertokens and inflow amount.
02Match-inflow button: the DCA configurator shows the available inflow amount and balance preview so the user can easily match their DCA position to their active streams.

The time frame is always monthly

Because streams move funds every second, the UI needed a human-readable time frame to anchor it. The first version let users pick their own unit, but I committed to monthly only. Asking someone to set 10 USDC per minute or per hour is hard to grasp and easy to mess up. Monthly matches what people already know from subscriptions, salaries and budgets, so the mental model came free.

Monthly amount input with the fixed /month unit.
01Monthly amount input with the fixed /month unit.
Live per-second equivalent shown beneath, so users see the stream they actually configured.
02Live per-second equivalent shown beneath, so users see the stream they actually configured.
Active stream view: same monthly unit carried through to the running DCA.
03Active stream view: same monthly unit carried through to the running DCA.

Markets as a single source of truth

Markets is a dedicated discovery tab where users can see how each market is performing and what the potential rewards for an investment are. I made it a separate destination rather than scatter the same information across DCA, staking and the other surfaces. Investors get one source of truth in one place and can make an informed decision at a glance, instead of clicking through the app to compare.

Markets tab: full discovery view with DCA volume, staking rewards, and per-$BORING rewards in one table.
07Rewards

$BORING tokens reward users for using SuperBoring or referring others. Users stake them to earn protocol fees in real time.

When a user stakes on a market, they earn a proportion of that market's fees relative to other stakers, and they also increase the amount of $BORING emitted on that market, which pulls in more usage and more stakers. It's a positive feedback loop: the markets they back actively grow as a consequence of their support.

Staking portfolio: all positions per market.
01Staking portfolio: all positions per market.
Staking modal: user defines staking amount and selects market.
02Staking modal: user defines staking amount and selects market.
Select market modal: all available markets with $BORING rewards per dollar spent.
03Select market modal: all available markets with $BORING rewards per dollar spent.
Success screen.
04Success screen.
Details page with rewards per staking position.
05Details page with rewards per staking position.
08Brand

Boring is the point. Black holes are exciting.

The name SuperBoring is a knowing wink: DCA is boring (once the user sets it up, there's nothing left to do), and that's exactly why it's superpower-tier. The brand had to convey both the calm of automated investing and the awe of the protocol underneath.

The visual metaphor: a black hole

I leaned into the black hole as the central image: black-on-black, minimalist, the emptiness of space, but with the vastness and scale that makes it actually exciting to look at. A green twist nods to the supernova: the moment of energy release that makes the dark worth staring into. Black is the state. Green is the action.

SuperBoring icon
SuperBoring logo construction grid
Supernova green black-hole hero illustration
Product UI card on the brand surface
Black-hole swirl monochrome
Type system: Work Sans Regular / Medium specimens
09Impact

SuperBoring became the flagship app for streaming finance: proof that Superfluid's primitives could power a consumer product without ever forcing the user to learn what a stream is.

Impact

Since launch
$12.3MTotal inflow volume
16.7KTotal DCAs
2.4M$BORING staked

The protocol now settles trades against a real TWAP every second for thousands of active streamers, MEV-resistant by construction, with gas costs absorbed by the app. The boring part works exactly the way it should: nobody's thinking about it.

SuperBoring final collage: DCA dashboard, market view, $BORING stake screen, and transaction history on the black-hole backdrop.