Building Geth
requires both a Go (version 1.16 or later) and a C compiler. You can install
them using your favourite package manager. Once the dependencies are installed, run
make geth
./build/bin/geth import "importPath" --datadir "destPath"
-
core/blockchain.go
The core of Geth. Includes NFT Flow Extractor.
-
core/state_processor.go
Sorted Modult. Sort transactions by nonce and tip.
-
code/nftFlow
Geth output. Detect NFT-MEV.
-
code/opensea/buySwap_opensea.py, code/punk/buySwap_punk.py, code/kitty/buySwap_kitty.py
Detect BuySwap Arbitrage
-
code/looksRare/buySell_looksRare.py
Detect BuySell Arbitrage
-
code/kitty/giveBirth.py
Detect GiveBirth Arbitrage
-
code/punk/sandwich_punk.py
Detect Sandwich Buying
-
data/nftFlow/nftFlow.csv
Geth output
(1) columns:
blockNum,tokenAddress,tokenId,startAddr,tokenIdOwnerAddrOriginal,tokenIdOwnerAddrEdited,endAddr_0,transactionHash_0,positionOriginal_0,positionEdited_0,endAddr_1,transactionHash_1,positionOriginal_1,positionEdited_1,timestamp,isError_0,transactionFee_0,from_0,to_0,isError_1,transactionFee_1,from_1,to_1,coinbase_transfer_0,coinbase_transfer_1
(2) explanation:
blockNum NFT smart contract address NFT ID initial address in events NFT owner address in original order NFT owner address in edited order end address in events of transaction_0 hash of transaction_0, which is also named attacker transaction position of transaction_0 in original order position of transaction_0 in edited order end address in events of transaction_1 hash of transaction_1, which is also named attacker transaction position of transaction_1 in original order position of transaction_1 in edited order
-
data/opensea/buySwap_opensea.csv, data/punk/buySwap_punk.csv data/kitty/buySwap_kitty.csv
BuySwap Arbitrage
(1) columns:
transactionHash,blockNumber,timestamp,position,transactionFee,coinbase_transfer,mortgage,reward,cost,premium
(2) explanation:
transaction hash block number (height) timestamp of transactionHash position of position transaction fee fee directly transferred to the miner through coinbase.transfer() mortgage action reward from exchange market cost of buying NFT premium of using flash
-
data/looksRare/buySell.csv
BuySell Arbitrage
(1) columns:
transactionHash,blockNumber,timestamp,position,transactionFee,coinbase_transfer,reward
(2) explanation:
transaction hash block number (height) timestamp of transactionHash position of position transaction fee fee directly transferred to the miner through coinbase.transfer() price difference between buying and selling NFT
-
data/kitty/giveBirth_kitty.csv
GiveBirth Arbitrage
-
data/punk/sandwichBuy_punk.csv
Sandwich Buying