Ethereum co-founder Vitalik Buterin is moving some of his crypto activity off websites entirely, and the details of his experiment say a lot about where everyday wallet security may be heading.
In an essay published on October 31, Buterin revealed that he has been using an AI-written command-line tool to update IPFS content hashes on the Ethereum Name Service (ENS), and a separate command-line wallet called kohaku-cli to make many of his payments through privacy protocols. No browser, no web interface, no fresh application code delivered from a server every time he opens a wallet.
For the person who effectively anchors Ethereum’s roadmap to be making payments through a terminal, that is more than a curiosity. It is a signal about the trust model most crypto users still accept without thinking about it.
The problem with wallet websites, explained
Buterin’s objection is not about screen clutter or nostalgia for terminals. When you use a web wallet, the website can deliver new application code every single time you return. Whatever the server supplies is what runs in your browser when you sign a transaction. You may have checked the code once, but you have no guarantee the code you reviewed is the code that runs tomorrow.
Keeping a local application changes that. You decide which software revision to install, which one to keep, and when to accept a replacement. That control matters because the wallet code sits directly between your payment instruction and the private-key signature that authorizes it. If that code changes without your knowledge, every other security measure you rely on is downstream of a decision you never made.
The trade-offs are real, and the wallet’s own documentation is blunt about them. Kohaku-cli is unaudited, under active development, and was written with AI assistance. Its README warns users to avoid mainnet unless they understand what they are doing and accept the possibility of catastrophic fund loss. Those are not the words of a polished consumer product, and they should not be read as one.
What the tool actually does
Kohaku-cli handles public Ethereum accounts alongside private balances on Tornado Cash, Railgun, and Privacy Pools V1. It is a specific wallet application, distinct from the broader Kohaku toolkit of reusable protocol libraries and wallet infrastructure that Ethereum developers have been building. The CLI warning applies to this particular application, not a verdict on every protocol it touches.
Even the local route has a supply chain. Installation requires fetching dependencies with npm install, building with npm run build, and running a local launcher. The manifest pins direct dependency versions, including viem and several Kohaku packages, and a separate artifacts dependency is pinned to a specific commit. The lockfile records resolved packages and integrity hashes. In other words, running code locally does not eliminate dependencies; it just makes them inspectable and stable instead of invisible and refreshed on every page load.
One subtle finding deserves attention from anyone who scripts their wallet. In the ordinary public-transfer path, a dry run simulates the transaction and returns without sending anything. But the Railgun unshield path can output a prepared UserOperation that is already signed even when broadcasting is withheld. A signed operation like that can be submitted later by compatible tooling. Calling a transaction prepared does not guarantee it is unsigned, and software that constructs an authorization, software that signs it, and software that submits it are three distinct sources of authority, even when one CLI coordinates all three.
What it means for everyday users
Most people will never install an unaudited command-line wallet, and they should not start now. But the underlying ideas are already shaping products ordinary investors use.
First, delivery control is becoming a security feature. Wallets that let you pin a known-good version, verify updates before accepting them, and audit what changed are following the same logic as Buterin’s experiment. The SLSA provenance framework, which checks where an artifact came from and how it was built, offers a path to making that practical without requiring users to read source code.
Second, the boundary between convenience and control is being renegotiated. A local CLI with non-interactive broadcast flags is powerful for scripts and AI agents but concentrates enormous authority in whatever process can reach the signer. The encrypted seed on disk and password-protected automation files govern storage and access, not spending limits or recipient policy. That distinction will define how safely AI agents can ever be given wallet access, a problem Buterin himself has flagged before.
Third, local does not mean private. The CLI routes certain non-RPC traffic through Tor by default, but Ethereum RPC calls still travel over the ordinary network connection. Running your interface locally and paying through privacy protocols are separate decisions with separate coverage.
The takeaway for investors
Buterin’s experiment is not a product recommendation; it is a demonstration that the current wallet model, where a server quietly hands you fresh signing code on every visit, is a choice rather than a law of nature. As Ethereum’s wallet infrastructure matures, expect verification, pinned revisions, and clearer separation of signing authority to move from enthusiast practices into mainstream wallets.
For anyone holding meaningful value on-chain, the lesson is simple: the most important security question about your wallet is not where the keys are stored, but who decides what code gets to use them. Right now, for most web wallets, that decision belongs to a server you have never audited. Buterin is showing what it looks like to take it back, one terminal command at a time.
the point about web wallets shipping new code on every visit is genuinely underrated. you verify it once and the server can quietly swap it next load
this. plus kohaku-cli is code you can actually sit and read vs a minified bundle nobody ever checks
vitalik updating ENS hashes from a terminal while the rest of us sign everything through a browser extension. the gap keeps widening lol
six years of nothing critical is a lucky streak, not a security model. the moment a hardware wallet bug eats a life savings people will rediscover the browser was never the core issue
verified source or not, i’m still not piping my seed phrase into anything an LLM wrote lmao
honestly the funniest part is him doing privacy payments by hand on a laptop while extension users get drained by fake support dms. he might be onto something
using an AI-written unaudited CLI that warns about catastrophic fund loss is a wild flex from the guy anchoring ethereum security discourse
unaudited sure, but he published the whole thing and spelled out the failure modes. thats more disclosure than 99 percent of wallet extensions ever give
tbf he uses it for ENS hash updates and privacy payments, its not a recommendation for everyone. but yeah, avoid mainnet unless you accept catastrophic loss in the README is not reassuring
most people would lose more funds fumbling a CLI than they ever would to a compromised web bundle though. power users and regular users have completely different threat models here
The point about web wallets serving fresh code on every visit is the real story here. Most people never check what actually runs when they hit sign.
Exactly. And most extension updates ship with a changelog nobody reads either. The difference is Vitalik at least forced the question.