Let’s create a stream that monitors all the NFT contract transfers.
This stream uses the listen to all addresses feature that is available only on Business and Enterprise plans.
There will be a few NFT contracts that don’t follow the standards like CryptoPunks that have a different ABI, and you will not receive webhook requests from those non-standard NFT contracts.
Programmatically
const NFT_transfer_ABI = [{ "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": true, "name": "tokenId", "type": "uint256" }, ], "name": "transfer", "type": "event",}]; // valid abi of the eventconst options = { chains: [EvmChain.ETHEREUM], // list of blockchains to monitor description: "monitor all NFT transfers", // your description tag: "NFT_transfers", // give it a tag abi: NFT_transfer_ABI, includeContractLogs: true, allAddresses: true, topic0: ["Transfer(address,address,uint256)"], // topic of the event webhookUrl: "https://YOUR_WEBHOOK_URL", // webhook url to receive events,};const stream = await Moralis.Streams.add(options);
Via WebUI
Create a new Stream
Fill out the form
Switch on Event Emittance and Add the Abi and select the topic
Select Listen to all addresses and Contract interactions (logs)
Click on create stream button
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Moralis","colors":{"primary":"#0f7fff","light":"#0f7fff","dark":"#0f7fff"},"logo":{"light":"https://mintcdn.com/moralis/GWFD1O4mIZzaStPO/logo/light.png?fit=max\u0026auto=format\u0026n=GWFD1O4mIZzaStPO\u0026q=85\u0026s=66e6da0d81943c4679e0ba921850201d","dark":"https://mintcdn.com/moralis/GWFD1O4mIZzaStPO/logo/dark.png?fit=max\u0026auto=format\u0026n=GWFD1O4mIZzaStPO\u0026q=85\u0026s=39f72ccb7cd088ee041f49d8b76acc8c"},"favicon":"https://mintcdn.com/moralis/UBURjGZyEKeu353P/favicon.png?fit=max\u0026auto=format\u0026n=UBURjGZyEKeu353P\u0026q=85\u0026s=cd5557efb5310bf231b9dede4be7ca4d","appearance":{"default":"light"},"background":{"color":{"dark":"#191B19"}},"navbar":{"links":[{"href":"https://moralis.com/enterprise/","label":"Enterprise"},{"href":"https://status.moralis.io/","label":"Status"}],"primary":{"type":"button","label":"Try Now","href":"https://admin.moralis.com/register"}},"footer":{"socials":{"youtube":"https://www.youtube.com/channel/UCgWS9Q3P5AxCWyQLT2kQhBw","x":"https://x.com/moralisdevs","linkedin":"https://www.linkedin.com/company/moralisweb3","discord":"https://discord.gg/s3UfDvXQTc","website":"https://moralis.com/"},"links":[{"header":"AI","items":[{"label":"LLMs.txt","href":"https://docs.moralis.com/llms.txt"},{"label":"Full LLMs.txt","href":"https://docs.moralis.com/llms-full.txt"}]}]},"fonts":{"family":"sw","source":"https://mintlify-assets.b-cdn.net/fonts/sw.woff2","format":"woff2"},"contextual":{"options":["chatgpt","claude","copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"moralis","hasAudioNarration":false,"actualSubdomain":"moralis","customDomains":["docs.moralis.com"],"gitSource":{"type":"github","owner":"novnski","repo":"docs-v2","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aec67aca93f970ede8ce627","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"RPC Nodes","count":560},{"language":"default","tag":"Data API","count":204},{"language":"default","tag":"EVM API","count":96},{"language":"default","tag":"Streams","count":96},{"language":"default","tag":"Get Started","count":67},{"language":"default","tag":"Tutorials \u0026 Guides","count":62},{"language":"default","tag":"Data Feeds","count":50},{"language":"default","tag":"Token API","count":49},{"language":"default","tag":"Wallet API","count":43},{"language":"default","tag":"Solana API","count":32}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time","slug":"/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time","pageMetadata":{"title":"How to Track NFT Transfers in Real Time","description":null,"href":"/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Let’s create a stream that monitors all the NFT contract transfers.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`This stream uses the listen to all addresses feature that is available only on Business and Enterprise plans.`})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`There will be a few NFT contracts that don’t follow the standards like CryptoPunks that have a different ABI, and you will not receive webhook requests from those non-standard NFT contracts.`})}),`\n`,_jsx(Heading,{level:`2`,id:`programmatically`,children:`Programmatically`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`23`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`23`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` NFT_transfer_ABI`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"anonymous\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"inputs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"indexed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"from\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"address\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"indexed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"to\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"address\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"indexed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"tokenId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"uint256\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"transfer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"event\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}]; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// valid abi of the event`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` options`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` chains:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`EvmChain`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`ETHEREUM`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// list of blockchains to monitor`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` description:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"monitor all NFT transfers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// your description`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` tag:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"NFT_transfers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// give it a tag`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` abi:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` NFT_transfer_ABI`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` includeContractLogs:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` allAddresses:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` topic0:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Transfer(address,address,uint256)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// topic of the event`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` webhookUrl:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://YOUR_WEBHOOK_URL\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// webhook url to receive events,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`};`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` stream`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Moralis`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Streams`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`add`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`options`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`via-webui`,children:`Via WebUI`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Create a new Stream`}),`\n`,_jsx(_components.li,{children:`Fill out the form`}),`\n`,_jsx(_components.li,{children:`Switch on Event Emittance and Add the Abi and select the topic`}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.code,{children:`Listen to all addresses`}),` and `,_jsx(_components.code,{children:`Contract interactions (logs)`})]}),`\n`,_jsx(_components.li,{children:`Click on create stream button`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"How to Track NFT Transfers in Real Time","description":null,"href":"/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Programmatically","slug":"programmatically","depth":2,"children":[]},{"title":"Via WebUI","slug":"via-webui","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"moralis","siteName":"Moralis","title":"How to Track NFT Transfers in Real Time - Moralis","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-31T09:39:52.734Z","originalFileLocation":"get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Moralis\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How to Track NFT Transfers in Real Time - Moralis\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Moralis\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://moralis.mintlify.site/_mintlify/api/og/v2?division=NFT+Monitoring\u0026amp;title=How+to+Track+NFT+Transfers+in+Real+Time\u0026amp;theme=3021c0945ade0560af7b28a8\u0026amp;signature=86381cc7c258687ecf4b9069e678d6f9e0220683e9de647f96f02d4ad66ee07c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"How to Track NFT Transfers in Real Time - Moralis\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moralis.mintlify.site/_mintlify/api/og/v2?division=NFT+Monitoring\u0026amp;title=How+to+Track+NFT+Transfers+in+Real+Time\u0026amp;theme=3021c0945ade0560af7b28a8\u0026amp;signature=86381cc7c258687ecf4b9069e678d6f9e0220683e9de647f96f02d4ad66ee07c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/moralis/QJZhcjaKxGIsqpqo/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Moralis\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0f7fff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.moralis.com/#organization\",\"name\":\"Moralis\",\"url\":\"https://docs.moralis.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/moralis/GWFD1O4mIZzaStPO/logo/light.png?fit=max\u0026auto=format\u0026n=GWFD1O4mIZzaStPO\u0026q=85\u0026s=66e6da0d81943c4679e0ba921850201d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.moralis.com#website\",\"name\":\"Moralis\",\"url\":\"https://docs.moralis.com\",\"publisher\":{\"@id\":\"https://docs.moralis.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time#webpage\",\"url\":\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time\",\"name\":\"How to Track NFT Transfers in Real Time\",\"dateModified\":\"2026-10-31T09:39:52.734Z\",\"isPartOf\":{\"@id\":\"https://docs.moralis.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tutorials \u0026 Guides\",\"item\":\"https://docs.moralis.com/get-started/tutorials/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Streams Tutorials\",\"item\":\"https://docs.moralis.com/streams-tutorials\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Track NFT Transfers in Real Time\",\"item\":\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time#article\",\"headline\":\"How to Track NFT Transfers in Real Time\",\"name\":\"How to Track NFT Transfers in Real Time\",\"url\":\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time\",\"mainEntityOfPage\":{\"@id\":\"https://docs.moralis.com/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time#webpage\"},\"dateModified\":\"2026-10-31T09:39:52.734Z\",\"publisher\":{\"@id\":\"https://docs.moralis.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.moralis.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Moralis\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Moralis\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time.md","siteName":"Moralis","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"group":"Introduction","pages":[{"title":"Overview","sidebarTitle":"Overview","mode":"wide","href":""}]},{"group":"Getting Started","pages":[{"title":"Get Your API Key","href":"/get-started/get-your-api-key"},{"title":"Quickstart Guides","sidebarTitle":"Quickstart Guides","href":"/get-started/quickstart-guides"}]},{"group":"Pricing \u0026 Resources","pages":[{"title":"Pricing","sidebarTitle":"Pricing","href":"/get-started/pricing"},{"title":"Supported Chains","sidebarTitle":"Supported Chains","mode":"wide","href":"/get-started/supported-chains"}]},{"group":"Tutorials \u0026 Guides","pages":[{"title":"Tutorials and Guides","sidebarTitle":"Overview","href":"/get-started/tutorials/overview"},{"group":"Data API Tutorials","pages":[{"title":"Data API Tutorials","href":"/data-api-tutorials"},{"group":"Wallets \u0026 Accounts","pages":[{"title":"How to Get Internal Transactions for a Wallet Address","href":"/get-started/tutorials/data-api/wallets-and-accounts/get-internal-transactions-for-a-wallet-address"},{"title":"How to Get Native Token Balances for EOAs and Smart Accounts","href":"/get-started/tutorials/data-api/wallets-and-accounts/get-native-token-balances-for-eoas-and-smart-accounts"},{"title":"How to Get Multi-Chain Activity for a Wallet Address","href":"/get-started/tutorials/data-api/wallets-and-accounts/get-multi-chain-activity-for-a-wallet-address"},{"title":"How to Get Full Wallet Transaction History (EOA \u0026 Smart Accounts)","href":"/get-started/tutorials/data-api/wallets-and-accounts/get-full-wallet-transaction-history-eoa-and-smart-accounts"},{"title":"How to Build a Token Approval \u0026 Revoke Dashboard (Revoke.cash-Style)","href":"/get-started/tutorials/data-api/wallets-and-accounts/build-a-token-approval-and-revoke-dashboard-revoke-cash-style"},{"title":"How to Get ERC20 Token Balances for a Wallet","href":"/get-started/tutorials/data-api/tokens-and-markets/get-erc-20-token-balances-for-a-wallet"}]},{"group":"Tokens \u0026 Markets","pages":[{"title":"How to Get Top ERC20 Tokens by Market Cap","href":"/get-started/tutorials/data-api/tokens-and-markets/get-top-erc-20-tokens-by-market-cap"},{"title":"How to Build a DexScreener Clone","href":"/get-started/tutorials/data-api/tokens-and-markets/build-a-dex-screener-clone"},{"title":"How to Get ERC20 Transfer History by Wallet or Token","href":"/get-started/tutorials/data-api/tokens-and-markets/get-erc-20-transfer-history-by-wallet-or-token"},{"title":"How to Get ERC20 Token Metadata by Address or Symbol","href":"/get-started/tutorials/data-api/tokens-and-markets/get-erc-20-token-metadata-by-address-or-symbol"},{"title":"How to Get Token Pairs and Liquidity Data","href":"/get-started/tutorials/data-api/tokens-and-markets/get-token-pairs-and-liquidity-data"},{"title":"How to Get DEX Pair Addresses (Uniswap, PancakeSwap, SushiSwap)","href":"/get-started/tutorials/data-api/tokens-and-markets/get-dex-pair-addresses-uniswap-pancake-swap-sushi-swap"},{"title":"How to Get Pump.fun Tokens, Swaps and Prices","href":"/get-started/tutorials/data-api/tokens-and-markets/get-pump-fun-tokens-swaps-and-prices"},{"title":"How to Get Pump.fun New, Bonding \u0026 Graduated Tokens","href":"/get-started/tutorials/data-api/tokens-and-markets/get-pump-fun-new-bonding-and-graduated-tokens"}]},{"group":"NFTs","pages":[{"title":"How to Get All NFTs Owned by a Wallet Address","href":"/get-started/tutorials/data-api/nfts/get-all-nfts-owned-by-a-wallet-address"},{"title":"How to Get NFT Collections Owned by a Wallet","href":"/get-started/tutorials/data-api/nfts/get-nft-collections-owned-by-a-wallet"},{"title":"How to Get NFT Metadata by Contract and Token ID","href":"/get-started/tutorials/data-api/nfts/get-nft-metadata-by-contract-and-token-id"},{"title":"How to Get NFT Owners and Ownership Details","href":"/get-started/tutorials/data-api/nfts/get-nft-owners-and-ownership-details"},{"title":"How to Get NFT Floor Prices","href":"/get-started/tutorials/data-api/nfts/get-nft-floor-prices"}]},{"group":"Prices \u0026 Charts","pages":[{"title":"How to Get the Price of an ERC20 Token","href":"/get-started/tutorials/data-api/prices-and-charts/get-the-price-of-an-erc-20-token"},{"title":"How to Get Historical ERC20 Token Prices (OHLC Data)","href":"/get-started/tutorials/data-api/prices-and-charts/get-historical-erc-20-token-prices-ohlc-data"},{"title":"How to Build Crypto Price Charts Using OHLC Data","href":"/get-started/tutorials/data-api/prices-and-charts/build-crypto-price-charts-using-ohlc-data"}]},{"group":"Blocks \u0026 Transactions","pages":[{"title":"How to Get a Blockchain Transaction by Hash","href":"/get-started/tutorials/data-api/blocks-and-transactions/get-a-blockchain-transaction-by-hash"},{"title":"How to Find the Closest Block by Unix Timestamp","href":"/get-started/tutorials/data-api/blocks-and-transactions/find-the-closest-block-by-unix-timestamp"}]},{"group":"Bitcoin","tag":"New","pages":[{"title":"Bitcoin API Quickstart","href":"/get-started/tutorials/data-api/bitcoin/bitcoin-quickstart"}]}]},{"group":"Streams Tutorials","pages":[{"title":"Streams Tutorials","href":"/streams-tutorials"},{"group":"Wallet Monitoring","pages":[{"title":"How to Monitor Wallet Activity in Real Time","href":"/get-started/tutorials/streams/wallet-monitoring/monitor-wallet-activity-in-real-time"},{"title":"Listen to all Addresses","href":"/get-started/tutorials/streams/wallet-monitoring/listen-to-all-addresses"},{"title":"Monitor Multiple Addresses","href":"/get-started/tutorials/streams/wallet-monitoring/monitor-multiple-addresses"},{"title":"Get Native Balances","href":"/get-started/tutorials/streams/wallet-monitoring/get-native-balances"},{"title":"Monitor High-Value ENS Domain Registrations","href":"/get-started/tutorials/streams/wallet-monitoring/monitor-high-value-ens-domain-registrations"}]},{"group":"Token Monitoring","pages":[{"title":"Track Specific ERC20 Token Transfers From a List of Wallets","href":"/get-started/tutorials/streams/token-monitoring/track-specific-erc-20-token-transfers-from-a-list-of-wallets"},{"title":"How to Monitor High-Value ERC20 Transfers in Real Time","href":"/get-started/tutorials/streams/token-monitoring/monitor-high-value-erc-20-transfers-in-real-time"},{"title":"How to Track ERC20 Token Mints and Burns in Real Time","href":"/get-started/tutorials/streams/token-monitoring/track-erc-20-token-mints-and-burns-in-real-time"},{"title":"How to Track New Tokens and Trading Pairs in Real Time","description":"Learn how to monitor for new tokens by tracking DEX pair creation events using Moralis Streams API.","href":"/get-started/tutorials/streams/token-monitoring/track-new-tokens-and-trading-pairs-in-real-time"}]},{"group":"NFT Monitoring","pages":[{"title":"How to Track NFT Transfers in Real Time","href":"/get-started/tutorials/streams/nft-monitoring/track-nft-transfers-in-real-time"},{"title":"Monitoring NFT Transfers from Specific Wallet Addresses","description":null,"href":"/get-started/tutorials/streams/nft-monitoring/monitoring-nft-transfers-from-specific-wallet-addresses"},{"title":"How to Track Specific NFTs or NFT Collections in Real Time","href":"/get-started/tutorials/streams/nft-monitoring/track-specific-nfts-or-nft-collections-in-real-time"}]},{"group":"Smart Contracts \u0026 Events","pages":[{"title":"How to Track Smart Contract Events in Real Time","href":"/get-started/tutorials/streams/smart-contracts-and-events/track-smart-contract-events-in-real-time"}]}]},{"group":"Migration Guides","pages":[{"title":"Migrating from Alchemy to Moralis","sidebarTitle":"Migrating from Alchemy","href":"/get-started/tutorials/migration-guides/migrating-from-alchemy-to-moralis"},{"title":"Migrating from Infura to Moralis","sidebarTitle":"Migrating from Infura","href":"/get-started/tutorials/migration-guides/migrating-from-infura-to-moralis"},{"title":"Migrating from OKLink to Moralis","sidebarTitle":"Migrating from OKLink","href":"/get-started/tutorials/migration-guides/migrating-from-ok-link-to-moralis"},{"title":"Migrating from QuickNode to Moralis","sidebarTitle":"Migrating from QuickNode","href":"/get-started/tutorials/migration-guides/migrating-from-quicknode-to-moralis"},{"title":"Migrating from Reservoir to Moralis","sidebarTitle":"Migrating from Reservoir","href":"/get-started/tutorials/migration-guides/migrating-from-reservoir-to-moralis"},{"title":"Migrating from Sim APIs (Sim by Dune) to Moralis","sidebarTitle":"Migrating from Sim APIs","href":"/get-started/tutorials/migration-guides/migrating-from-sim-by-dune-to-moralis"},{"title":"Migrating from SimpleHash to Moralis","sidebarTitle":"Migrating from SimpleHash","href":"/get-started/tutorials/migration-guides/migrating-from-simple-hash-to-moralis"},{"title":"Migrating from The Graph to Moralis","sidebarTitle":"Migrating from The Graph","href":"/get-started/tutorials/migration-guides/migrating-from-the-graph-to-moralis"}]},{"group":"Charts \u0026 Widgets","pages":[{"title":"Embed a TradingView Candlestick Chart for Pump.fun Tokens","sidebarTitle":"Embed Pump.fun TradingView Chart","href":"/get-started/tutorials/charts-and-widgets/embed-pump-fun-trading-view-chart"},{"title":"OHLC Chart Configurator","href":"/get-started/tutorials/charts-and-widgets/ohlc-chart-configurator"}]},{"group":"Auth API Tutorials","pages":[{"title":"How to Authenticate Users with Phantom Wallet","href":"/get-started/tutorials/auth-api/authenticate-users-with-phantom-wallet"},{"title":"How to Authenticate Users with Web3Auth","href":"/get-started/tutorials/auth-api/authenticate-users-with-web3-auth"},{"title":"How to Authenticate Users with WalletConnect","href":"/get-started/tutorials/auth-api/authenticate-users-with-wallet-connect"},{"title":"How to Authenticate Users with RainbowKit","href":"/get-started/tutorials/auth-api/authenticate-users-with-rainbow-kit"},{"title":"How to Authenticate Users with Particle Network","href":"/get-started/tutorials/auth-api/authenticate-users-with-particle-network"},{"title":"How to Authenticate Users with MetaMask","href":"/get-started/tutorials/auth-api/authenticate-users-with-meta-mask"},{"title":"How to Authenticate Users with MetaMask using Python and Django","href":"/get-started/tutorials/auth-api/authenticate-users-with-meta-mask-using-python-and-django"},{"title":"How to Authenticate Users with MetaMask using Angular","href":"/get-started/tutorials/auth-api/authenticate-users-with-meta-mask-using-angular"},{"title":"How to Authenticate Users with Magic.Link","href":"/get-started/tutorials/auth-api/authenticate-users-with-magic-link"},{"title":"How to Authenticate Users with Coinbase Wallet","href":"/get-started/tutorials/auth-api/authenticate-users-with-coinbase-wallet"},{"title":"How to Authenticate Users with MetaMask using React","href":"/get-started/tutorials/auth-api/authenticate-users-with-meta-mask-using-react"}]}]}]},{"tab":"Data API","pages":[{"title":"Data API","href":"/data-api/overview"}]},{"tab":"Streams","pages":[{"title":"Streams","href":"/streams/overview"}]},{"tab":"Data Feeds","pages":[{"title":"Data Feeds","href":"/data-feeds/overview"}]},{"tab":"RPC Nodes","pages":[{"title":"RPC Nodes","href":"/rpc-nodes/overview"}]},{"tab":"Auth API","pages":[{"title":"Auth API","href":"/auth-api/overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"How to Track NFT Transfers in Real Time - Moralis","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}