Is it possible to detect inside contract that the nft was sold through opensea or that it was a simple transfer? Are there any methods without oracles?

1 Answer 1


A quick idea.

When calling transferFrom, there are 3 variables of interest: msg.sender, _from and _to.

If _from == msg.sender or _to == msg.sender, you can assume it is a simple transfer.

If they are different, you can assume that msg.sender is a third-party that is handling the transfer on behalf of them. Perhaps Opensea.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.