In the polkadot docs under NFT's they write this:

A general-purpose blockchain is not built to natively understand the concept of NFTs. It is only natively aware and optimized for its own native tokens, but implementations built on such a chain are essentially "hacks".

Take Singular.app for example. When I log in and view my space. I INSTANTLY have my purchased NFT's. I see backend API calls to what I'm assuming involves the use of GraphQL, a query is passed with the Asset's remark ID.

enter image description here

Are they making writes to the block-chain, listening to the KSM chain on their serverd backend? They then filters any system.remark 'hacks' on the Kusama network, write it to their back-end to update any changes made to these NFTs, and then use GraphQL queries to fetch them?

When a user logs in, they query their Wallet address to their backend, which can then cross reference all NFT's associated with that walletAddress? Then retrieve the ipfs routed image?

1 Answer 1


That is exactly how it works.

There is a back end which stores all the consolidated remarks from the chain into a final state of NFTs. These are rendered for you as you log in. Due to the nature of remark-based NFTs, a full sync of the chain or a consolidation of the whole remark set is necessary to verify ownership - this is costly and slow. So we rely on an optimization in the form of our back end which speeds things up dramatically.

You can still reproduce the entire back end and full state by syncing the state yourself, as answered here: How can users trustlessly verify ownership of RMRK NFTs

  • Hey @Swader, thanks for the response. I ended up building a SQL db I populated with SubSquid. At the time they don't have extrinsics for remarks, formally accessible. I was still able to pull them and 'scrape' the blockchain for any OP_TYPE remarks. Works like a charm. Next, create my own Node to seed my own DB I use
    – rarara
    Commented Jun 8, 2022 at 3:48

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.