A playground for onchain financialized ideas. Latest project: https://xitter.cf/t.co/uw6rGhHzEq

Joined December 2024
Fake World Assets is now live™ A new way to buy and sell NFTs. fwa(dot)fun
76
49
49
662
298,832
TokenWorks™ retweeted
gm gm here we go again. This morning somebody abused a bug in ApeStr to swap 21 apes for 21 ApeStr-owned apes. This was a known exploit (see the SQUIGSTR exploit from ~1 year ago) but incentive to run it was never there. The bug lies in buyTargetNFT: it forces a strategy contract to send arbitrary calldata to any target. Afterwards it checks only three things: its BAYC balance rose by exactly 1, it owns expectedId, and "cost" equals its ETH balance drop. This was patched in later NFTStrategy releases, but affects the original 6 (PunkSTR not affected). The attacker bought 2 BAYC to use as bait. Using a helper contract, they prep the strategy contract by selling an ape to it for 5 wei and immediately buying it back for 6 wei. That primes the contract's ethToTwap with 6 wei. They then call buyTargetNFT and pass the calldata to transfer an ape from ApeSTR to the helper using safeTransferFrom. This in turn hands execution over to the helper (remember, safeTransferFrom is NOT safe), which transfer TWO apes back to ApeSTR to satisfy the balance check (1 out, 2 in leaves ApeSTR at +1). It also calls processTokenTwap, which converts the 6 wei, setting the cost of one of the newly deposited apes to 7 wei (6 * 120%). The helper contract buys it back in the same tx. example flow: - Attacker has BAYC #1 and #2. ApeSTR has BAYC #3. - Attacker "sells" BAYC #1 to ApeSTR for 6 wei and sends BAYC #2 to it for free, but steals BAYC #3 in the process. - ApeSTR relists BAYC #1 for 7 wei, which the attacker buys. - Attacker now has BAYC #1 and BAYC #3, and ApeSTR has BAYC #2 (but doesn't even know it). The attacker ran this for all 21 BAYC in the ApeSTR contract, resulting in them being able to claim packs for all of those BAYC. Total net proceeds: $14k. This previously affected SQUIGSTR because of their shared contract - any art blocks NFT sent in would satisfy the balance check, allowing the attacker to drain the contract of squiggles in exchange for basically valueless art blocks NFTs. It was known to be possible on ApeSTR as well, so I guess it was just a matter of time before we saw it happen. The unfortunate consequence is that now, ApeSTR has 21 apes that it is completely unaware of, so they cannot be bought from the contract. And 210 attacker-owned mudwater packs were dumped into bids.
81
36
21
303
47,493
TokenWorks™ retweeted
Looking further, it seems the exploit was fundamentally the same: a reentrancy attack allowing NFTs to be swapped that we patched in future releases, but it appears to be a worse outcome. In the process they seem to have re-bought the same NFT, clearing out the listing price. I think this bricked the NFTs held by the Strategy since there is no longer a listing for them. I also think this can be executed on the other 6 strategies that had this bug. This was only profitable on the APESTR contract because of the Mudwater pack claim, but there's nothing stopping someone from being unprofitable and malicious to brick the other 6 (or if there is a profitable claim in the future). NFTs getting locked in the contract is a horrible outcome. I'm glad that this didn't happen a year ago when there was more volume on these 7 tokens, but it's heartbreaking that the issue ended up being even worse. Let me know if you have any questions below and will do my best to answer.
So much time has passed that people forgot about this post, so re-surfacing after someone swapped apes out to claim Mudwater Packs TL;DR: the first 7 Strategies (minus Punks) had a reentrancy bug allowing NFTs to be swapped out, basically creating a call option.
30
7
10
79
32,594
TokenWorks™ retweeted
I've disabled new Strategy launches for the foreseeable future. I don't think launches every day with zero volume helps the ecosystem, and it's better to allow communities that want the tech to launch themselves and thrive. We've refunded all 14 pending requests. More below.
15
5
4
168
14,927
TokenWorks™ retweeted
30
51
35
464
68,297
TokenWorks™ retweeted
I’m proud to announce that we’ve donated ownership of the PunkStrategy contract to the NODE Foundation. I view the contracts we create at TokenWorks as art. NODE is already the home of the CryptoPunks IP, and I think they’re the right people to carry this idea forward. Being able to donate PunkStrategy to them means a lot to me. With this transfer, TokenWorks’ share of trading fees will now go to NODE, giving them a new revenue stream to support artists, exhibitions, and more. We think this is the best home for the project. PunkStrategy runs autonomously and is designed to keep running for as long as Ethereum does. At the time of writing, the contract holds 37 Punks, which remain governed by its rules. The owner can only do three things: * Set the trading fee on the hook between 1% and 10% * Set the relisting multiplier for newly purchased Punks between 1.1x and 10x * Claim the owner’s share of trading fees. We’ll continue tweeting about PunkStrategy’s buys and sells and supporting the project. Both TokenWorks and I personally remain significant holders of PNKSTR. The Token Works
91
52
14
524
21,129
If you're in Marfa, we're giving 2 free FWA purchases to 5 teams that win at Beer Pong. Bring your A-game.
Watching @token_works fly has been a highlight of the last few years. So happy to be aligned with Adam in spirit, in goals, in morals. He is the fucking best to do it. This year he’s supporting Marfa (again) and sponsoring the Birds Beer Garden. Adam is also donating 10 FWA spins to the first 10 winners. Back to building these tables. Thank you @Rhynotic
13
2
63
6,486
We use Railway for all of our indexers and keepers. The keeper will remain offline until more information of the Railway hack is released. We've moved funds out of our keeper wallet (1.17Ξ) in the meantime.
Railway is compromised and reports are that attackers are actively draining keys. Rotate any API keys stored in railway immediately. Deployments are down so unfortunately this means many deployments will wind up broken, but it is better than the alternative. Internet D-Day
10
10
1
104
14,096
TokenWorks™ retweeted
Anyone in the TokenWorks playground can start launching their ideas via the IMD swarm Our first idea: Mutually Assured Destruction (MAD). Will prompt a site once it builds (no trading yet). If everything works, anyone will be able to launch their own Playground tomorrow
23
19
3
117
12,855
Our FWA keeper runs on Railway, and has been down for a few hours. Railway is starting to come back online and the keeper will come back online once they're back up. The purchase queue can still be processed manually by anyone with a transaction on the site.
2
1
43
5,911
We’ve reinstated the 10% of protocol fees that were going to daily purchasers as ethereum:0xa0df17b5ac76ababa36e1450e2cbcd18a620c845 Protocol fees are now split as follows: 70% buy-and-burn ethereum:0xa0df17b5ac76ababa36e1450e2cbcd18a620c845, 20% to stakers, and 10% to daily purchasers
13
11
1
90
7,129
TokenWorks™ retweeted
CreditStrategy has sold 3880 NFTs for 124.876 ETH, realizing +20.813 ETH profit for the protocol. 32.3% of the ethereum:0x8e607209899b5d12bd3167a6cd0e8e11feb053d6 supply has been burned, and it still holds 10700 Credits The Token Works
17
9
4
112
13,449
6% of the FWA token supply has been burned from protocol usage.
4% of the FWA token supply has been burned from protocol usage.
7
10
1
84
7,022
TokenWorks™ retweeted
Watching @token_works fly has been a highlight of the last few years. So happy to be aligned with Adam in spirit, in goals, in morals. He is the fucking best to do it. This year he’s supporting Marfa (again) and sponsoring the Birds Beer Garden. Adam is also donating 10 FWA spins to the first 10 winners. Back to building these tables. Thank you @Rhynotic
10
7
1
82
6,791
TokenWorks™ retweeted
CryptoPunk #3190 purchased with 1.00 ETH backing ($2,427 USD) by 0x184b...179a from 0xb924...3ad1 fwa.fun/nft/55
11
19
12
107
13,206
TokenWorks™ retweeted
You can now easily onboard your friends to Ethereum. Enter their phone number and pre-pay for an NFT from Fake World Assets. They login with their phone number, we sponsor their gas, and they get an NFT!
27
26
13
215
20,220
The first round of voting is complete. Holders of $FWA have decided to: - Add Moonbirds - Add Claus - Remove Wolf Game Farmers All three changes have permissionlessly been applied to the pool automatically. Over 25% of the $FWA supply is currently staked and voting.
15
18
3
161
13,337
TokenWorks™ retweeted
Public deployment of Community Pools is now live! Anyone can now spin up their own branded pool to sell their assets Here's a refresher of how they work:
🤖 Made with AI
14
19
3
134
8,945