NFT guide

How to track NFT sales

To track NFT sales on Telegram, you set up a rule that messages you when an order is filled, so you don't have to keep a marketplace tab open. Alerts on Chain can do this in two ways: by watching Seaport, the settlement contract behind OpenSea and compatible marketplaces, or by watching the collection's own contract for tokens changing hands. This guide covers both, what each alert shows and doesn't, and how to keep the event count under control.

Just want the alert? See NFT sales alerts

6 min read

Two ways to see sales

Every Seaport sale emits an OrderFulfilled event from the Seaport contract, and moves the NFT, which emits a transfer on the collection's contract. You can alert on either one.

  • NFT sales template: watches the Seaport contract for OrderFulfilled. It only fires for filled orders, so plain transfers between wallets don't show up. Seaport settles sales for every collection, so you narrow it with conditions.
  • NFT activity template: watches one collection's contract for every transfer. Sales show up as a token moving from the seller to the buyer, alongside mints and ordinary transfers. It only sees that one collection.

What a Seaport sale alert looks like

Seaport's event has no dedicated wording yet, so the headline reads "Order fulfilled" and the decoded arguments follow as lines: the order hash, the offerer, the zone and the recipient. For a filled listing, the offerer is the seller and the recipient is the buyer; for an accepted offer, the roles are the other way around.

The alert does not include the sale price. Seaport records what was paid inside the order's items, and pricing (sale prices, floor prices, USD values) is coming with Premium. The "View on Etherscan" link opens the transaction, where you can see the NFT and the payment.

Example alert
NFTExample

Order fulfilled

  • Order hash: 0x8c1b2e3f…
  • Offerer: 0x3f5c…e0b7
  • Zone: 0x0000…0000
  • Recipient: 0x9f2c…9a71
  • +2 more fields

Contract Seaport 1.6 (0x0000…b395) · Rule: NFT sales

Ethereum · View on Etherscan09:41

Find the right Seaport contract

Seaport 1.6 is in the contract directory at 0x0000000000000068f116a894984e2db1123eb395, so you can pick it by name in the address field. Marketplaces move to newer Seaport versions over time, so check which one your collection's sales go through before you create the rule.

Open a recent sale of the collection on Etherscan, for example from the token's page or from the transaction link on a marketplace's activity tab, and read the "Interacted With (To)" field. That is the contract to watch. If a marketplace settles sales through its own exchange contract instead of Seaport, it won't emit OrderFulfilled; watch that contract with its own event instead, pasting the event signature.

Narrow the alerts to the sales you care about

Open the rule and add conditions. All of them must match for an alert to be sent.

  • offerer is one of your wallets: alerts when one of your listings is bought.
  • recipient is a wallet you follow: alerts when that wallet buys through a listing.
  • Use "is one of" to put several addresses in one condition instead of creating one rule each.
  • For one collection: instead of the template's event, paste Seaport's OrderFulfilled signature with the item fields named, and add the condition offer[].token is the collection's contract. Accepted offers carry the NFT on the other side of the order, so add a second rule with consideration[].token to catch those too.

Mind the volume

Seaport is one of the busiest contracts on Ethereum. A rule on it sees every filled order, and an event is one transaction seen on one watched address. It counts once, whether it matches none, one or several of your rules and however many channels it fans out to. An alert is sent only when a rule matches. Conditions decide which sales alert you; they don't reduce what is counted.

In practice, a Seaport rule would use up the Beta plan's 100 monthly events quickly and suits a paid tier (from 5,000 events a month). When events run out, alerts pause until the period resets. If you only care about one collection, the collection-contract approach below only counts that collection's transfers.

Collection transfers as a sales feed

Point the NFT activity template at the collection's contract and every sale arrives as the token moving from the seller to the buyer. The alert doesn't say whether a transfer was a sale, a gift or a move between someone's own wallets, so treat it as a feed of everything that changes hands and open the Etherscan link when a transfer looks interesting.

This is the cheaper option for a single collection, and it also catches sales on marketplaces that don't use Seaport, because every transfer of the token is emitted by the collection's contract.

Example alert
NFTExample

NFT #4412 moved from 0x3f5c…e0b7 to 0x9f2c…9a71

Contract 0x5af0…7a3c · Rule: Collection activity

Ethereum · View on Etherscan09:41

Limits to know

Sales alerts are about on-chain settlement, nothing more. In particular:

  • No sale price, floor price or USD value in the alert. They are coming with Premium.
  • Listings and bids are signed off-chain, so they don't produce alerts. Only filled orders do.
  • Ethereum mainnet only. More networks are planned, but none is live yet.
  • Telegram is the only live channel. Discord, Slack, email and webhooks are coming.
  • Alerts arrive within seconds of the transaction being confirmed. Pending (mempool) transactions are not alerted.

Set it up step by step

From sign-in to your first alert, in the actual dashboard.

  1. 1
    Sign in at alertsonchain.com with Google or with your wallet. A wallet sign-in is a signed message, not a transaction, so it costs no gas.
  2. 2
    Open the Channels tab and connect Telegram: start a chat with @alertsonchain_com_bot, send /start, and paste the 8-character code it replies with.
  3. 3
    Open the NFT sales template, from the button on this page or from the template gallery on the Rules tab.
  4. 4
    Paste the Seaport contract your collection's recent sales went through (check "Interacted With (To)" on Etherscan) as the source.
  5. 5
    Open the "NFT sales (Seaport)" rule and add a condition, such as offerer is your wallet, so you only hear about the sales you care about.
  6. 6
    Pick the Telegram chat the rule sends to.
  7. Click Create rule. The rule is active straight away, and the next matching transaction sends a Telegram message.

Frequently asked questions

  • Does the sales alert show how much the NFT sold for?

    No. Alerts don't include sale prices, floor prices or USD values yet; they are coming with Premium. The Etherscan link in every alert shows the payment.

  • Does this work for OpenSea?

    Yes, for sales settled through Seaport, the contract OpenSea and compatible marketplaces use. Check which Seaport version a recent sale used and watch that address.

  • Can I get alerts for new listings or bids?

    No. Listings and bids are signed off-chain and only reach the chain when an order is filled, so there is no transaction to alert on until the sale happens.

  • How do I track the sales of one collection only?

    Either watch the collection's contract with the NFT activity template, which alerts on every transfer including sales, or watch Seaport and add an offer[].token condition with the collection's address using Seaport's `OrderFulfilled` signature with named fields.