Event Types
Looking for sale events? All transfer event types also include sale data
Entity | Event | Event Type | Description | Event Schema |
---|---|---|---|---|
wallet | inbound_transfer | wallet.inbound_transfer | Wallet inbound transfer to wallet addresses | Transfer Model |
wallet | outbound_transfer | wallet.outbound_transfer | Wallet outbound transfer from wallet addresses | Transfer Model |
nft | transfer | nft.transfer | NFT transfer for nft_ids | Transfer Model |
contract | transfer | contract.transfer | Contract transfers including mints/burns | Transfer Model |
contract | nft_metadata_update | contract.nft_metadata_update | NFT IDs with metadata updates on a specified contract. | a subset of the NFT Model* |
chain | nft_metadata_update | chain.nft_metadata_update | NFT IDs with metadata updates on a specified chain | a subset of the NFT Model * |
collection | floor_price_update | collection.floor_price_update | Collection floor price updates on marketplaces | a subset of the Collection model containing floor price Floor price models |
collection | transfer | collection.transfer | NFTs transfers including mints/burns in a collection | Transfer Model |
Event Payload
Each webhook will be a POST request at a URL specified during webhook creation.
Example: You will receive the following wallet.inbound_transfer
event message if your webhook is subscribed for wallet.inbound_transfer with:
wallet_address
:0xfa6E0aDDF68267b8b6fF2dA55Ce01a53Fad6D8e2
chain
:ethereum
The payload for transfer messages are formatted according to the Transfer Model which includes sale_details
wallet.inbound_transfer
{
"type": "wallet.inbound_transfer",
"data": {
"nft_id": "ethereum.0xc0cb81c1f89ab0873653f67eea42652f13cd8416.4963",
"chain": "ethereum",
"contract_address": "0xc0Cb81c1F89Ab0873653f67EEa42652F13CD8416",
"token_id": "4963",
"from_address": "0x951038bB372D16180c0AFB0f46aB283059154004",
"to_address": "0xfa6E0aDDF68267b8b6fF2dA55Ce01a53Fad6D8e2",
"quantity": 1,
"timestamp": "2021-11-01T16:42:15Z",
"block_number": 13532274,
"block_hash": "0x935a670596d3b6ad924a5ea4ef11487754b596a5a1fa1586cfb9f71685e779eb",
"transaction": "0x06cf3ec933480aa9323fb0a3e26f88bd35af334adb692609fa56d8e7fb96b786",
"log_index": 295,
"batch_transfer_index": 0,
"sale_details": {
"marketplace_name": "OpenSea",
"is_bundle_sale": false,
"payment_token": {
"payment_token_id": "ethereum.native",
"name": "Ether",
"symbol": "ETH",
"address": null,
"decimals": 18
},
"unit_price": 29900000000000000,
"total_price": 29900000000000000
}
}
}
contract.transfer
The payload for contract.transfer
messages are formatting as a subset of the Transfer Model
{
"data": {
"batch_transfer_index": 0,
"block_hash": "0x28f60b269f1e2ca3ef51c04f40f0d0fc9733c3e4e5e5fe1198a79e5d7ca5b76d",
"block_number": 16484391,
"chain": "ethereum",
"collection_id": "9ba9674e66333b1f224d7747e2c21e2b",
"contract_address": "0x4fEA85cd2De7c4FCa058769C350b9e0589945022",
"from_address": null,
"log_index": 240,
"nft_id": "ethereum.0x4fea85cd2de7c4fca058769c350b9e0589945022.475",
"quantity": 1,
"sale_details": null,
"timestamp": "2023-01-25 14:20:35+00:00",
"to_address": "0x9a89aA7b67ebAbA68141fb92eD5253cC3F197F1C",
"token_id": "475",
"transaction": "0x61b7ceea7fe5c246c530b5b54832c407e86c0d9d5e105632975890580159f201"
},
"type": "contract.transfer"
}
collection.transfer
The payload for collection.transfer
messages are formatting as a subset of the Transfer Model
{
"data": {
"batch_transfer_index": 0,
"block_hash": "0x28f60b269f1e2ca3ef51c04f40f0d0fc9733c3e4e5e5fe1198a79e5d7ca5b76d",
"block_number": 16484391,
"chain": "ethereum",
"collection_id": "9ba9674e66333b1f224d7747e2c21e2b",
"contract_address": "0x4fEA85cd2De7c4FCa058769C350b9e0589945022",
"from_address": null,
"log_index": 240,
"nft_id": "ethereum.0x4fea85cd2de7c4fca058769c350b9e0589945022.475",
"quantity": 1,
"sale_details": null,
"timestamp": "2023-01-25 14:20:35+00:00",
"to_address": "0x9a89aA7b67ebAbA68141fb92eD5253cC3F197F1C",
"token_id": "475",
"transaction": "0x61b7ceea7fe5c246c530b5b54832c407e86c0d9d5e105632975890580159f201"
},
"type": "collection.transfer"
}
nft_metadata_update
The payload for nft_metadata_update
messages are formatting as a subset of the NFT Model*
{
"type": "chain.nft_metadata_update",
"nfts": [
{
"nft_id": "ethereum.0x8943c7bac1914c9a7aba750bf2b6b09fd21037e0.5903",
"name": "#5903",
"description": "Lazy Lions",
"image_url": "https://cdn.simplehash.com/assets/ab011a63a526ba533a868fe361b69004a70fcceb2b0c1c1bb3f6d92dbab95039.jpg",
"video_url": null,
"audio_url": null,
"model_url": null,
"previews": {
"image_small_url": "https://lh3.googleusercontent.com/9MwgePRAM6ZteqhFiJr5nBJw16ptq7zCgZTlw8RwNJJO67XfyF945KL7RP4GmdDuWXcRsYo1yoDjYYQoveOpGYFKm3DG5b7nyw=s250",
"image_medium_url": "https://lh3.googleusercontent.com/9MwgePRAM6ZteqhFiJr5nBJw16ptq7zCgZTlw8RwNJJO67XfyF945KL7RP4GmdDuWXcRsYo1yoDjYYQoveOpGYFKm3DG5b7nyw",
"image_large_url": "https://lh3.googleusercontent.com/9MwgePRAM6ZteqhFiJr5nBJw16ptq7zCgZTlw8RwNJJO67XfyF945KL7RP4GmdDuWXcRsYo1yoDjYYQoveOpGYFKm3DG5b7nyw=s1000",
"image_opengraph_url": "https://lh3.googleusercontent.com/9MwgePRAM6ZteqhFiJr5nBJw16ptq7zCgZTlw8RwNJJO67XfyF945KL7RP4GmdDuWXcRsYo1yoDjYYQoveOpGYFKm3DG5b7nyw=k-w1200-s2400-rj",
"blurhash": "USE.IOjb0ik9XKWBV}t6x[ofM|[email protected]|aeW;of"
},
"extra_metadata": {
"attributes": [
{
"trait_type": "Background",
"value": "Iron"
},
{
"trait_type": "Body",
"value": "Black"
},
{
"trait_type": "Bodygear",
"value": "Purple Fur Coat"
},
{
"trait_type": "Earring",
"value": "Nothing"
},
{
"trait_type": "Eyes",
"value": "Stoner"
},
{
"trait_type": "Headgear",
"value": "Bucket Hat"
},
{
"trait_type": "Mane",
"value": "Brown"
},
{
"trait_type": "Mouth",
"value": "Yelling"
}
],
"image_original_url": "ipfs://QmVHxVJeJ8HseTjnhke29irvaQvehjgLqVTJ3R1UUtZKR6",
"animation_original_url": null
}
}
]
}
nft_metadata_update events are only sent for existing NFTs that changed. New NFTs do not trigger an nft_metadata_update message.
* Included fields from the NFT model:
- nft_id
- name
- description
- image_url
- video_url
- audio_url
- model_url
- previews
- extra_metadata
floor_price_update
The payload for floor_price_update
messages are formatting as a subset of the Collection model
{
"type": "collection.floor_price_update",
"data": [
{
"collection_id": "f650a50db4caf3bbf7adc1ff3be6613d",
"floor_price": {
"marketplace_id": "opensea",
"payment_token": {
"address": null,
"decimals": 18,
"name": "Ether",
"payment_token_id": "ethereum.native",
"symbol": "ETH"
},
"value": 52000000000000000
}
}
]
}
To indicate that a webhook message has been processed, return a HTTP 2XX status code (200-299) to the webhook message within a reasonable time-frame (15 seconds).