This is related to availability of dynamic NFT(for example a character with pfp and attributes for RPG game), onchain NFT
Yea, we saw you want to shrink down the size of the node, but… ![]()
SIP-009 currently defines the basic NFT standard in Stacks and uses the get-token-uri function, which returns a metadata link limited to 256 characters. SIP-016 describes the JSON metadata structure, including attributes, but does not define a standard way to read dynamic NFT properties directly from a smart contract.
This creates a problem for fully autonomous dynamic NFTs. A developer can store mutable token properties on-chain, such as level, status, traits, progress, game parameters, and other data. However, each contract exposes this data in its own way through custom read-only functions. As a result, marketplaces, wallets, and indexers do not have a universal way to discover and display this data, so they continue to rely on external JSON files, IPFS, or server APIs.
SIP-019 already solves part of this issue: it allows contracts to notify indexers that a token’s metadata has changed. However, it does not define a standard way for an indexer to retrieve the updated on-chain attributes after such an update.
We propose adding an optional extension to the existing SIP-009/SIP-016/SIP-019 standards: a standard interface for reading on-chain attributes and, where necessary, an extended way to retrieve full on-chain metadata.
Such an interface would allow contracts to keep any internal data-storage logic they need, while providing external platforms with a unified way to query NFT properties directly from the blockchain. This would make dynamic NFTs in Stacks more compatible with marketplaces, wallets, and indexers without relying on external servers.
The goal is to move from NFTs as “links to JSON” toward NFTs as autonomous on-chain data objects whose properties can change and be read directly from the smart contract, while remaining compatible with the existing Stacks standards.
Related: SUI has built in architecture Kiosk system - it’s nice complex instrument but it’s hard to implement on Stacks( but imo it’s worth to check and think about it at least). But 30kb for get-token-uri at least would give a serious possibilities part of that thing.