NFTって規格あるんですか?
Ethereum を前提に話します(それしか知らないw)。とあるインタフェース(関数)を持ったスマートコントラクトのことを NFT と言います。
そのインタフェースは ERC721 で NON-FUNGIBLE TOKEN STANDARD と定められました。
https://ethereum.org/ja/developers/docs/standards/tokens/erc-721/
ほかには ERC20 などがあります。これは一般に Ethereum 上での通貨としてよく使われます。加えて ERC721 は ERC20 のインタフェースを持っているので、ERC721 は ERC20 に対して互換性があります。
721 などの数値は GitHub の Issue 番号に由来します。 https://github.com/ethereum/EIPs/issues/721
ERC は RFC と同じで「Ethereum の改善案」を意味します。
参考: https://medium.com/metaps-blockchain-jp/eip-erc-vol1-244d1a4b2aff
ブロックチェーンにURL保存してるだけかと思ってた
ERC721 では tokenMetadata というメソッドがあり、画像URLを格納できるようになっています。
Ethereum 上では、ストレージを使えば使うほど高額な費用が発生するため、企業のストレージか分散ストレージ(IPFS, arweaveなど)に保存してそのURLを保存しています。
OpenSea などのプラットフォームはアニメーションや動画などを扱うために ERC721 を発展させる規格を提案しています。
ゆえに NFT は、とあるインタフェースを持つスマートコントラクトであり単なる規格です。
各メソッドの中で何をするかは実装者に委ねられています。実装を含んだライブラリが存在し、脆弱性を作り込まないためにも利用が推奨されています(https://docs.openzeppelin.com/contracts/2.x/erc721)。
https://zenn.dev/kanegae_ims/articles/e2c9f790931fe2