So we built a Python provenance engine that reconstructs NFT authenticity from transfer history and contract state.
The pipeline is simple:
Pull full ERC-721 transfer history
Rebuild the ownership chain chronologically
Detect structural transfer patterns
Produce a weighted authenticity score
Example transfer reconstruction:
def get_nft_transfers(contract_address, token_id, chain='ethereum'): results = etherscan_request( CHAINS[chain]['id'], "account", "tokennfttx", contractaddress=contract_address, sort="asc" )
return [
{
"from": tx["from"],
"to": tx["to"],
"block": int(tx["blockNumber"]),
"timestamp": int(tx["timeStamp"])
}
for tx in results
if tx.get("tokenID") == str(token_id)
]
From there we analyze:Mint origin legitimacy
Contract source verification
Circular wash loops (A → B → A)
Transfer clustering in short block intervals
Ownership concentration
Counterfeit collections tend to show shallow ownership graphs and tight flip clustering. Mature collections show distributed, temporally organic patterns.
Everything is derived deterministically from on-chain data. No marketplace APIs, no whitelists.
Curious how others would approach wash-trading detection — graph clustering? probabilistic models? Markov processes?