← All posts

May 1, 2026 · Permissionless Technologies

We Just Want a Simple Stablecoin

We tried every dollar-denominated stablecoin on Ethereum. Most have a blacklist, a wipe function, or collateral sitting in a US bank. Here's what we'd actually use.

manifestoUPDstablecoinnon-freezabledecentralizationprivacyDeFicensorship-resistancesimplesound-money
Monospace cover with the line 'I just want a simple stablecoin' and code-comment notes listing basic requirements: hold a dollar, don't get frozen, don't depeg, don't change the rules

We just want a stablecoin. Our needs are pretty basic.

We want a thing that holds a dollar. We want to be able to send it and have it actually arrive. We'd prefer the issuer not have a function in the contract that lets them take it from us. We'd like the collateral not to be sitting in a bank that can fail. And we'd really, really like to not have to read governance forum posts to know whether the rules we signed up for last week still apply this week.

That's the whole list.

We figured by 2026 someone would have shipped this. We were wrong.

Here's what we tried.

USDT works. It's everywhere. The contract has a blacklist mapping and the company that runs it sits offshore, and they've used it to freeze upwards of $4.2 billion of balances. Some of those addresses were criminals. Some weren't. There's no court order required. We'd rather not put a treasury in a wallet that can be zeroed by a Slack message.

USDC is the polite version. The blacklist is still there, but the CEO will tell you publicly that he won't use it without a court order. We've watched Circle accidentally freeze a legitimate cross-chain minter and walk it back. We've watched the same Circle decline to act weeks later when a protocol got drained for $285M into public USDC addresses. The freeze is one human's judgment call. Sometimes the judgment is good. The function still exists.

We spent about thirty seconds on PYUSD. The contract has a wipe function. Two transactions and the balance goes to zero. Next.

DAI was the obvious answer for a long time. The DAI token contract is immutable. No freeze, no blacklist. But over half its collateral is USDC and tokenized RWAs, and when SVB collapsed in March 2023, DAI depegged harder than the centralized stablecoin it was supposed to replace. An immutable contract over freezable collateral isn't non-freezable. It's just slower.

USDe pays a yield, which is great until you read how it gets there. It's a delta-neutral basis trade run on centralized exchanges. The token doesn't have a freeze function. The exchanges all do. We'd rather not depend on three CEX margin accounts staying open in a stress event.

USDD is non-freezable, which is good. It also briefly depegged in 2022 with collateral ratios that on paper looked safe. Over-collateralization is a constraint, not a guarantee. Liquidation mechanics matter more than the headline ratio.

We don't need to relitigate Terra. Forty billion dollars vanished in four days. The founder is serving 15 years. We are not algorithmic.

crvUSD and GHO are decentralized in the sense that there's no CEO, but a DAO can add new collateral types, change risk parameters, pause facilitators, and modify fees. "Decentralized" and "the rules don't change" are different claims. You have to keep reading governance posts to know which version of the protocol you're holding.

FRAX split itself in two. One is the DeFi-native version with self-referential collateral. The other is a regulated coin with custodians and a shell company holding tokenized Treasuries. The regulated version is honest about what it is. The DeFi-native one we wouldn't touch.

LUSD and BOLD are the closest thing to what we want. The protocol is immutable, governance-less, no admin keys, ETH and ETH-LST collateral only. If you're comfortable running your own CDP, Liquity is excellent and we'd happily point people at it. The reasons we ended up building something different are narrower: we wanted privacy on by default rather than as a separate dApp, native yield on the held balance via sUPD without leaving the stablecoin, and a model where the holder isn't running a leveraged position at all — keeping the system over-collateralized is the Stabilizer's job, not the user's. If you don't need those three things, Liquity already solves the rest.

And then there's privacy, which nothing on this list addresses. Every stablecoin above assumes whoever's reading the chain can see every transfer you make. Salaries, vendor relationships, treasury rebalances, the lot. The mainstream answer is "use a privacy pool." There are a few of them. They're not bad. But they're a separate dApp, with separate liquidity, and you have to remember to use them. We'd like the privacy to be part of the stablecoin, not a thing we bolt on.

Oh, and under the GENIUS Act, payment-stablecoin issuers in the US are now required to seize, freeze, burn, or prevent transfer on demand. The EU regime is comparable. So the freeze function isn't a moral failing of any particular CEO. It's a regulatory requirement of being a "payment stablecoin" in the first place. The only escape is to not be that category.

So we built our own.

It's called UPD. It's over-collateralized by staked ETH. The token contract has no admin keys, no blacklist, no pause, no wipe. The collateral isn't another stablecoin. There's no centralized exchange in the loop. Governance can't add new collateral types. The peg is maintained by liquidation mechanics, not algorithmic feedback. The privacy layer is part of the same project, not a separate dApp.

Is it audited? Not yet. Is it on mainnet? Not yet. Sepolia only. The contracts are written. The trade-offs against every existing design are documented. The design decisions are public.

In the meantime we're waiting for the audit to come back.