
CEO @skyemetacorp, @TokenCapStack | Founder @TheInsumerModel | 30+ years in markets | Helped bring the first IPO on the blockchain | Six books | @OldMenNewMoney
New Canaan, CT
Joined July 2010
- Tweets62.9K
- Following1.8K
- Followers16.4K
- Likes10.1K
Pinned Tweet
Something my company has in production, live on x402: an agent opens a room with a rule, every agent that wants in is measured against live chain state, and one that stops qualifying is out at the next check. We published a live run, every step on Base. Useful to you?
Douglas Borthwick retweeted
The Binance drain took four minutes. The preparation took 18 hours, in public, on three empty wallets that rehearsed the exact move. All of it is on chain, Oct 29 UTC.
02:28 The operator address deploys sweeper v1, 0x19bee294a6daab49c9e5ab69a5da6c035c70f2bf. Unverified, drain function callable only by the operator.
13:51 Two fresh wallets with zero history get EIP-7702 delegations to sweeper v1:
0x837810e3be7a3e89c570e7a01a13d3b566aafbc3, two authorizations, nonces 0 and 1
0x9c29ba2de4b2d6c3630685650663cfe7b70dbb6b, three authorizations, nonces 0, 1 and 2
A fresh wallet's nonce is always zero, so one authorization would do. He sent two and three. He was testing whether a list with invalid nonces still goes through. Six minutes later a third address sends them dust. At 14:19 and 14:24 the operator runs the drain on both. They were empty, so nothing moved. The path works.
15:59 Sweeper v2 deployed, 0x63e842b054bd624a465454d533c33f573e9c6fae. This is the one that will sit on Binance 14.
16:20 and 16:25 Third fresh wallet, 0x43aedb9bad6219677a2c8d6858321c16988404bd, delegated to v2 twice. Between the two, 1.01 ETH arrives from 0xe4F9070e1316de2988fc6f869feaD8fb99cC74cd. 16:30 the sweeper moves 0.01 ETH out. 16:47 it moves the remaining 1.0 ETH back to 0xe4F9070e. Full rehearsal with real money, then the money goes home.
18:20 The same 0xe4F9070e sends 1.08 ETH to the operator. Gas for the real thing.
20:20:59 Binance 14 receives fifty authorizations in one transaction, nonces 18914775 to 18914824, sweeper v2. One matches.
20:24:23 167,464 ETH and 63 token transfers leave in a single call.
What this proves: the nonce spray was designed, not improvised. He knew in the morning that he would not have the live nonce of the target in the evening.
The rehearsals were public but anonymous, three empty wallets among the dozens of phishing delegations the chain sees every day. The alarm was the next step: a labeled Binance hot wallet accepting a 7702 delegation to a six-hour-old unverified contract. That is one rule in any monitoring system. From that transaction to the first sweep there were three minutes and twenty-four seconds. Nobody flagged it in that window.
Binance 14 signed fifty authorizations handing itself to a sweeper contract. The signatures are on chain. The read that fits best: a signing machine was compromised, the attacker could not take the keys out and could not pass the transfer policy, whitelists and limits, but could get it to sign one short message that policies written before May 2025 do not recognize. EIP-7702 did not open the door. It walked around the guard.
What 7702 is: a wallet can attach contract code to itself by signing (contract, nonce) with its own private key. Anyone can submit that signature and pay the gas. It only works if the nonce matches the wallet's live nonce at that moment. After that the code moves funds with no signer involved.
What happened, all on chain, Oct 29 UTC:
> 13:51 the attacker delegates two fresh empty wallets to a sweeper and drains them. A dry run.
> 15:59 deploys a second sweeper. 16:20 to 16:47 repeats the drill on a third empty wallet.
> 18:20 receives 1 ETH for gas.
> 20:20:59 one transaction to Binance 14 carrying 50 authorizations signed by Binance 14 itself, nonces 18914775 to 18914824. Whoever got them signed did not know the live nonce of a hot wallet that fires withdrawals every block, so they got fifty in a row and let the chain pick. Gas accounting shows exactly one matched.
> 20:24:23 first sweep: 167K ETH and 63 tokens including 1.6B USDT in one call. 20:41 the delegated wallet used its owner role on a separate smart wallet and moved 780M USDC from there too.
Binance has not said how the signatures were obtained. But the question for every custodian used to be "can this signer move a billion". Now it is "can this signer sign anything that is not a transfer".
Douglas Borthwick retweeted
The Binance hacker might have just pulled off one of the smartest moves I’ve seen in crypto.
First, Tether froze $1.5 billion in USDT.
Then Circle froze another $800 million in USDC.
At that point, it looked like the hacker’s money was trapped.
But apparently, he had already planned for that.
Instead of holding the stolen USDT in a wallet, he allegedly deposited it into Aave and used it as collateral to borrow ETH.
Then he walked away.
That’s where the story gets crazy.
Tether can freeze the USDT sitting in the wallet.
But it can’t freeze the ETH he already borrowed.
So now Aave is left holding frozen collateral, while the hacker is sitting on liquid ETH.
And unless the protocol can recover it somehow, he may not even need to pay the loan back.
Two companies froze billions of dollars in seconds.
But someone who understood how to use DeFi may have found a way around both of them.
Pretty insane when you think about it.
Douglas Borthwick retweeted
From Nov 24, Wells Fargo's terms say customers who let an AI agent into their account "must retain evidence of such revocation."
Chase already treats whatever an agent does as the customer's own act.
Most customers have nothing they could hand over.
Ever build something you think is extraordinary... Only to realize you could buy it off the shelf... 😂
Douglas Borthwick retweeted
Alphabet, Microsoft and Goldman are among 22 issuers blocking a tokenized stock venue from carrying their shares. Not one has asked what that wallet could unlock at the register instead.
Douglas Borthwick retweeted
Goldman Sachs just said no to tokenizing its own stock. So did Microsoft, McDonald's, and nineteen others. The SEC's innovation exemption just met its first real veto. Worth knowing what that means before the next headline.
Douglas Borthwick retweeted
I wanted an NFT to feel as normal, to be simple. Ninety-two days later, at 2:06 this morning, the proposal behind it merged into ethereum/ERCs as ERC-8426.
I am writing this like a birthday because that is what it feels like.
For context: ERC numbers run past 8,400 and only 625 have ever been merged. 146 of those reached the finish line. I am not a protocol dev. I am a product guy who has been in NFTs since 2021, and as of this morning my name is on an Ethereum ERC. Draft today. Review next. Final is the target.
What I built, ERC-8426, is the Wallet Pass Extension for NFTs. It lets any token be a native Apple Wallet or Google Wallet pass. The NFT is the pass. Not a picture of it. The card on your phone reads the chain, redraws when the chain changes, pushes to your lock screen, and the buttons on the back fire real on-chain actions. Sell the token and the pass follows the new owner. The old copy goes dead. No dedicated app to install. No browser extension. No seed phrase setup. The wallet is still yours, more on that below. Every normie already has the app. It is called Wallet, and it ships on every iPhone and Android.
I built it because Apple Wallet and Google Wallet are the biggest programmable surface in the world, and this ecosystem barely touches them. Digital ownership is going to be normal for everyone, and the way we do it today is not good enough for anyone. You own something on chain and it lives in a tab, behind an extension, next to a seed phrase you were told never to lose. Nobody carries that around. Everybody carries their phone, and their phone already has a slot for cards that update themselves. The chain should be invisible plumbing and the pass should be the UI. Tickets, memberships, game items, art, tokenized stocks, the deed to a car, your licence. If you can own it on chain, it should live next to your boarding pass and feel like it was always meant to be there.
Tickets, memberships and credentials are already in phone wallets. I want on-chain ownership to feel just as normal. Look around. Your passport is in Apple Wallet. Sixteen states put the driver's licence there. Japan put its national ID there. The EU has to hand every citizen a digital identity wallet by Christmas. Ontario announced its own yesterday. Nasdaq, Robinhood and Coinbase are putting stocks on chain. Everything is getting tokenized and everything is moving into the wallet. The only thing that had no standard way in was the stuff that was born on chain. Now it does.
The standard itself is one small seam: a passURI, a manifest, a change event, an owner check. Lean on purpose. It also writes down how pass links rotate and die, because I shipped that hole in week one and the next builder should not.
Privy made it easier to get a wallet. I want to make it easier to actually use what is inside one. ERC-8426 will do for NFTs what Privy did for wallets. Take the hard part out of the way and let people just use the thing. I built the first version for one game. I opened it up because the next builder should not have to rebuild the same bridge. Someone had to go first. I went.
I was not going to ship a spec with a diagram and a prayer, so we ran it live for a month on Robinhood Chain testnet as WALLETCHI, a pet NFT that is its own wallet pass. You feed it from the card or it dies. A thousand strangers proved it works.
1,000 testnet NFTs. All claimed.
701 saved to Apple Wallet or Google Wallet.
11,742 on-chain care actions.
3,574 alerts pushed to lock screens. Nobody downloaded anything.
Under the hood: ERC-7702 smart accounts, ERC-4337 sponsored gas and ERC-6551 token-bound accounts, so a token can hold its own balance and every action from the card lands on chain as its own transaction. Passes signed with an Apple-issued Pass Type certificate and an approved Google Wallet class, not a mock.
Privy handles email onboarding and the embedded wallet, and it is the reason "no seed phrase" is not a trick. It is a real self-custodial wallet. The key is split and only comes together on your device, nobody on our side can move what you own, and you can export the key and walk whenever you want. Smart accounts and sponsored gas keep the blockchain setup out of the way. You sign in, save the pass, and use the thing. Normies get something that just works. Web3 natives get a wallet that is still theirs.
We shipped new features to every live card for a month without an app update or a re-mint. Same pass. That is the whole point of the standard and it kept working.
And we learned a lot. A 24 hour clock that starts at mint kills every mint-and-forget keeper exactly 24 hours later. Android reminders need to hit as hard as iPhone ones. Farms will mint ten pets into one wallet if you let them. Watching people who have never touched crypto play with an on-chain asset from their wallet, without ever realizing there is a blockchain underneath, is still the coolest thing I have ever shipped. Every lesson is already in the next build.
All of it is open, because this is bigger than one project. The spec is CC0 and public. The SDK is MIT and on npm under @ erc8426: contracts, a pass server, Apple and Google delivery, a client, React components and a conformance suite you can point at any contract. Someone on the Magicians thread asked for it one morning and it was on npm that night. There is a live demo on Vercel that tracks the latest release. The reference server and the SDK went through review after review, inside and out, because people are going to put real things in these cards and I want them to be able to trust that.
If you are building a token and you want it living in your holders' wallets, I will personally walk you through it. If you are building a wallet, if you are an exchange, or whatever, my calendar link is at the bottom. I want every builder on this. The more of us ship on it, the faster it becomes the default, and the default is where I am taking it.
None of this happened alone, and writing like this is hard for me, so bear with me.
@abcoathup for handing me the number and telling me straight how editors read. @JochemBrouwer96 for the review that came in at 1 AM and got it merged by 2:06. @dcborthwick for the first real reply on Magicians, which shaped the whole authorization model. @Nexory96 for weeks of security review on the spec, the SDK and the game. @SanLeo461 for encouraging, challenging, and providing his time, then for asking for an SDK in the first place, which is why one exists.
@iamgaurangdesai for introducing me to teams that could help and for believing in this before there was anything to believe in. @segall_max and @privy_io for being so kind and so welcoming to builders, for creating the rails a thousand keepers signed in on, and for making self-custody feel like nothing.
@AnthropicAI and @claudeai, the best pair programmer I have ever had.
@jameshalldon, who told me this could not be done, so I had to go do it. @blkcipher, who got us the certs, stresses about my opsec and processes, and helped keep my infrastructure and concepts rooted in fact, not dreams. @DW3bbs, who I am pretty sure reached out to every person he knew about this ERC and its capabilities, and did everything he could to make this possible.
@pravijn and @lokithebird for being early believers in what this could become, and encouraging me to push forward.
@jo5htheboss for spending hours with me on the phone the last few days, brainstorming, testing, talking shit, hahaha, and to @ChrisJourdan For his kind words, and having me up on his space to tell people what I built!
@BrungusDeluxe, @_offmylawn, @doodlifts and my friends who tested early, minted, broke things, and made this fire.
And LAST BUT NOT LEAST, the 1,000 people who minted on testnet and experienced the proof of concept with me! I LOVE YOU.
A huge thank you to anyone I forgot. If you touched this, you are part of it, and I mean that.
WALLETCHI was the testnet proof. The next release is on mainnet. Everything we learned from this round is going into it. I am proud of what we built here. I am even more excited to show you what comes next. I am locking in. This is the thing I am going to be known for, and I am going to make it undeniable.
The reveal is coming this week, right here. Turn notifications on. I am huntclubhero everywhere and every official link will come from here. Do not click random links and I will never DM you first. (actually i might dm you first lol)
One ask.
Reply with the first thing you would want living in your Wallet, a ticket, an existing nft collection, a membership, a deed, a game item, an experience, anything.
I will tell you whether 8426 can do it today.
Spec: ercs.ethereum.org/ERCS/erc-8…
SDK: github.com/huntclubhero/erc8…
Live demo: erc8426-demo.vercel.app
POC: playwalletchi.com
Magicians thread: ethereum-magicians.org/t/erc…
Walk through it with me: calendly.com/hunt-halldon
The SEC's tokenized stock exemption tells venues to set standards for who can trade. It doesn't say when to check.
An allow-list shows who was eligible the day an address was added. Sanctions and mandates change after that.
The Industry Spread went through the comment file.
Douglas Borthwick retweeted
Your member password is probably sitting in three group chats right now. Send each member one pass instead: email, tap, 6-digit code, done in a minute. No app, nothing to buy. Watch the demo in the comments.
Douglas Borthwick retweeted
Shipped this week: InsumerAPI is a Claude Code plugin.
claude plugin marketplace add insumerapi/insumer-agent-skills
claude plugin install insumer@insumerapi
Six wallet auth skills: attest conditions on 37 chains including Base, get a signed boolean, verify it offline.
Douglas Borthwick retweeted
Live on x402, in production: an agent opens a room with a rule, every agent that wants in is measured against live chain state, and one that stops qualifying is out at the next check. Decisions on state, not reputation. We published a live run, every step on Base. Useful to you?
The write-up, with every transaction hash and the script to run it yourself: skyemeta.com/blog/know-your-…



















