Stelo Profile picture
Jan 26 12 tweets 6 min read
1/ OpenSea's seaport is a versatile contract that can be used for transfers, swaps, bids, sales, and more.

But it has a dark side.

As @kevinrose found out the hard way, Seaport lets attackers steal ALL your NFTs.

An illustrated explainer and how to protect yourself 👇
2/ It starts when you set an "approval" to Seaport when listing an NFT for sale.

These approvals are harmless by themselves and are even necessary to sell on OpenSea. But it's like leaving your front door unlocked.

So how did attackers enter Kevin’s house and steal everything?
3/ Kevin landed on a phishing website that asked him to sign a gasless signature.

On the surface it looked like any other Seaport listing - one you'd use to list an NFT for sale.

So how'd it steal all of Kevin's NFTs? Well, that's the thing about Seaport listings...
4/ They have two components - an offer and a consideration.

The offer describes what you're listing for sale.

The consideration describes what you want in exchange for the offer, usually some ETH or WETH.

Simple enough. But here's where things get interesting...
5/ Considerations can be sent to ANYONE!

This is used, for example, to send royalties to the creator and platform fees to OpenSea.

But wait, it gets even more interesting..
6/ Considerations can be used to send ANY asset… including… the assets in the offer themselves.

If that sounds confusing, it’s because it is! Let’s explain it with a diagram.
7/ Okay, so back to Kevin.

At some point in the past, Kevin set approvals for his Autoglyphs, Squiggles, etc. to OpenSea.

Then, he landed on a phishing website and signed a Seaport signature that looked like this:
8/ The attacker submitted this signature in a transaction to the Seaport contract.

Since Seaport already had approvals to Kevin’s NFTs, it was able to transfer them all to the recipient specified in the considerations.

Here’s the transaction: etherscan.io/tx/0x4ae899024…
9/ It sucks, but that’s the downside of Seaport.

But all hope is not lost - there are tools and best practices that you can use to avoid ending up in the same situation as Kevin.
10/ Here are three things you can do today to protect yourself:

1) Never sign messages or transactions from wallets that hold NFTs

2) Revoke open approvals using @RevokeCash

3) Install an extension that analyzes transactions proactively like @stelolabs or @PocketUniverseZ
11/ We reverse-engineered the signature that @kevinrose signed and passed it through Stelo.

If @kevinrose had Stelo this is what he would have seen:
12/ Here are some great people to follow to stay on top of web3 security best practices: @Wii_Mee @Feld4014 @0xQuit @zachxbt

And here's a link to download Stelo: stelolabs.com/download

Stay safe!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Stelo

Stelo Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @stelolabs

Sep 15, 2022
Today we're excited to share Stelo - a tool that protects you from web3 phishing and scams.

Stelo explains web3 transactions in plain English before they hit your wallet and alerts you if they look malicious.

We built Stelo so you can explore web3 with peace of mind.
Web3 can be a scary place.

In the last year alone over $100m of NFTs have been stolen.

Wallets don't help you understand what you're signing.

Even with a hardware wallet, you can still sign a malicious transaction and lose your assets.
Stelo is a browser extension that works alongside the wallet you already use.

It never has access to your private key or seed phrase.

Stelo simulates, interprets, and enriches transactions before they hit your wallet so you never have to blind-sign again.
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(