From cd3107ef4915f600f2e4cad68ccc0af949f58d91 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 6 Nov 2026 21:21:23 +0000 Subject: [PATCH 1/6] README: split NFTs into their own section, retitle Realloc as Resizing Accounts, shorten the transaction v1 FAQ Claude-Session: https://claude.ai/code/session_01GZHin7gxqccwA5Zq1erhqW --- README.md | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 8e9a3a17..f942f794 100644 --- a/README.md +++ b/README.md @@ -167,9 +167,9 @@ Store and retrieve state using PDAs as deterministic account addresses. [⚓ Anchor v1](./basics/program-derived-addresses/anchor-v1) [⚓ Anchor v2](./basics/program-derived-addresses/anchor) [💫 Quasar](./basics/program-derived-addresses/quasar) [🤥 Pinocchio](./basics/program-derived-addresses/pinocchio) [🦀 Native](./basics/program-derived-addresses/native) -### Realloc +### Resizing Accounts -Handle accounts that need to grow or shrink in size. +Grow or shrink an account after it has been created, a process Solana calls **realloc** (reallocation): the account's data is resized and its rent-exempt balance topped up or refunded to match. [⚓ Anchor v1](./basics/realloc/anchor-v1) [⚓ Anchor v2](./basics/realloc/anchor) [💫 Quasar](./basics/realloc/quasar) [🤥 Pinocchio](./basics/realloc/pinocchio) [🦀 Native](./basics/realloc/native) @@ -205,18 +205,6 @@ Create a token mint with a symbol and icon. [⚓ Anchor v1](./tokens/create-token/anchor-v1) [⚓ Anchor v2](./tokens/create-token/anchor) [💫 Quasar](./tokens/create-token/quasar) [🦀 Native](./tokens/create-token/native) -### Mint NFT - -Mint an NFT from inside your own program using the Token and Metaplex Token Metadata programs. - -[⚓ Anchor v1](./tokens/nft-minter/anchor-v1) [⚓ Anchor v2](./tokens/nft-minter/anchor) [💫 Quasar](./tokens/nft-minter/quasar) [🦀 Native](./tokens/nft-minter/native) - -### NFT Operations - -Create an NFT collection, mint NFTs, and verify NFTs as part of a collection using Metaplex Token Metadata. - -[⚓ Anchor v1](./tokens/nft-operations/anchor-v1) [⚓ Anchor v2](./tokens/nft-operations/anchor) [💫 Quasar](./tokens/nft-operations/quasar) - ### Token Minter Mint tokens from inside your own program using the [Classic Token Program](https://solana.com/docs/terminology#token-program). @@ -291,12 +279,6 @@ Store metadata directly inside the token [mint account](https://solana.com/docs/ [⚓ Anchor v1](./tokens/token-extensions/metadata/anchor-v1) [⚓ Anchor v2](./tokens/token-extensions/metadata/anchor) -### NFT Metadata Pointer - -Create an NFT using the metadata pointer extension, storing onchain metadata (including custom fields) inside the mint. - -[⚓ Anchor v1](./tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1) [⚓ Anchor v2](./tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor) - ### Mint Close Authority Allow a designated account to close a token mint. @@ -369,6 +351,26 @@ Restrict transfers so only whitelisted accounts can receive tokens. [⚓ Anchor v1](./tokens/token-extensions/transfer-hook/whitelist/anchor-v1) [⚓ Anchor v2](./tokens/token-extensions/transfer-hook/whitelist/anchor) [💫 Quasar](./tokens/token-extensions/transfer-hook/whitelist/quasar) +## NFTs + +### Mint NFT + +Mint an NFT from inside your own program using the Token and Metaplex Token Metadata programs. + +[⚓ Anchor v1](./tokens/nft-minter/anchor-v1) [⚓ Anchor v2](./tokens/nft-minter/anchor) [💫 Quasar](./tokens/nft-minter/quasar) [🦀 Native](./tokens/nft-minter/native) + +### NFT Operations + +Create an NFT collection, mint NFTs, and verify NFTs as part of a collection using Metaplex Token Metadata. + +[⚓ Anchor v1](./tokens/nft-operations/anchor-v1) [⚓ Anchor v2](./tokens/nft-operations/anchor) [💫 Quasar](./tokens/nft-operations/quasar) + +### NFT Metadata Pointer + +Create an NFT using the metadata pointer extension, storing onchain metadata (including custom fields) inside the mint. + +[⚓ Anchor v1](./tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1) [⚓ Anchor v2](./tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor) + ## Compression ### cNFT Burn @@ -409,7 +411,7 @@ Start with the [escrow example](./finance/escrow/anchor/), the best first financ ### Do these examples work with Solana transaction v1? -Yes. The v1 format (4,096 byte transactions, live on mainnet since epoch 1035 on 15 September 2026) changes how a client builds a transaction, not what a program sees, so every program here can be called through v1 as is. Every Anchor v1 and Anchor v2 example's tests send their transactions as v1, through [solana-kite](https://crates.io/crates/solana-kite) (0.6 for Anchor v1, 0.7 for Anchor v2), and the transaction v1 example ([Anchor v1](./basics/transaction-v1/anchor-v1/), [Anchor v2](./basics/transaction-v1/anchor/)) shows the config fields that replace ComputeBudget instructions. The Quasar tests send no transactions at all: their harness runs each instruction directly, so the transaction format never comes up. +Yes. A v1 transaction can be 4,096 bytes rather than 1,232, so more instructions fit in a single transaction instead of being split across several and bundled together. Every Anchor v1 and Anchor v2 example's tests send their transactions as v1, and the programs themselves read those transactions as is: programs don't need to change their format for transaction v1. ### How do I test a Solana program without running a validator? From 69199751c75347837da73963ea4fbf5d5f4e68da Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 6 Nov 2026 21:29:40 +0000 Subject: [PATCH 2/6] README: drop the framework-differences FAQ, which repeats the framework list at the top Claude-Session: https://claude.ai/code/session_01GZHin7gxqccwA5Zq1erhqW --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index f942f794..d21f7e96 100644 --- a/README.md +++ b/README.md @@ -417,10 +417,6 @@ Yes. A v1 transaction can be 4,096 bytes rather than 1,232, so more instructions Use [LiteSVM](https://www.anchor-lang.com/docs/testing/litesvm): Rust integration tests that run the program in-process, orders of magnitude faster than `solana-test-validator`. Every example in this repository tests this way, and `anchor init` scaffolds it by default since Anchor 1.0. -### What is the difference between Anchor, Quasar, Pinocchio, and native Rust? - -[Anchor](https://www.anchor-lang.com/) is the most popular Solana framework, generating account validation and serialization from declarative constraints. [Quasar](https://quasar-lang.com/docs) offers Anchor-like ergonomics with zero-copy, `no_std` performance and smaller binaries. [Pinocchio](https://github.com/anza-xyz/pinocchio) is a zero-allocation library for hand-rolled programs, and native Rust uses Solana's crates directly with no framework. Most examples here ship several variants of the same program so you can compare. - ### What is the best way to learn Solana finance programming? Work through the [finance examples](#financial-software-defi) in order of complexity: [escrow](./finance/escrow/anchor/), then [token swap AMM](./finance/token-swap/anchor/), [order book](./finance/order-book/anchor/), [lending](./finance/lending/anchor/), and [perpetual futures](./finance/perpetual-futures/anchor/). Each README explains the financial mechanics in plain terms before the code. From 4d9e92b20aceb981d1365c557d0347db7c66a733 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 6 Nov 2026 21:32:28 +0000 Subject: [PATCH 3/6] Move the NFT examples to nft/ and basics/realloc to basics/resizing-accounts The folders now match the README sections. Each old folder keeps a README pointing to the new location. Claude-Session: https://claude.ai/code/session_01GZHin7gxqccwA5Zq1erhqW --- CHANGELOG.md | 16 ++++++++++++++++ Cargo.toml | 14 +++++++------- README.md | 8 ++++---- basics/realloc/README.md | 10 ++-------- basics/resizing-accounts/README.md | 9 +++++++++ .../anchor-v1/.gitignore | 0 .../anchor-v1/.prettierignore | 0 .../anchor-v1/Anchor.toml | 0 .../anchor-v1/CHANGELOG.md | 0 .../anchor-v1/Cargo.toml | 0 .../anchor-v1/README.md | 2 +- .../programs/anchor-realloc/Cargo.toml | 0 .../programs/anchor-realloc/Xargo.toml | 0 .../src/instructions/initialize.rs | 0 .../anchor-realloc/src/instructions/mod.rs | 0 .../anchor-realloc/src/instructions/update.rs | 0 .../programs/anchor-realloc/src/lib.rs | 0 .../anchor-realloc/tests/test_realloc.rs | 0 .../anchor/.gitignore | 0 .../anchor/.prettierignore | 0 .../anchor/Anchor.toml | 0 .../anchor/CHANGELOG.md | 0 .../anchor/Cargo.toml | 0 .../anchor/README.md | 2 +- .../anchor/programs/anchor-realloc/Cargo.toml | 0 .../anchor/programs/anchor-realloc/Xargo.toml | 0 .../src/instructions/initialize.rs | 0 .../anchor-realloc/src/instructions/mod.rs | 0 .../anchor-realloc/src/instructions/update.rs | 0 .../anchor/programs/anchor-realloc/src/lib.rs | 0 .../anchor-realloc/tests/test_realloc.rs | 0 .../native/CHANGELOG.md | 0 .../native/program/Cargo.toml | 0 .../native/program/src/instructions/create.rs | 0 .../native/program/src/instructions/mod.rs | 0 .../program/src/instructions/reallocate.rs | 0 .../native/program/src/lib.rs | 0 .../native/program/src/processor.rs | 0 .../native/program/src/state/address_info.rs | 0 .../program/src/state/enhanced_address_info.rs | 0 .../native/program/src/state/mod.rs | 0 .../native/program/src/state/work_info.rs | 0 .../native/program/tests/test.rs | 0 .../pinocchio/CHANGELOG.md | 0 .../pinocchio/program/Cargo.toml | 0 .../program/src/instructions/create.rs | 0 .../pinocchio/program/src/instructions/mod.rs | 0 .../program/src/instructions/reallocate.rs | 0 .../pinocchio/program/src/lib.rs | 0 .../pinocchio/program/src/processor.rs | 0 .../pinocchio/program/src/state/address_info.rs | 0 .../program/src/state/enhanced_address_info.rs | 0 .../pinocchio/program/src/state/mod.rs | 0 .../pinocchio/program/src/state/work_info.rs | 0 .../pinocchio/program/tests/test.rs | 0 .../quasar/CHANGELOG.md | 0 .../quasar/Cargo.toml | 0 .../quasar/Quasar.toml | 0 .../quasar/README.md | 2 +- .../quasar/src/instructions/initialize.rs | 0 .../quasar/src/instructions/mod.rs | 0 .../quasar/src/instructions/update.rs | 0 .../quasar/src/lib.rs | 0 .../quasar/src/state.rs | 0 .../quasar/src/tests.rs | 0 .../metadata-pointer}/README.md | 0 .../metadata-pointer}/anchor-v1/.gitignore | 0 .../metadata-pointer}/anchor-v1/.prettierignore | 0 .../metadata-pointer}/anchor-v1/Anchor.toml | 0 .../metadata-pointer}/anchor-v1/Cargo.toml | 0 .../metadata-pointer}/anchor-v1/README.md | 0 .../metadata-pointer}/anchor-v1/package.json | 0 .../metadata-pointer}/anchor-v1/pnpm-lock.yaml | 0 .../anchor-v1/programs/extension_nft/Cargo.toml | 0 .../programs/extension_nft}/Xargo.toml | 0 .../programs/extension_nft/src/constants.rs | 0 .../programs/extension_nft/src/errors.rs | 0 .../extension_nft/src/instructions/chop_tree.rs | 0 .../src/instructions/init_player.rs | 0 .../extension_nft/src/instructions/mint_nft.rs | 0 .../extension_nft/src/instructions/mod.rs | 0 .../anchor-v1/programs/extension_nft/src/lib.rs | 0 .../extension_nft/src/state/game_data.rs | 0 .../programs/extension_nft/src/state/mod.rs | 0 .../extension_nft/src/state/player_data.rs | 0 .../extension_nft/tests/test_extension_nft.rs | 0 .../metadata-pointer}/anchor-v1/rustfmt.toml | 0 .../metadata-pointer}/anchor/.gitignore | 0 .../metadata-pointer}/anchor/.prettierignore | 0 .../metadata-pointer}/anchor/Anchor.toml | 0 .../metadata-pointer}/anchor/Cargo.toml | 0 .../metadata-pointer}/anchor/README.md | 0 .../metadata-pointer}/anchor/package.json | 0 .../metadata-pointer}/anchor/pnpm-lock.yaml | 0 .../anchor/programs/extension_nft/Cargo.toml | 0 .../anchor/programs/extension_nft}/Xargo.toml | 0 .../programs/extension_nft/src/constants.rs | 0 .../anchor/programs/extension_nft/src/errors.rs | 0 .../extension_nft/src/instructions/chop_tree.rs | 0 .../src/instructions/init_player.rs | 0 .../extension_nft/src/instructions/mint_nft.rs | 0 .../extension_nft/src/instructions/mod.rs | 0 .../anchor/programs/extension_nft/src/lib.rs | 0 .../programs/extension_nft/src/session.rs | 0 .../extension_nft/src/state/game_data.rs | 0 .../programs/extension_nft/src/state/mod.rs | 0 .../extension_nft/src/state/player_data.rs | 0 .../extension_nft/tests/test_extension_nft.rs | 0 .../metadata-pointer}/anchor/rustfmt.toml | 0 .../metadata-pointer}/app/.env.local.example | 0 .../metadata-pointer}/app/.eslintrc.json | 0 .../metadata-pointer}/app/.gitignore | 0 .../metadata-pointer}/app/README.md | 0 .../app/components/ChopTreeButton.tsx | 0 .../app/components/DisplayGameState.tsx | 0 .../app/components/DisplayNfts.tsx | 0 .../app/components/InitPlayerButton.tsx | 0 .../app/components/MintNftButton.tsx | 0 .../app/components/RequestAirdrop.tsx | 0 .../app/components/SessionKeyButton.tsx | 0 .../app/components/WalletMultiButton.tsx | 0 .../app/contexts/GameStateProvider.tsx | 0 .../app/contexts/NftProvider.tsx | 0 .../app/contexts/SessionProvider.tsx | 0 .../app/contexts/WalletContextProvider.tsx | 0 .../metadata-pointer}/app/idl/extension_nft.ts | 0 .../metadata-pointer}/app/next.config.js | 0 .../metadata-pointer}/app/package.json | 0 .../metadata-pointer}/app/pages/_app.tsx | 0 .../metadata-pointer}/app/pages/_document.tsx | 0 .../metadata-pointer}/app/pages/api/hello.ts | 0 .../metadata-pointer}/app/pages/index.tsx | 0 .../metadata-pointer}/app/public/Beaver.png | Bin .../metadata-pointer}/app/public/Tree.png | Bin .../metadata-pointer}/app/public/Wood.png | Bin .../metadata-pointer}/app/public/energy.png | Bin .../metadata-pointer}/app/public/favicon.ico | Bin .../metadata-pointer}/app/public/next.svg | 0 .../metadata-pointer}/app/public/vercel.svg | 0 .../app/styles/Home.module.css | 0 .../metadata-pointer}/app/styles/globals.css | 0 .../metadata-pointer}/app/tsconfig.json | 0 .../metadata-pointer}/app/utils/anchor.ts | 0 .../app/utils/wrappedConnection.ts | 0 .../metadata-pointer}/nx.json | 0 .../metadata-pointer}/package.json | 0 .../unity/ExtensionNft/.gitattributes | 0 .../unity/ExtensionNft/.gitignore | 0 .../unity/ExtensionNft/Assets/DOTween 4.meta | 0 .../ExtensionNft/Assets/DOTween 4/DOTween.XML | 0 .../Assets/DOTween 4/DOTween.XML.meta | 0 .../ExtensionNft/Assets/DOTween 4/DOTween.dll | Bin .../Assets/DOTween 4/DOTween.dll.mdb | Bin .../Assets/DOTween 4/DOTween.dll.mdb.meta | 0 .../Assets/DOTween 4/DOTween.dll.meta | 0 .../ExtensionNft/Assets/DOTween 4/Editor.meta | 0 .../Assets/DOTween 4/Editor/DOTweenEditor.XML | 0 .../DOTween 4/Editor/DOTweenEditor.XML.meta | 0 .../Assets/DOTween 4/Editor/DOTweenEditor.dll | Bin .../DOTween 4/Editor/DOTweenEditor.dll.mdb | Bin .../DOTween 4/Editor/DOTweenEditor.dll.mdb.meta | 0 .../DOTween 4/Editor/DOTweenEditor.dll.meta | 0 .../Assets/DOTween 4/Editor/Imgs.meta | 0 .../DOTween 4/Editor/Imgs/DOTweenIcon.png | Bin .../DOTween 4/Editor/Imgs/DOTweenIcon.png.meta | 0 .../DOTween 4/Editor/Imgs/DOTweenMiniIcon.png | Bin .../Editor/Imgs/DOTweenMiniIcon.png.meta | 0 .../Assets/DOTween 4/Editor/Imgs/Footer.png | Bin .../DOTween 4/Editor/Imgs/Footer.png.meta | 0 .../DOTween 4/Editor/Imgs/Footer_dark.png | Bin .../DOTween 4/Editor/Imgs/Footer_dark.png.meta | 0 .../Assets/DOTween 4/Editor/Imgs/Header.jpg | Bin .../DOTween 4/Editor/Imgs/Header.jpg.meta | 0 .../ExtensionNft/Assets/DOTween 4/Modules.meta | 0 .../DOTween 4/Modules/DOTweenModuleAudio.cs | 0 .../Modules/DOTweenModuleAudio.cs.meta | 0 .../Modules/DOTweenModuleEPOOutline.cs | 0 .../Modules/DOTweenModuleEPOOutline.cs.meta | 0 .../DOTween 4/Modules/DOTweenModulePhysics.cs | 0 .../Modules/DOTweenModulePhysics.cs.meta | 0 .../DOTween 4/Modules/DOTweenModulePhysics2D.cs | 0 .../Modules/DOTweenModulePhysics2D.cs.meta | 0 .../DOTween 4/Modules/DOTweenModuleSprite.cs | 0 .../Modules/DOTweenModuleSprite.cs.meta | 0 .../Assets/DOTween 4/Modules/DOTweenModuleUI.cs | 0 .../DOTween 4/Modules/DOTweenModuleUI.cs.meta | 0 .../Modules/DOTweenModuleUnityVersion.cs | 0 .../Modules/DOTweenModuleUnityVersion.cs.meta | 0 .../DOTween 4/Modules/DOTweenModuleUtils.cs | 0 .../Modules/DOTweenModuleUtils.cs.meta | 0 .../ExtensionNft/Assets/DOTween 4/readme.txt | 0 .../Assets/DOTween 4/readme.txt.meta | 0 .../unity/ExtensionNft/Assets/Frictionless.meta | 0 .../Assets/Frictionless/IMultiSceneSingleton.cs | 0 .../Frictionless/IMultiSceneSingleton.cs.meta | 0 .../IReinitializingMultiSceneSingleton.cs | 0 .../IReinitializingMultiSceneSingleton.cs.meta | 0 .../Assets/Frictionless/MessageRouter.cs | 0 .../Assets/Frictionless/MessageRouter.cs.meta | 0 .../Assets/Frictionless/ServiceFactory.cs | 0 .../Assets/Frictionless/ServiceFactory.cs.meta | 0 .../unity/ExtensionNft/Assets/Game.meta | 0 .../ExtensionNft/Assets/Game/Materials.meta | 0 .../Assets/Game/Materials/WoodParticles.mat | 0 .../Game/Materials/WoodParticles.mat.meta | 0 .../unity/ExtensionNft/Assets/Game/Prefabs.meta | 0 .../Assets/Game/Prefabs/DefaultButton.prefab | 0 .../Game/Prefabs/DefaultButton.prefab.meta | 0 .../Game/Prefabs/InteractionBlocker.prefab | 0 .../Game/Prefabs/InteractionBlocker.prefab.meta | 0 .../Assets/Game/Prefabs/NftItemView.prefab | 0 .../Assets/Game/Prefabs/NftItemView.prefab.meta | 0 .../Assets/Game/Prefabs/NftListPopup.prefab | 0 .../Game/Prefabs/NftListPopup.prefab.meta | 0 .../Assets/Game/Prefabs/SessionPopup.prefab | 0 .../Game/Prefabs/SessionPopup.prefab.meta | 0 .../Assets/Game/Prefabs/SolBalanceWidget.prefab | 0 .../Game/Prefabs/SolBalanceWidget.prefab.meta | 0 .../Game/Prefabs/TokenBalanceWidget.prefab | 0 .../Game/Prefabs/TokenBalanceWidget.prefab.meta | 0 .../Assets/Game/Prefabs/WoodParticles.prefab | 0 .../Game/Prefabs/WoodParticles.prefab.meta | 0 .../unity/ExtensionNft/Assets/Game/Scenes.meta | 0 .../Assets/Game/Scenes/GameScene.unity | 0 .../Assets/Game/Scenes/GameScene.unity.meta | 0 .../Assets/Game/Scenes/LoginScene.unity | 0 .../Assets/Game/Scenes/LoginScene.unity.meta | 0 .../unity/ExtensionNft/Assets/Game/Scripts.meta | 0 .../Assets/Game/Scripts/SimpleRotate.cs | 0 .../Assets/Game/Scripts/SimpleRotate.cs.meta | 0 .../Assets/Game/Scripts/Solana.meta | 0 .../Assets/Game/Scripts/Solana/AnchorService.cs | 0 .../Game/Scripts/Solana/AnchorService.cs.meta | 0 .../Assets/Game/Scripts/Solana/ExtensionNft.cs | 0 .../Game/Scripts/Solana/ExtensionNft.cs.meta | 0 .../Game/Scripts/Solana/NftMintingService.cs | 0 .../Scripts/Solana/NftMintingService.cs.meta | 0 .../Assets/Game/Scripts/Solana/NftService.cs | 0 .../Game/Scripts/Solana/NftService.cs.meta | 0 .../Assets/Game/Scripts/Solana/SolanaUtils.cs | 0 .../Game/Scripts/Solana/SolanaUtils.cs.meta | 0 .../ExtensionNft/Assets/Game/Scripts/Ui.meta | 0 .../Assets/Game/Scripts/Ui/BasePopup.cs | 0 .../Assets/Game/Scripts/Ui/BasePopup.cs.meta | 0 .../Assets/Game/Scripts/Ui/GameScreen.cs | 0 .../Assets/Game/Scripts/Ui/GameScreen.cs.meta | 0 .../Game/Scripts/Ui/InteractionBlocker.cs | 0 .../Game/Scripts/Ui/InteractionBlocker.cs.meta | 0 .../Assets/Game/Scripts/Ui/LoginScreen.cs | 0 .../Assets/Game/Scripts/Ui/LoginScreen.cs.meta | 0 .../Assets/Game/Scripts/Ui/NftContextMenu.cs | 0 .../Game/Scripts/Ui/NftContextMenu.cs.meta | 0 .../Assets/Game/Scripts/Ui/NftItemListView.cs | 0 .../Game/Scripts/Ui/NftItemListView.cs.meta | 0 .../Assets/Game/Scripts/Ui/NftItemView.cs | 0 .../Assets/Game/Scripts/Ui/NftItemView.cs.meta | 0 .../Assets/Game/Scripts/Ui/NftListPopup.cs | 0 .../Assets/Game/Scripts/Ui/NftListPopup.cs.meta | 0 .../Game/Scripts/Ui/NftListPopupUiData.cs | 0 .../Game/Scripts/Ui/NftListPopupUiData.cs.meta | 0 .../Assets/Game/Scripts/Ui/SafeArea.cs | 0 .../Assets/Game/Scripts/Ui/SafeArea.cs.meta | 0 .../Assets/Game/Scripts/Ui/SelectedNft.cs | 0 .../Assets/Game/Scripts/Ui/SelectedNft.cs.meta | 0 .../Assets/Game/Scripts/Ui/SessionPopup.cs | 0 .../Assets/Game/Scripts/Ui/SessionPopup.cs.meta | 0 .../Game/Scripts/Ui/SessionPopupUiData.cs | 0 .../Game/Scripts/Ui/SessionPopupUiData.cs.meta | 0 .../Assets/Game/Scripts/Ui/SolBalanceWidget.cs | 0 .../Game/Scripts/Ui/SolBalanceWidget.cs.meta | 0 .../Assets/Game/Scripts/Ui/TokenPanel.cs | 0 .../Assets/Game/Scripts/Ui/TokenPanel.cs.meta | 0 .../Assets/Game/Scripts/Ui/UiService.cs | 0 .../Assets/Game/Scripts/Ui/UiService.cs.meta | 0 .../unity/ExtensionNft/Assets/Game/Sprites.meta | 0 .../Assets/Game/Sprites/background.png | Bin .../Assets/Game/Sprites/background.png.meta | 0 .../ExtensionNft/Assets/Game/Sprites/beaver.png | Bin .../Assets/Game/Sprites/beaver.png.meta | 0 .../Assets/Game/Sprites/icon_energy.png | Bin .../Assets/Game/Sprites/icon_energy.png.meta | 0 .../Assets/Game/Sprites/icon_solana.png | Bin .../Assets/Game/Sprites/icon_solana.png.meta | 0 .../Assets/Game/Sprites/icon_usdc.png | Bin .../Assets/Game/Sprites/icon_usdc.png.meta | 0 .../Assets/Game/Sprites/icon_wood.png | Bin .../Assets/Game/Sprites/icon_wood.png.meta | 0 .../ExtensionNft/Assets/Game/Sprites/tree.png | Bin .../Assets/Game/Sprites/tree.png.meta | 0 .../Assets/Game/Sprites/ui_close_button.png | Bin .../Game/Sprites/ui_close_button.png.meta | 0 .../Assets/Game/Sprites/ui_default_button.png | Bin .../Game/Sprites/ui_default_button.png.meta | 0 .../Game/Sprites/ui_element_panel_rect.png | Bin .../Game/Sprites/ui_element_panel_rect.png.meta | 0 .../Assets/Game/Sprites/ui_panel.png | Bin .../Assets/Game/Sprites/ui_panel.png.meta | 0 .../Assets/Game/Sprites/ui_spinner.png | Bin .../Assets/Game/Sprites/ui_spinner.png.meta | 0 .../unity/ExtensionNft/Assets/Resources.meta | 0 .../Assets/Resources/DOTweenSettings.asset | 0 .../Assets/Resources/DOTweenSettings.asset.meta | 0 .../Assets/Resources/SolanaUnitySDK.meta | 0 .../SolanaUnitySDK/WalletAdapterButton.prefab | 0 .../WalletAdapterButton.prefab.meta | 0 .../SolanaUnitySDK/WalletAdapterUI.prefab | 0 .../SolanaUnitySDK/WalletAdapterUI.prefab.meta | 0 .../SolanaUnitySDK/[WalletController].prefab | 0 .../[WalletController].prefab.meta | 0 .../unity/ExtensionNft/Assets/Socket.meta | 0 .../Assets/Socket/SocketStatusWidget.cs | 0 .../Assets/Socket/SocketStatusWidget.cs.meta | 0 .../unity/ExtensionNft/Assets/TextMesh Pro.meta | 0 .../Assets/TextMesh Pro/Documentation.meta | 0 .../TextMesh Pro User Guide 2016.pdf | Bin .../TextMesh Pro User Guide 2016.pdf.meta | 0 .../ExtensionNft/Assets/TextMesh Pro/Fonts.meta | 0 .../TextMesh Pro/Fonts/LiberationSans - OFL.txt | 0 .../Fonts/LiberationSans - OFL.txt.meta | 0 .../TextMesh Pro/Fonts/LiberationSans.ttf | Bin .../TextMesh Pro/Fonts/LiberationSans.ttf.meta | 0 .../Assets/TextMesh Pro/Resources.meta | 0 .../Resources/Fonts & Materials.meta | 0 .../LiberationSans SDF - Drop Shadow.mat | 0 .../LiberationSans SDF - Drop Shadow.mat.meta | 0 .../LiberationSans SDF - Fallback.asset | 0 .../LiberationSans SDF - Fallback.asset.meta | 0 .../LiberationSans SDF - Outline.mat | 0 .../LiberationSans SDF - Outline.mat.meta | 0 .../Fonts & Materials/LiberationSans SDF.asset | 0 .../LiberationSans SDF.asset.meta | 0 .../LineBreaking Following Characters.txt | 0 .../LineBreaking Following Characters.txt.meta | 0 .../LineBreaking Leading Characters.txt | 0 .../LineBreaking Leading Characters.txt.meta | 0 .../TextMesh Pro/Resources/Sprite Assets.meta | 0 .../Resources/Sprite Assets/EmojiOne.asset | 0 .../Resources/Sprite Assets/EmojiOne.asset.meta | 0 .../TextMesh Pro/Resources/Style Sheets.meta | 0 .../Style Sheets/Default Style Sheet.asset | 0 .../Style Sheets/Default Style Sheet.asset.meta | 0 .../TextMesh Pro/Resources/TMP Settings.asset | 0 .../Resources/TMP Settings.asset.meta | 0 .../Assets/TextMesh Pro/Shaders.meta | 0 .../Shaders/TMP_Bitmap-Custom-Atlas.shader | 0 .../Shaders/TMP_Bitmap-Custom-Atlas.shader.meta | 0 .../Shaders/TMP_Bitmap-Mobile.shader | 0 .../Shaders/TMP_Bitmap-Mobile.shader.meta | 0 .../TextMesh Pro/Shaders/TMP_Bitmap.shader | 0 .../TextMesh Pro/Shaders/TMP_Bitmap.shader.meta | 0 .../TextMesh Pro/Shaders/TMP_SDF Overlay.shader | 0 .../Shaders/TMP_SDF Overlay.shader.meta | 0 .../TextMesh Pro/Shaders/TMP_SDF SSD.shader | 0 .../Shaders/TMP_SDF SSD.shader.meta | 0 .../Shaders/TMP_SDF-Mobile Masking.shader | 0 .../Shaders/TMP_SDF-Mobile Masking.shader.meta | 0 .../Shaders/TMP_SDF-Mobile Overlay.shader | 0 .../Shaders/TMP_SDF-Mobile Overlay.shader.meta | 0 .../Shaders/TMP_SDF-Mobile SSD.shader | 0 .../Shaders/TMP_SDF-Mobile SSD.shader.meta | 0 .../TextMesh Pro/Shaders/TMP_SDF-Mobile.shader | 0 .../Shaders/TMP_SDF-Mobile.shader.meta | 0 .../Shaders/TMP_SDF-Surface-Mobile.shader | 0 .../Shaders/TMP_SDF-Surface-Mobile.shader.meta | 0 .../TextMesh Pro/Shaders/TMP_SDF-Surface.shader | 0 .../Shaders/TMP_SDF-Surface.shader.meta | 0 .../Assets/TextMesh Pro/Shaders/TMP_SDF.shader | 0 .../TextMesh Pro/Shaders/TMP_SDF.shader.meta | 0 .../TextMesh Pro/Shaders/TMP_Sprite.shader | 0 .../TextMesh Pro/Shaders/TMP_Sprite.shader.meta | 0 .../Assets/TextMesh Pro/Shaders/TMPro.cginc | 0 .../TextMesh Pro/Shaders/TMPro.cginc.meta | 0 .../TextMesh Pro/Shaders/TMPro_Mobile.cginc | 0 .../Shaders/TMPro_Mobile.cginc.meta | 0 .../TextMesh Pro/Shaders/TMPro_Properties.cginc | 0 .../Shaders/TMPro_Properties.cginc.meta | 0 .../TextMesh Pro/Shaders/TMPro_Surface.cginc | 0 .../Shaders/TMPro_Surface.cginc.meta | 0 .../Assets/TextMesh Pro/Sprites.meta | 0 .../Sprites/EmojiOne Attribution.txt | 0 .../Sprites/EmojiOne Attribution.txt.meta | 0 .../Assets/TextMesh Pro/Sprites/EmojiOne.json | 0 .../TextMesh Pro/Sprites/EmojiOne.json.meta | 0 .../Assets/TextMesh Pro/Sprites/EmojiOne.png | Bin .../TextMesh Pro/Sprites/EmojiOne.png.meta | 0 .../ExtensionNft/Assets/WebGLTemplates.meta | 0 .../WebGLTemplates/SolanaWebGlTemplate.meta | 0 .../SolanaWebGlTemplate/TemplateData.meta | 0 .../TemplateData/favicon.ico | Bin .../TemplateData/favicon.ico.meta | 0 .../TemplateData/fullscreen-button.png | Bin .../TemplateData/fullscreen-button.png.meta | 0 .../TemplateData/progress-bar-empty-dark.png | Bin .../progress-bar-empty-dark.png.meta | 0 .../TemplateData/progress-bar-empty-light.png | Bin .../progress-bar-empty-light.png.meta | 0 .../TemplateData/progress-bar-full-dark.png | Bin .../progress-bar-full-dark.png.meta | 0 .../TemplateData/progress-bar-full-light.png | Bin .../progress-bar-full-light.png.meta | 0 .../SolanaWebGlTemplate/TemplateData/style.css | 0 .../TemplateData/style.css.meta | 0 .../TemplateData/unity-logo-dark.png | Bin .../TemplateData/unity-logo-dark.png.meta | 0 .../TemplateData/unity-logo-light.png | Bin .../TemplateData/unity-logo-light.png.meta | 0 .../TemplateData/webgl-logo.png | Bin .../TemplateData/webgl-logo.png.meta | 0 .../SolanaWebGlTemplate/index.html | 0 .../SolanaWebGlTemplate/index.html.meta | 0 .../SolanaWebGlTemplate/thumbnail.png | Bin .../SolanaWebGlTemplate/thumbnail.png.meta | 0 .../Assets/WebGLTemplates/xNFT.meta | 0 .../Assets/WebGLTemplates/xNFT/index.html | 0 .../Assets/WebGLTemplates/xNFT/index.html.meta | 0 .../Assets/WebGLTemplates/xNFT/thumbnail.png | Bin .../WebGLTemplates/xNFT/thumbnail.png.meta | 0 .../unity/ExtensionNft/Packages/manifest.json | 0 .../ExtensionNft/Packages/packages-lock.json | 0 .../ProjectSettings/AudioManager.asset | 0 .../ProjectSettings/ClusterInputManager.asset | 0 .../ProjectSettings/DynamicsManager.asset | 0 .../ProjectSettings/EditorBuildSettings.asset | 0 .../ProjectSettings/EditorSettings.asset | 0 .../ProjectSettings/GraphicsSettings.asset | 0 .../ProjectSettings/InputManager.asset | 0 .../ProjectSettings/MemorySettings.asset | 0 .../ProjectSettings/NavMeshAreas.asset | 0 .../PackageManagerSettings.asset | 0 .../Settings.json | 0 .../ProjectSettings/Physics2DSettings.asset | 0 .../ProjectSettings/PresetManager.asset | 0 .../ProjectSettings/ProjectSettings.asset | 0 .../ProjectSettings/ProjectVersion.txt | 0 .../ProjectSettings/QualitySettings.asset | 0 .../ProjectSettings/SceneTemplateSettings.json | 0 .../ProjectSettings/TagManager.asset | 0 .../ProjectSettings/TimeManager.asset | 0 .../ProjectSettings/UnityConnectSettings.asset | 0 .../ProjectSettings/VFXManager.asset | 0 .../VersionControlSettings.asset | 0 .../ProjectSettings/XRSettings.asset | 0 .../ExtensionNft/ProjectSettings/boot.config | 0 .../UserSettings/EditorUserSettings.asset | 0 .../UserSettings/Layouts/default-2021.dwlt | 0 .../ExtensionNft/UserSettings/Search.settings | 0 nft/minter/README.md | 13 +++++++++++++ .../minter}/anchor-v1/Anchor.toml | 0 .../minter}/anchor-v1/CHANGELOG.md | 0 .../minter}/anchor-v1/Cargo.toml | 0 .../minter}/anchor-v1/README.md | 2 +- .../minter}/anchor-v1/prepare.mjs | 0 .../anchor-v1/programs/nft-minter/Cargo.toml | 0 .../anchor-v1/programs/nft-minter}/Xargo.toml | 0 .../anchor-v1/programs/nft-minter/src/lib.rs | 0 .../nft-minter/tests/test_nft_minter.rs | 0 .../tests/fixtures/mpl_token_metadata.so | Bin .../minter}/anchor/Anchor.toml | 0 .../minter}/anchor/CHANGELOG.md | 0 .../nft-minter => nft/minter}/anchor/Cargo.toml | 0 .../nft-minter => nft/minter}/anchor/README.md | 2 +- .../minter}/anchor/prepare.mjs | 0 .../anchor/programs/nft-minter/Cargo.toml | 0 .../anchor/programs/nft-minter}/Xargo.toml | 0 .../anchor/programs/nft-minter/src/lib.rs | 0 .../nft-minter/tests/test_nft_minter.rs | 0 .../anchor/tests/fixtures/mpl_token_metadata.so | Bin .../minter}/native/CHANGELOG.md | 0 .../minter}/native/program/Cargo.toml | 0 .../minter}/native/program/src/bridge.rs | 0 .../native/program/src/instructions/create.rs | 0 .../native/program/src/instructions/mint.rs | 0 .../native/program/src/instructions/mod.rs | 0 .../minter}/native/program/src/lib.rs | 0 .../minter}/native/program/src/processor.rs | 0 .../minter}/native/program/tests/test.rs | 0 .../native/tests/fixtures/mpl_token_metadata.so | Bin .../minter}/quasar/CHANGELOG.md | 0 .../nft-minter => nft/minter}/quasar/Cargo.toml | 2 +- .../minter}/quasar/Quasar.toml | 0 .../nft-minter => nft/minter}/quasar/README.md | 2 +- .../nft-minter => nft/minter}/quasar/src/lib.rs | 0 .../minter}/quasar/src/tests.rs | 0 nft/operations/README.md | 7 +++++++ .../operations}/anchor-v1/Anchor.toml | 0 .../operations}/anchor-v1/CHANGELOG.md | 0 .../operations}/anchor-v1/Cargo.toml | 0 .../operations}/anchor-v1/README.md | 0 .../operations}/anchor-v1/prepare.mjs | 0 .../anchor-v1/programs/mint-nft/Cargo.toml | 0 .../anchor-v1/programs/mint-nft}/Xargo.toml | 0 .../anchor-v1/programs/mint-nft/src/error.rs | 0 .../src/instructions/create_collection.rs | 0 .../mint-nft/src/instructions/mint_nft.rs | 0 .../programs/mint-nft/src/instructions/mod.rs | 0 .../src/instructions/verify_collection.rs | 0 .../anchor-v1/programs/mint-nft/src/lib.rs | 0 .../mint-nft/tests/test_nft_operations.rs | 0 .../tests/fixtures/mpl_token_metadata.so | Bin .../operations}/anchor/Anchor.toml | 0 .../operations}/anchor/CHANGELOG.md | 0 .../operations}/anchor/Cargo.toml | 0 .../operations}/anchor/README.md | 0 .../operations}/anchor/prepare.mjs | 0 .../anchor/programs/mint-nft/Cargo.toml | 0 .../anchor/programs/mint-nft}/Xargo.toml | 0 .../anchor/programs/mint-nft/src/error.rs | 0 .../src/instructions/create_collection.rs | 0 .../mint-nft/src/instructions/mint_nft.rs | 0 .../programs/mint-nft/src/instructions/mod.rs | 0 .../src/instructions/verify_collection.rs | 0 .../anchor/programs/mint-nft/src/lib.rs | 0 .../mint-nft/tests/test_nft_operations.rs | 0 .../anchor/tests/fixtures/mpl_token_metadata.so | Bin .../operations}/quasar/CHANGELOG.md | 0 .../operations}/quasar/Cargo.toml | 2 +- .../operations}/quasar/Quasar.toml | 0 .../operations}/quasar/README.md | 2 +- .../src/instructions/create_collection.rs | 0 .../quasar/src/instructions/mint_nft.rs | 0 .../operations}/quasar/src/instructions/mod.rs | 0 .../src/instructions/verify_collection.rs | 0 .../operations}/quasar/src/lib.rs | 0 .../operations}/quasar/src/tests.rs | 0 scripts/generate-quasar-readmes.mjs | 6 +++--- tokens/nft-minter/README.md | 14 ++------------ tokens/nft-operations/README.md | 8 ++------ tokens/quasar-metadata/README.md | 4 ++-- .../nft-meta-data-pointer/README.md | 3 +++ 529 files changed, 79 insertions(+), 51 deletions(-) create mode 100644 basics/resizing-accounts/README.md rename basics/{realloc => resizing-accounts}/anchor-v1/.gitignore (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/.prettierignore (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/Anchor.toml (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/CHANGELOG.md (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/Cargo.toml (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/README.md (94%) rename basics/{realloc => resizing-accounts}/anchor-v1/programs/anchor-realloc/Cargo.toml (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/programs/anchor-realloc/Xargo.toml (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/programs/anchor-realloc/src/instructions/initialize.rs (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/programs/anchor-realloc/src/instructions/mod.rs (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/programs/anchor-realloc/src/instructions/update.rs (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/programs/anchor-realloc/src/lib.rs (100%) rename basics/{realloc => resizing-accounts}/anchor-v1/programs/anchor-realloc/tests/test_realloc.rs (100%) rename basics/{realloc => resizing-accounts}/anchor/.gitignore (100%) rename basics/{realloc => resizing-accounts}/anchor/.prettierignore (100%) rename basics/{realloc => resizing-accounts}/anchor/Anchor.toml (100%) rename basics/{realloc => resizing-accounts}/anchor/CHANGELOG.md (100%) rename basics/{realloc => resizing-accounts}/anchor/Cargo.toml (100%) rename basics/{realloc => resizing-accounts}/anchor/README.md (95%) rename basics/{realloc => resizing-accounts}/anchor/programs/anchor-realloc/Cargo.toml (100%) rename basics/{realloc => resizing-accounts}/anchor/programs/anchor-realloc/Xargo.toml (100%) rename basics/{realloc => resizing-accounts}/anchor/programs/anchor-realloc/src/instructions/initialize.rs (100%) rename basics/{realloc => resizing-accounts}/anchor/programs/anchor-realloc/src/instructions/mod.rs (100%) rename basics/{realloc => resizing-accounts}/anchor/programs/anchor-realloc/src/instructions/update.rs (100%) rename basics/{realloc => resizing-accounts}/anchor/programs/anchor-realloc/src/lib.rs (100%) rename basics/{realloc => resizing-accounts}/anchor/programs/anchor-realloc/tests/test_realloc.rs (100%) rename basics/{realloc => resizing-accounts}/native/CHANGELOG.md (100%) rename basics/{realloc => resizing-accounts}/native/program/Cargo.toml (100%) rename basics/{realloc => resizing-accounts}/native/program/src/instructions/create.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/src/instructions/mod.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/src/instructions/reallocate.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/src/lib.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/src/processor.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/src/state/address_info.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/src/state/enhanced_address_info.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/src/state/mod.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/src/state/work_info.rs (100%) rename basics/{realloc => resizing-accounts}/native/program/tests/test.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/CHANGELOG.md (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/Cargo.toml (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/instructions/create.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/instructions/mod.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/instructions/reallocate.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/lib.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/processor.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/state/address_info.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/state/enhanced_address_info.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/state/mod.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/src/state/work_info.rs (100%) rename basics/{realloc => resizing-accounts}/pinocchio/program/tests/test.rs (100%) rename basics/{realloc => resizing-accounts}/quasar/CHANGELOG.md (100%) rename basics/{realloc => resizing-accounts}/quasar/Cargo.toml (100%) rename basics/{realloc => resizing-accounts}/quasar/Quasar.toml (100%) rename basics/{realloc => resizing-accounts}/quasar/README.md (94%) rename basics/{realloc => resizing-accounts}/quasar/src/instructions/initialize.rs (100%) rename basics/{realloc => resizing-accounts}/quasar/src/instructions/mod.rs (100%) rename basics/{realloc => resizing-accounts}/quasar/src/instructions/update.rs (100%) rename basics/{realloc => resizing-accounts}/quasar/src/lib.rs (100%) rename basics/{realloc => resizing-accounts}/quasar/src/state.rs (100%) rename basics/{realloc => resizing-accounts}/quasar/src/tests.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/README.md (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/.gitignore (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/.prettierignore (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/Anchor.toml (100%) rename {tokens/nft-operations => nft/metadata-pointer}/anchor-v1/Cargo.toml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/README.md (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/package.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/pnpm-lock.yaml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/Cargo.toml (100%) rename {tokens/nft-minter/anchor-v1/programs/nft-minter => nft/metadata-pointer/anchor-v1/programs/extension_nft}/Xargo.toml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/constants.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/errors.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/instructions/chop_tree.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/instructions/init_player.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/instructions/mint_nft.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/instructions/mod.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/lib.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/state/game_data.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/state/mod.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/src/state/player_data.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/programs/extension_nft/tests/test_extension_nft.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor-v1/rustfmt.toml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/.gitignore (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/.prettierignore (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/Anchor.toml (100%) rename {tokens/nft-operations => nft/metadata-pointer}/anchor/Cargo.toml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/README.md (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/package.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/pnpm-lock.yaml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/Cargo.toml (100%) rename {tokens/nft-minter/anchor/programs/nft-minter => nft/metadata-pointer/anchor/programs/extension_nft}/Xargo.toml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/constants.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/errors.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/instructions/chop_tree.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/instructions/init_player.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/instructions/mint_nft.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/instructions/mod.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/lib.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/session.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/state/game_data.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/state/mod.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/src/state/player_data.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/programs/extension_nft/tests/test_extension_nft.rs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/anchor/rustfmt.toml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/.env.local.example (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/.eslintrc.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/.gitignore (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/README.md (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/components/ChopTreeButton.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/components/DisplayGameState.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/components/DisplayNfts.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/components/InitPlayerButton.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/components/MintNftButton.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/components/RequestAirdrop.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/components/SessionKeyButton.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/components/WalletMultiButton.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/contexts/GameStateProvider.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/contexts/NftProvider.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/contexts/SessionProvider.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/contexts/WalletContextProvider.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/idl/extension_nft.ts (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/next.config.js (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/package.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/pages/_app.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/pages/_document.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/pages/api/hello.ts (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/pages/index.tsx (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/public/Beaver.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/public/Tree.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/public/Wood.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/public/energy.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/public/favicon.ico (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/public/next.svg (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/public/vercel.svg (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/styles/Home.module.css (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/styles/globals.css (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/tsconfig.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/utils/anchor.ts (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/app/utils/wrappedConnection.ts (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/nx.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/package.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/.gitattributes (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/.gitignore (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/readme.txt (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/DOTween 4/readme.txt.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Materials.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scenes.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/background.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/background.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/beaver.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/beaver.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/tree.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/tree.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Socket.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Documentation.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Fonts.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Sprites.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/xNFT.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png.meta (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Packages/manifest.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/Packages/packages-lock.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/AudioManager.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/ClusterInputManager.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/DynamicsManager.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/EditorBuildSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/EditorSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/GraphicsSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/InputManager.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/MemorySettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/NavMeshAreas.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/PackageManagerSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/Physics2DSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/PresetManager.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/ProjectSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/ProjectVersion.txt (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/QualitySettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/SceneTemplateSettings.json (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/TagManager.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/TimeManager.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/UnityConnectSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/VFXManager.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/VersionControlSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/XRSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/ProjectSettings/boot.config (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/UserSettings/EditorUserSettings.asset (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/UserSettings/Layouts/default-2021.dwlt (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/metadata-pointer}/unity/ExtensionNft/UserSettings/Search.settings (100%) create mode 100644 nft/minter/README.md rename {tokens/nft-minter => nft/minter}/anchor-v1/Anchor.toml (100%) rename {tokens/nft-minter => nft/minter}/anchor-v1/CHANGELOG.md (100%) rename {tokens/nft-minter => nft/minter}/anchor-v1/Cargo.toml (100%) rename {tokens/nft-minter => nft/minter}/anchor-v1/README.md (95%) rename {tokens/nft-minter => nft/minter}/anchor-v1/prepare.mjs (100%) rename {tokens/nft-minter => nft/minter}/anchor-v1/programs/nft-minter/Cargo.toml (100%) rename {tokens/nft-operations/anchor-v1/programs/mint-nft => nft/minter/anchor-v1/programs/nft-minter}/Xargo.toml (100%) rename {tokens/nft-minter => nft/minter}/anchor-v1/programs/nft-minter/src/lib.rs (100%) rename {tokens/nft-minter => nft/minter}/anchor-v1/programs/nft-minter/tests/test_nft_minter.rs (100%) rename {tokens/nft-minter => nft/minter}/anchor-v1/tests/fixtures/mpl_token_metadata.so (100%) rename {tokens/nft-minter => nft/minter}/anchor/Anchor.toml (100%) rename {tokens/nft-minter => nft/minter}/anchor/CHANGELOG.md (100%) rename {tokens/nft-minter => nft/minter}/anchor/Cargo.toml (100%) rename {tokens/nft-minter => nft/minter}/anchor/README.md (95%) rename {tokens/nft-minter => nft/minter}/anchor/prepare.mjs (100%) rename {tokens/nft-minter => nft/minter}/anchor/programs/nft-minter/Cargo.toml (100%) rename {tokens/nft-operations/anchor/programs/mint-nft => nft/minter/anchor/programs/nft-minter}/Xargo.toml (100%) rename {tokens/nft-minter => nft/minter}/anchor/programs/nft-minter/src/lib.rs (100%) rename {tokens/nft-minter => nft/minter}/anchor/programs/nft-minter/tests/test_nft_minter.rs (100%) rename {tokens/nft-minter => nft/minter}/anchor/tests/fixtures/mpl_token_metadata.so (100%) rename {tokens/nft-minter => nft/minter}/native/CHANGELOG.md (100%) rename {tokens/nft-minter => nft/minter}/native/program/Cargo.toml (100%) rename {tokens/nft-minter => nft/minter}/native/program/src/bridge.rs (100%) rename {tokens/nft-minter => nft/minter}/native/program/src/instructions/create.rs (100%) rename {tokens/nft-minter => nft/minter}/native/program/src/instructions/mint.rs (100%) rename {tokens/nft-minter => nft/minter}/native/program/src/instructions/mod.rs (100%) rename {tokens/nft-minter => nft/minter}/native/program/src/lib.rs (100%) rename {tokens/nft-minter => nft/minter}/native/program/src/processor.rs (100%) rename {tokens/nft-minter => nft/minter}/native/program/tests/test.rs (100%) rename {tokens/nft-minter => nft/minter}/native/tests/fixtures/mpl_token_metadata.so (100%) rename {tokens/nft-minter => nft/minter}/quasar/CHANGELOG.md (100%) rename {tokens/nft-minter => nft/minter}/quasar/Cargo.toml (96%) rename {tokens/nft-minter => nft/minter}/quasar/Quasar.toml (100%) rename {tokens/nft-minter => nft/minter}/quasar/README.md (95%) rename {tokens/nft-minter => nft/minter}/quasar/src/lib.rs (100%) rename {tokens/nft-minter => nft/minter}/quasar/src/tests.rs (100%) create mode 100644 nft/operations/README.md rename {tokens/nft-operations => nft/operations}/anchor-v1/Anchor.toml (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/CHANGELOG.md (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/operations}/anchor-v1/Cargo.toml (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/README.md (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/prepare.mjs (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/programs/mint-nft/Cargo.toml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft => nft/operations/anchor-v1/programs/mint-nft}/Xargo.toml (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/programs/mint-nft/src/error.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/programs/mint-nft/src/instructions/create_collection.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/programs/mint-nft/src/instructions/mint_nft.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/programs/mint-nft/src/instructions/mod.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/programs/mint-nft/src/instructions/verify_collection.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/programs/mint-nft/src/lib.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/programs/mint-nft/tests/test_nft_operations.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor-v1/tests/fixtures/mpl_token_metadata.so (100%) rename {tokens/nft-operations => nft/operations}/anchor/Anchor.toml (100%) rename {tokens/nft-operations => nft/operations}/anchor/CHANGELOG.md (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example => nft/operations}/anchor/Cargo.toml (100%) rename {tokens/nft-operations => nft/operations}/anchor/README.md (100%) rename {tokens/nft-operations => nft/operations}/anchor/prepare.mjs (100%) rename {tokens/nft-operations => nft/operations}/anchor/programs/mint-nft/Cargo.toml (100%) rename {tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft => nft/operations/anchor/programs/mint-nft}/Xargo.toml (100%) rename {tokens/nft-operations => nft/operations}/anchor/programs/mint-nft/src/error.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor/programs/mint-nft/src/instructions/create_collection.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor/programs/mint-nft/src/instructions/mint_nft.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor/programs/mint-nft/src/instructions/mod.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor/programs/mint-nft/src/instructions/verify_collection.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor/programs/mint-nft/src/lib.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor/programs/mint-nft/tests/test_nft_operations.rs (100%) rename {tokens/nft-operations => nft/operations}/anchor/tests/fixtures/mpl_token_metadata.so (100%) rename {tokens/nft-operations => nft/operations}/quasar/CHANGELOG.md (100%) rename {tokens/nft-operations => nft/operations}/quasar/Cargo.toml (96%) rename {tokens/nft-operations => nft/operations}/quasar/Quasar.toml (100%) rename {tokens/nft-operations => nft/operations}/quasar/README.md (98%) rename {tokens/nft-operations => nft/operations}/quasar/src/instructions/create_collection.rs (100%) rename {tokens/nft-operations => nft/operations}/quasar/src/instructions/mint_nft.rs (100%) rename {tokens/nft-operations => nft/operations}/quasar/src/instructions/mod.rs (100%) rename {tokens/nft-operations => nft/operations}/quasar/src/instructions/verify_collection.rs (100%) rename {tokens/nft-operations => nft/operations}/quasar/src/lib.rs (100%) rename {tokens/nft-operations => nft/operations}/quasar/src/tests.rs (100%) create mode 100644 tokens/token-extensions/nft-meta-data-pointer/README.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e769f66..37de42af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,22 @@ All notable changes to this repository are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## [2026-11-06] - NFT examples get their own folder; realloc becomes resizing-accounts + +### Changed + +- The NFT examples move out of `tokens/` into a top-level `nft/` folder, matching the + README's new NFTs section: `tokens/nft-minter` is now `nft/minter`, + `tokens/nft-operations` is now `nft/operations`, and + `tokens/token-extensions/nft-meta-data-pointer/anchor-example` is now + `nft/metadata-pointer`. The two Quasar NFT examples point their `quasar-metadata` + path dependency at `../../../tokens/quasar-metadata`, which stays where it is. +- `basics/realloc` is now `basics/resizing-accounts`, under the README title + "Resizing Accounts". The crate names keep `realloc`, the operation the code performs. +- Each old folder keeps only a `README.md` pointing to the new location. +- The Anchor v1 READMEs of the moved examples name their own `anchor-v1/` directory + rather than the `anchor/` one they were copied from. + ## [2026-10-28] - Anchor v2 examples on Anchor 2.0.0-rc.2, sending v1 transactions Anchor 2.0.0-rc.2's test harness, `anchor-v2-testing`, runs on LiteSVM 0.18, which diff --git a/Cargo.toml b/Cargo.toml index 4178f7f7..56f9883c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,9 +47,9 @@ members = [ "basics/program-derived-addresses/native/program", "basics/program-derived-addresses/pinocchio/program", "basics/program-derived-addresses/anchor/programs/*", - "basics/realloc/native/program", - "basics/realloc/pinocchio/program", - "basics/realloc/anchor/programs/*", + "basics/resizing-accounts/native/program", + "basics/resizing-accounts/pinocchio/program", + "basics/resizing-accounts/anchor/programs/*", "basics/rent/native/program", "basics/rent/pinocchio/program", "basics/rent/anchor/programs/*", @@ -94,12 +94,12 @@ members = [ "tokens/create-token/native/program", "tokens/token-minter/native/program", "tokens/transfer-tokens/native/program", - "tokens/nft-minter/native/program", + "nft/minter/native/program", "tokens/pda-mint-authority/native/program", "tokens/create-token/anchor/programs/create-token", "tokens/external-delegate-token-master/anchor/programs/external-delegate-token-master", - "tokens/nft-minter/anchor/programs/nft-minter", - "tokens/nft-operations/anchor/programs/mint-nft", + "nft/minter/anchor/programs/nft-minter", + "nft/operations/anchor/programs/mint-nft", "tokens/pda-mint-authority/anchor/programs/token-minter", "tokens/token-minter/anchor/programs/token-minter", "tokens/transfer-tokens/anchor/programs/transfer-tokens", @@ -112,7 +112,7 @@ members = [ "tokens/token-extensions/memo-transfer/anchor/programs/memo-transfer", "tokens/token-extensions/metadata/anchor/programs/metadata", "tokens/token-extensions/mint-close-authority/anchor/programs/mint-close-authority", - "tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft", + "nft/metadata-pointer/anchor/programs/extension_nft", "tokens/token-extensions/non-transferable/anchor/programs/non-transferable", "tokens/token-extensions/permanent-delegate/anchor/programs/permanent-delegate", "tokens/token-extensions/transfer-fee/anchor/programs/transfer-fee", diff --git a/README.md b/README.md index d21f7e96..53d354d4 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ Store and retrieve state using PDAs as deterministic account addresses. Grow or shrink an account after it has been created, a process Solana calls **realloc** (reallocation): the account's data is resized and its rent-exempt balance topped up or refunded to match. -[⚓ Anchor v1](./basics/realloc/anchor-v1) [⚓ Anchor v2](./basics/realloc/anchor) [💫 Quasar](./basics/realloc/quasar) [🤥 Pinocchio](./basics/realloc/pinocchio) [🦀 Native](./basics/realloc/native) +[⚓ Anchor v1](./basics/resizing-accounts/anchor-v1) [⚓ Anchor v2](./basics/resizing-accounts/anchor) [💫 Quasar](./basics/resizing-accounts/quasar) [🤥 Pinocchio](./basics/resizing-accounts/pinocchio) [🦀 Native](./basics/resizing-accounts/native) ### Rent @@ -357,19 +357,19 @@ Restrict transfers so only whitelisted accounts can receive tokens. Mint an NFT from inside your own program using the Token and Metaplex Token Metadata programs. -[⚓ Anchor v1](./tokens/nft-minter/anchor-v1) [⚓ Anchor v2](./tokens/nft-minter/anchor) [💫 Quasar](./tokens/nft-minter/quasar) [🦀 Native](./tokens/nft-minter/native) +[⚓ Anchor v1](./nft/minter/anchor-v1) [⚓ Anchor v2](./nft/minter/anchor) [💫 Quasar](./nft/minter/quasar) [🦀 Native](./nft/minter/native) ### NFT Operations Create an NFT collection, mint NFTs, and verify NFTs as part of a collection using Metaplex Token Metadata. -[⚓ Anchor v1](./tokens/nft-operations/anchor-v1) [⚓ Anchor v2](./tokens/nft-operations/anchor) [💫 Quasar](./tokens/nft-operations/quasar) +[⚓ Anchor v1](./nft/operations/anchor-v1) [⚓ Anchor v2](./nft/operations/anchor) [💫 Quasar](./nft/operations/quasar) ### NFT Metadata Pointer Create an NFT using the metadata pointer extension, storing onchain metadata (including custom fields) inside the mint. -[⚓ Anchor v1](./tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1) [⚓ Anchor v2](./tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor) +[⚓ Anchor v1](./nft/metadata-pointer/anchor-v1) [⚓ Anchor v2](./nft/metadata-pointer/anchor) ## Compression diff --git a/basics/realloc/README.md b/basics/realloc/README.md index 419898b0..240fc580 100644 --- a/basics/realloc/README.md +++ b/basics/realloc/README.md @@ -1,9 +1,3 @@ -# Realloc +# Moved -Resize a Solana [account](https://solana.com/docs/terminology#account) after it has been created - grow or shrink the data it can hold. - -## A note on `realloc` vs `resize` - -The runtime method `AccountInfo::realloc` has been deprecated in favor of `AccountInfo::resize` ([anchor#4526](https://github.com/solana-foundation/anchor/issues/4526)). New code should call `AccountInfo::resize`. - -The [Anchor](https://solana.com/docs/terminology#anchor) account-constraint macros (`#[account(realloc = ..., realloc::payer = ..., realloc::zero = ...)]`) are **not yet renamed** and still use the `realloc` spelling. That is the correct form to use today; track the issue above for any future change. +This example has moved to [`basics/resizing-accounts`](../resizing-accounts). diff --git a/basics/resizing-accounts/README.md b/basics/resizing-accounts/README.md new file mode 100644 index 00000000..419898b0 --- /dev/null +++ b/basics/resizing-accounts/README.md @@ -0,0 +1,9 @@ +# Realloc + +Resize a Solana [account](https://solana.com/docs/terminology#account) after it has been created - grow or shrink the data it can hold. + +## A note on `realloc` vs `resize` + +The runtime method `AccountInfo::realloc` has been deprecated in favor of `AccountInfo::resize` ([anchor#4526](https://github.com/solana-foundation/anchor/issues/4526)). New code should call `AccountInfo::resize`. + +The [Anchor](https://solana.com/docs/terminology#anchor) account-constraint macros (`#[account(realloc = ..., realloc::payer = ..., realloc::zero = ...)]`) are **not yet renamed** and still use the `realloc` spelling. That is the correct form to use today; track the issue above for any future change. diff --git a/basics/realloc/anchor-v1/.gitignore b/basics/resizing-accounts/anchor-v1/.gitignore similarity index 100% rename from basics/realloc/anchor-v1/.gitignore rename to basics/resizing-accounts/anchor-v1/.gitignore diff --git a/basics/realloc/anchor-v1/.prettierignore b/basics/resizing-accounts/anchor-v1/.prettierignore similarity index 100% rename from basics/realloc/anchor-v1/.prettierignore rename to basics/resizing-accounts/anchor-v1/.prettierignore diff --git a/basics/realloc/anchor-v1/Anchor.toml b/basics/resizing-accounts/anchor-v1/Anchor.toml similarity index 100% rename from basics/realloc/anchor-v1/Anchor.toml rename to basics/resizing-accounts/anchor-v1/Anchor.toml diff --git a/basics/realloc/anchor-v1/CHANGELOG.md b/basics/resizing-accounts/anchor-v1/CHANGELOG.md similarity index 100% rename from basics/realloc/anchor-v1/CHANGELOG.md rename to basics/resizing-accounts/anchor-v1/CHANGELOG.md diff --git a/basics/realloc/anchor-v1/Cargo.toml b/basics/resizing-accounts/anchor-v1/Cargo.toml similarity index 100% rename from basics/realloc/anchor-v1/Cargo.toml rename to basics/resizing-accounts/anchor-v1/Cargo.toml diff --git a/basics/realloc/anchor-v1/README.md b/basics/resizing-accounts/anchor-v1/README.md similarity index 94% rename from basics/realloc/anchor-v1/README.md rename to basics/resizing-accounts/anchor-v1/README.md index 07292ab7..04b6831e 100644 --- a/basics/realloc/anchor-v1/README.md +++ b/basics/resizing-accounts/anchor-v1/README.md @@ -17,7 +17,7 @@ See also: [Realloc overview](../README.md) and the [repository catalog](../../.. ## Setup -From this directory (`basics/realloc/anchor/`): +From this directory (`basics/resizing-accounts/anchor-v1/`): ```bash anchor build diff --git a/basics/realloc/anchor-v1/programs/anchor-realloc/Cargo.toml b/basics/resizing-accounts/anchor-v1/programs/anchor-realloc/Cargo.toml similarity index 100% rename from basics/realloc/anchor-v1/programs/anchor-realloc/Cargo.toml rename to basics/resizing-accounts/anchor-v1/programs/anchor-realloc/Cargo.toml diff --git a/basics/realloc/anchor-v1/programs/anchor-realloc/Xargo.toml b/basics/resizing-accounts/anchor-v1/programs/anchor-realloc/Xargo.toml similarity index 100% rename from basics/realloc/anchor-v1/programs/anchor-realloc/Xargo.toml rename to basics/resizing-accounts/anchor-v1/programs/anchor-realloc/Xargo.toml diff --git a/basics/realloc/anchor-v1/programs/anchor-realloc/src/instructions/initialize.rs b/basics/resizing-accounts/anchor-v1/programs/anchor-realloc/src/instructions/initialize.rs similarity index 100% rename from basics/realloc/anchor-v1/programs/anchor-realloc/src/instructions/initialize.rs rename to basics/resizing-accounts/anchor-v1/programs/anchor-realloc/src/instructions/initialize.rs diff --git a/basics/realloc/anchor-v1/programs/anchor-realloc/src/instructions/mod.rs b/basics/resizing-accounts/anchor-v1/programs/anchor-realloc/src/instructions/mod.rs similarity index 100% rename from basics/realloc/anchor-v1/programs/anchor-realloc/src/instructions/mod.rs rename to basics/resizing-accounts/anchor-v1/programs/anchor-realloc/src/instructions/mod.rs diff --git a/basics/realloc/anchor-v1/programs/anchor-realloc/src/instructions/update.rs b/basics/resizing-accounts/anchor-v1/programs/anchor-realloc/src/instructions/update.rs similarity index 100% rename from basics/realloc/anchor-v1/programs/anchor-realloc/src/instructions/update.rs rename to basics/resizing-accounts/anchor-v1/programs/anchor-realloc/src/instructions/update.rs diff --git a/basics/realloc/anchor-v1/programs/anchor-realloc/src/lib.rs b/basics/resizing-accounts/anchor-v1/programs/anchor-realloc/src/lib.rs similarity index 100% rename from basics/realloc/anchor-v1/programs/anchor-realloc/src/lib.rs rename to basics/resizing-accounts/anchor-v1/programs/anchor-realloc/src/lib.rs diff --git a/basics/realloc/anchor-v1/programs/anchor-realloc/tests/test_realloc.rs b/basics/resizing-accounts/anchor-v1/programs/anchor-realloc/tests/test_realloc.rs similarity index 100% rename from basics/realloc/anchor-v1/programs/anchor-realloc/tests/test_realloc.rs rename to basics/resizing-accounts/anchor-v1/programs/anchor-realloc/tests/test_realloc.rs diff --git a/basics/realloc/anchor/.gitignore b/basics/resizing-accounts/anchor/.gitignore similarity index 100% rename from basics/realloc/anchor/.gitignore rename to basics/resizing-accounts/anchor/.gitignore diff --git a/basics/realloc/anchor/.prettierignore b/basics/resizing-accounts/anchor/.prettierignore similarity index 100% rename from basics/realloc/anchor/.prettierignore rename to basics/resizing-accounts/anchor/.prettierignore diff --git a/basics/realloc/anchor/Anchor.toml b/basics/resizing-accounts/anchor/Anchor.toml similarity index 100% rename from basics/realloc/anchor/Anchor.toml rename to basics/resizing-accounts/anchor/Anchor.toml diff --git a/basics/realloc/anchor/CHANGELOG.md b/basics/resizing-accounts/anchor/CHANGELOG.md similarity index 100% rename from basics/realloc/anchor/CHANGELOG.md rename to basics/resizing-accounts/anchor/CHANGELOG.md diff --git a/basics/realloc/anchor/Cargo.toml b/basics/resizing-accounts/anchor/Cargo.toml similarity index 100% rename from basics/realloc/anchor/Cargo.toml rename to basics/resizing-accounts/anchor/Cargo.toml diff --git a/basics/realloc/anchor/README.md b/basics/resizing-accounts/anchor/README.md similarity index 95% rename from basics/realloc/anchor/README.md rename to basics/resizing-accounts/anchor/README.md index fa2d0a3e..4cc2c88e 100644 --- a/basics/realloc/anchor/README.md +++ b/basics/resizing-accounts/anchor/README.md @@ -17,7 +17,7 @@ See also: [Realloc overview](../README.md) and the [repository catalog](../../.. ## Setup -From this directory (`basics/realloc/anchor/`): +From this directory (`basics/resizing-accounts/anchor/`): ```bash anchor build diff --git a/basics/realloc/anchor/programs/anchor-realloc/Cargo.toml b/basics/resizing-accounts/anchor/programs/anchor-realloc/Cargo.toml similarity index 100% rename from basics/realloc/anchor/programs/anchor-realloc/Cargo.toml rename to basics/resizing-accounts/anchor/programs/anchor-realloc/Cargo.toml diff --git a/basics/realloc/anchor/programs/anchor-realloc/Xargo.toml b/basics/resizing-accounts/anchor/programs/anchor-realloc/Xargo.toml similarity index 100% rename from basics/realloc/anchor/programs/anchor-realloc/Xargo.toml rename to basics/resizing-accounts/anchor/programs/anchor-realloc/Xargo.toml diff --git a/basics/realloc/anchor/programs/anchor-realloc/src/instructions/initialize.rs b/basics/resizing-accounts/anchor/programs/anchor-realloc/src/instructions/initialize.rs similarity index 100% rename from basics/realloc/anchor/programs/anchor-realloc/src/instructions/initialize.rs rename to basics/resizing-accounts/anchor/programs/anchor-realloc/src/instructions/initialize.rs diff --git a/basics/realloc/anchor/programs/anchor-realloc/src/instructions/mod.rs b/basics/resizing-accounts/anchor/programs/anchor-realloc/src/instructions/mod.rs similarity index 100% rename from basics/realloc/anchor/programs/anchor-realloc/src/instructions/mod.rs rename to basics/resizing-accounts/anchor/programs/anchor-realloc/src/instructions/mod.rs diff --git a/basics/realloc/anchor/programs/anchor-realloc/src/instructions/update.rs b/basics/resizing-accounts/anchor/programs/anchor-realloc/src/instructions/update.rs similarity index 100% rename from basics/realloc/anchor/programs/anchor-realloc/src/instructions/update.rs rename to basics/resizing-accounts/anchor/programs/anchor-realloc/src/instructions/update.rs diff --git a/basics/realloc/anchor/programs/anchor-realloc/src/lib.rs b/basics/resizing-accounts/anchor/programs/anchor-realloc/src/lib.rs similarity index 100% rename from basics/realloc/anchor/programs/anchor-realloc/src/lib.rs rename to basics/resizing-accounts/anchor/programs/anchor-realloc/src/lib.rs diff --git a/basics/realloc/anchor/programs/anchor-realloc/tests/test_realloc.rs b/basics/resizing-accounts/anchor/programs/anchor-realloc/tests/test_realloc.rs similarity index 100% rename from basics/realloc/anchor/programs/anchor-realloc/tests/test_realloc.rs rename to basics/resizing-accounts/anchor/programs/anchor-realloc/tests/test_realloc.rs diff --git a/basics/realloc/native/CHANGELOG.md b/basics/resizing-accounts/native/CHANGELOG.md similarity index 100% rename from basics/realloc/native/CHANGELOG.md rename to basics/resizing-accounts/native/CHANGELOG.md diff --git a/basics/realloc/native/program/Cargo.toml b/basics/resizing-accounts/native/program/Cargo.toml similarity index 100% rename from basics/realloc/native/program/Cargo.toml rename to basics/resizing-accounts/native/program/Cargo.toml diff --git a/basics/realloc/native/program/src/instructions/create.rs b/basics/resizing-accounts/native/program/src/instructions/create.rs similarity index 100% rename from basics/realloc/native/program/src/instructions/create.rs rename to basics/resizing-accounts/native/program/src/instructions/create.rs diff --git a/basics/realloc/native/program/src/instructions/mod.rs b/basics/resizing-accounts/native/program/src/instructions/mod.rs similarity index 100% rename from basics/realloc/native/program/src/instructions/mod.rs rename to basics/resizing-accounts/native/program/src/instructions/mod.rs diff --git a/basics/realloc/native/program/src/instructions/reallocate.rs b/basics/resizing-accounts/native/program/src/instructions/reallocate.rs similarity index 100% rename from basics/realloc/native/program/src/instructions/reallocate.rs rename to basics/resizing-accounts/native/program/src/instructions/reallocate.rs diff --git a/basics/realloc/native/program/src/lib.rs b/basics/resizing-accounts/native/program/src/lib.rs similarity index 100% rename from basics/realloc/native/program/src/lib.rs rename to basics/resizing-accounts/native/program/src/lib.rs diff --git a/basics/realloc/native/program/src/processor.rs b/basics/resizing-accounts/native/program/src/processor.rs similarity index 100% rename from basics/realloc/native/program/src/processor.rs rename to basics/resizing-accounts/native/program/src/processor.rs diff --git a/basics/realloc/native/program/src/state/address_info.rs b/basics/resizing-accounts/native/program/src/state/address_info.rs similarity index 100% rename from basics/realloc/native/program/src/state/address_info.rs rename to basics/resizing-accounts/native/program/src/state/address_info.rs diff --git a/basics/realloc/native/program/src/state/enhanced_address_info.rs b/basics/resizing-accounts/native/program/src/state/enhanced_address_info.rs similarity index 100% rename from basics/realloc/native/program/src/state/enhanced_address_info.rs rename to basics/resizing-accounts/native/program/src/state/enhanced_address_info.rs diff --git a/basics/realloc/native/program/src/state/mod.rs b/basics/resizing-accounts/native/program/src/state/mod.rs similarity index 100% rename from basics/realloc/native/program/src/state/mod.rs rename to basics/resizing-accounts/native/program/src/state/mod.rs diff --git a/basics/realloc/native/program/src/state/work_info.rs b/basics/resizing-accounts/native/program/src/state/work_info.rs similarity index 100% rename from basics/realloc/native/program/src/state/work_info.rs rename to basics/resizing-accounts/native/program/src/state/work_info.rs diff --git a/basics/realloc/native/program/tests/test.rs b/basics/resizing-accounts/native/program/tests/test.rs similarity index 100% rename from basics/realloc/native/program/tests/test.rs rename to basics/resizing-accounts/native/program/tests/test.rs diff --git a/basics/realloc/pinocchio/CHANGELOG.md b/basics/resizing-accounts/pinocchio/CHANGELOG.md similarity index 100% rename from basics/realloc/pinocchio/CHANGELOG.md rename to basics/resizing-accounts/pinocchio/CHANGELOG.md diff --git a/basics/realloc/pinocchio/program/Cargo.toml b/basics/resizing-accounts/pinocchio/program/Cargo.toml similarity index 100% rename from basics/realloc/pinocchio/program/Cargo.toml rename to basics/resizing-accounts/pinocchio/program/Cargo.toml diff --git a/basics/realloc/pinocchio/program/src/instructions/create.rs b/basics/resizing-accounts/pinocchio/program/src/instructions/create.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/instructions/create.rs rename to basics/resizing-accounts/pinocchio/program/src/instructions/create.rs diff --git a/basics/realloc/pinocchio/program/src/instructions/mod.rs b/basics/resizing-accounts/pinocchio/program/src/instructions/mod.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/instructions/mod.rs rename to basics/resizing-accounts/pinocchio/program/src/instructions/mod.rs diff --git a/basics/realloc/pinocchio/program/src/instructions/reallocate.rs b/basics/resizing-accounts/pinocchio/program/src/instructions/reallocate.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/instructions/reallocate.rs rename to basics/resizing-accounts/pinocchio/program/src/instructions/reallocate.rs diff --git a/basics/realloc/pinocchio/program/src/lib.rs b/basics/resizing-accounts/pinocchio/program/src/lib.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/lib.rs rename to basics/resizing-accounts/pinocchio/program/src/lib.rs diff --git a/basics/realloc/pinocchio/program/src/processor.rs b/basics/resizing-accounts/pinocchio/program/src/processor.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/processor.rs rename to basics/resizing-accounts/pinocchio/program/src/processor.rs diff --git a/basics/realloc/pinocchio/program/src/state/address_info.rs b/basics/resizing-accounts/pinocchio/program/src/state/address_info.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/state/address_info.rs rename to basics/resizing-accounts/pinocchio/program/src/state/address_info.rs diff --git a/basics/realloc/pinocchio/program/src/state/enhanced_address_info.rs b/basics/resizing-accounts/pinocchio/program/src/state/enhanced_address_info.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/state/enhanced_address_info.rs rename to basics/resizing-accounts/pinocchio/program/src/state/enhanced_address_info.rs diff --git a/basics/realloc/pinocchio/program/src/state/mod.rs b/basics/resizing-accounts/pinocchio/program/src/state/mod.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/state/mod.rs rename to basics/resizing-accounts/pinocchio/program/src/state/mod.rs diff --git a/basics/realloc/pinocchio/program/src/state/work_info.rs b/basics/resizing-accounts/pinocchio/program/src/state/work_info.rs similarity index 100% rename from basics/realloc/pinocchio/program/src/state/work_info.rs rename to basics/resizing-accounts/pinocchio/program/src/state/work_info.rs diff --git a/basics/realloc/pinocchio/program/tests/test.rs b/basics/resizing-accounts/pinocchio/program/tests/test.rs similarity index 100% rename from basics/realloc/pinocchio/program/tests/test.rs rename to basics/resizing-accounts/pinocchio/program/tests/test.rs diff --git a/basics/realloc/quasar/CHANGELOG.md b/basics/resizing-accounts/quasar/CHANGELOG.md similarity index 100% rename from basics/realloc/quasar/CHANGELOG.md rename to basics/resizing-accounts/quasar/CHANGELOG.md diff --git a/basics/realloc/quasar/Cargo.toml b/basics/resizing-accounts/quasar/Cargo.toml similarity index 100% rename from basics/realloc/quasar/Cargo.toml rename to basics/resizing-accounts/quasar/Cargo.toml diff --git a/basics/realloc/quasar/Quasar.toml b/basics/resizing-accounts/quasar/Quasar.toml similarity index 100% rename from basics/realloc/quasar/Quasar.toml rename to basics/resizing-accounts/quasar/Quasar.toml diff --git a/basics/realloc/quasar/README.md b/basics/resizing-accounts/quasar/README.md similarity index 94% rename from basics/realloc/quasar/README.md rename to basics/resizing-accounts/quasar/README.md index bb084856..ec441dcf 100644 --- a/basics/realloc/quasar/README.md +++ b/basics/resizing-accounts/quasar/README.md @@ -11,7 +11,7 @@ See also: [Realloc overview](../README.md) and the [repository catalog](../../.. ## Setup -From `basics/realloc/quasar/`: +From `basics/resizing-accounts/quasar/`: ```bash quasar build diff --git a/basics/realloc/quasar/src/instructions/initialize.rs b/basics/resizing-accounts/quasar/src/instructions/initialize.rs similarity index 100% rename from basics/realloc/quasar/src/instructions/initialize.rs rename to basics/resizing-accounts/quasar/src/instructions/initialize.rs diff --git a/basics/realloc/quasar/src/instructions/mod.rs b/basics/resizing-accounts/quasar/src/instructions/mod.rs similarity index 100% rename from basics/realloc/quasar/src/instructions/mod.rs rename to basics/resizing-accounts/quasar/src/instructions/mod.rs diff --git a/basics/realloc/quasar/src/instructions/update.rs b/basics/resizing-accounts/quasar/src/instructions/update.rs similarity index 100% rename from basics/realloc/quasar/src/instructions/update.rs rename to basics/resizing-accounts/quasar/src/instructions/update.rs diff --git a/basics/realloc/quasar/src/lib.rs b/basics/resizing-accounts/quasar/src/lib.rs similarity index 100% rename from basics/realloc/quasar/src/lib.rs rename to basics/resizing-accounts/quasar/src/lib.rs diff --git a/basics/realloc/quasar/src/state.rs b/basics/resizing-accounts/quasar/src/state.rs similarity index 100% rename from basics/realloc/quasar/src/state.rs rename to basics/resizing-accounts/quasar/src/state.rs diff --git a/basics/realloc/quasar/src/tests.rs b/basics/resizing-accounts/quasar/src/tests.rs similarity index 100% rename from basics/realloc/quasar/src/tests.rs rename to basics/resizing-accounts/quasar/src/tests.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/README.md b/nft/metadata-pointer/README.md similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/README.md rename to nft/metadata-pointer/README.md diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/.gitignore b/nft/metadata-pointer/anchor-v1/.gitignore similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/.gitignore rename to nft/metadata-pointer/anchor-v1/.gitignore diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/.prettierignore b/nft/metadata-pointer/anchor-v1/.prettierignore similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/.prettierignore rename to nft/metadata-pointer/anchor-v1/.prettierignore diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/Anchor.toml b/nft/metadata-pointer/anchor-v1/Anchor.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/Anchor.toml rename to nft/metadata-pointer/anchor-v1/Anchor.toml diff --git a/tokens/nft-operations/anchor-v1/Cargo.toml b/nft/metadata-pointer/anchor-v1/Cargo.toml similarity index 100% rename from tokens/nft-operations/anchor-v1/Cargo.toml rename to nft/metadata-pointer/anchor-v1/Cargo.toml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/README.md b/nft/metadata-pointer/anchor-v1/README.md similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/README.md rename to nft/metadata-pointer/anchor-v1/README.md diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/package.json b/nft/metadata-pointer/anchor-v1/package.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/package.json rename to nft/metadata-pointer/anchor-v1/package.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/pnpm-lock.yaml b/nft/metadata-pointer/anchor-v1/pnpm-lock.yaml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/pnpm-lock.yaml rename to nft/metadata-pointer/anchor-v1/pnpm-lock.yaml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/Cargo.toml b/nft/metadata-pointer/anchor-v1/programs/extension_nft/Cargo.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/Cargo.toml rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/Cargo.toml diff --git a/tokens/nft-minter/anchor-v1/programs/nft-minter/Xargo.toml b/nft/metadata-pointer/anchor-v1/programs/extension_nft/Xargo.toml similarity index 100% rename from tokens/nft-minter/anchor-v1/programs/nft-minter/Xargo.toml rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/Xargo.toml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/constants.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/constants.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/constants.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/constants.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/errors.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/errors.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/errors.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/errors.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/instructions/chop_tree.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/instructions/chop_tree.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/instructions/chop_tree.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/instructions/chop_tree.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/instructions/init_player.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/instructions/init_player.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/instructions/init_player.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/instructions/init_player.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/instructions/mint_nft.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/instructions/mint_nft.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/instructions/mint_nft.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/instructions/mint_nft.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/instructions/mod.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/instructions/mod.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/instructions/mod.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/instructions/mod.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/lib.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/lib.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/lib.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/lib.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/state/game_data.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/state/game_data.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/state/game_data.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/state/game_data.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/state/mod.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/state/mod.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/state/mod.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/state/mod.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/state/player_data.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/src/state/player_data.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/src/state/player_data.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/src/state/player_data.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/tests/test_extension_nft.rs b/nft/metadata-pointer/anchor-v1/programs/extension_nft/tests/test_extension_nft.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/tests/test_extension_nft.rs rename to nft/metadata-pointer/anchor-v1/programs/extension_nft/tests/test_extension_nft.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/rustfmt.toml b/nft/metadata-pointer/anchor-v1/rustfmt.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/rustfmt.toml rename to nft/metadata-pointer/anchor-v1/rustfmt.toml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/.gitignore b/nft/metadata-pointer/anchor/.gitignore similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/.gitignore rename to nft/metadata-pointer/anchor/.gitignore diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/.prettierignore b/nft/metadata-pointer/anchor/.prettierignore similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/.prettierignore rename to nft/metadata-pointer/anchor/.prettierignore diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/Anchor.toml b/nft/metadata-pointer/anchor/Anchor.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/Anchor.toml rename to nft/metadata-pointer/anchor/Anchor.toml diff --git a/tokens/nft-operations/anchor/Cargo.toml b/nft/metadata-pointer/anchor/Cargo.toml similarity index 100% rename from tokens/nft-operations/anchor/Cargo.toml rename to nft/metadata-pointer/anchor/Cargo.toml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/README.md b/nft/metadata-pointer/anchor/README.md similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/README.md rename to nft/metadata-pointer/anchor/README.md diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/package.json b/nft/metadata-pointer/anchor/package.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/package.json rename to nft/metadata-pointer/anchor/package.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/pnpm-lock.yaml b/nft/metadata-pointer/anchor/pnpm-lock.yaml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/pnpm-lock.yaml rename to nft/metadata-pointer/anchor/pnpm-lock.yaml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/Cargo.toml b/nft/metadata-pointer/anchor/programs/extension_nft/Cargo.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/Cargo.toml rename to nft/metadata-pointer/anchor/programs/extension_nft/Cargo.toml diff --git a/tokens/nft-minter/anchor/programs/nft-minter/Xargo.toml b/nft/metadata-pointer/anchor/programs/extension_nft/Xargo.toml similarity index 100% rename from tokens/nft-minter/anchor/programs/nft-minter/Xargo.toml rename to nft/metadata-pointer/anchor/programs/extension_nft/Xargo.toml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/constants.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/constants.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/constants.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/constants.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/errors.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/errors.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/errors.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/errors.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/chop_tree.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/instructions/chop_tree.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/chop_tree.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/instructions/chop_tree.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/init_player.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/instructions/init_player.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/init_player.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/instructions/init_player.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/mint_nft.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/instructions/mint_nft.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/mint_nft.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/instructions/mint_nft.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/mod.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/instructions/mod.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/instructions/mod.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/instructions/mod.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/lib.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/lib.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/lib.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/lib.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/session.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/session.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/session.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/session.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/state/game_data.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/state/game_data.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/state/game_data.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/state/game_data.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/state/mod.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/state/mod.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/state/mod.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/state/mod.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/state/player_data.rs b/nft/metadata-pointer/anchor/programs/extension_nft/src/state/player_data.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/src/state/player_data.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/src/state/player_data.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/tests/test_extension_nft.rs b/nft/metadata-pointer/anchor/programs/extension_nft/tests/test_extension_nft.rs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/tests/test_extension_nft.rs rename to nft/metadata-pointer/anchor/programs/extension_nft/tests/test_extension_nft.rs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/rustfmt.toml b/nft/metadata-pointer/anchor/rustfmt.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/rustfmt.toml rename to nft/metadata-pointer/anchor/rustfmt.toml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/.env.local.example b/nft/metadata-pointer/app/.env.local.example similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/.env.local.example rename to nft/metadata-pointer/app/.env.local.example diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/.eslintrc.json b/nft/metadata-pointer/app/.eslintrc.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/.eslintrc.json rename to nft/metadata-pointer/app/.eslintrc.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/.gitignore b/nft/metadata-pointer/app/.gitignore similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/.gitignore rename to nft/metadata-pointer/app/.gitignore diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/README.md b/nft/metadata-pointer/app/README.md similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/README.md rename to nft/metadata-pointer/app/README.md diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/ChopTreeButton.tsx b/nft/metadata-pointer/app/components/ChopTreeButton.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/ChopTreeButton.tsx rename to nft/metadata-pointer/app/components/ChopTreeButton.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/DisplayGameState.tsx b/nft/metadata-pointer/app/components/DisplayGameState.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/DisplayGameState.tsx rename to nft/metadata-pointer/app/components/DisplayGameState.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/DisplayNfts.tsx b/nft/metadata-pointer/app/components/DisplayNfts.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/DisplayNfts.tsx rename to nft/metadata-pointer/app/components/DisplayNfts.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/InitPlayerButton.tsx b/nft/metadata-pointer/app/components/InitPlayerButton.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/InitPlayerButton.tsx rename to nft/metadata-pointer/app/components/InitPlayerButton.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/MintNftButton.tsx b/nft/metadata-pointer/app/components/MintNftButton.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/MintNftButton.tsx rename to nft/metadata-pointer/app/components/MintNftButton.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/RequestAirdrop.tsx b/nft/metadata-pointer/app/components/RequestAirdrop.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/RequestAirdrop.tsx rename to nft/metadata-pointer/app/components/RequestAirdrop.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/SessionKeyButton.tsx b/nft/metadata-pointer/app/components/SessionKeyButton.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/SessionKeyButton.tsx rename to nft/metadata-pointer/app/components/SessionKeyButton.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/WalletMultiButton.tsx b/nft/metadata-pointer/app/components/WalletMultiButton.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/components/WalletMultiButton.tsx rename to nft/metadata-pointer/app/components/WalletMultiButton.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/contexts/GameStateProvider.tsx b/nft/metadata-pointer/app/contexts/GameStateProvider.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/contexts/GameStateProvider.tsx rename to nft/metadata-pointer/app/contexts/GameStateProvider.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/contexts/NftProvider.tsx b/nft/metadata-pointer/app/contexts/NftProvider.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/contexts/NftProvider.tsx rename to nft/metadata-pointer/app/contexts/NftProvider.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/contexts/SessionProvider.tsx b/nft/metadata-pointer/app/contexts/SessionProvider.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/contexts/SessionProvider.tsx rename to nft/metadata-pointer/app/contexts/SessionProvider.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/contexts/WalletContextProvider.tsx b/nft/metadata-pointer/app/contexts/WalletContextProvider.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/contexts/WalletContextProvider.tsx rename to nft/metadata-pointer/app/contexts/WalletContextProvider.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/idl/extension_nft.ts b/nft/metadata-pointer/app/idl/extension_nft.ts similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/idl/extension_nft.ts rename to nft/metadata-pointer/app/idl/extension_nft.ts diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/next.config.js b/nft/metadata-pointer/app/next.config.js similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/next.config.js rename to nft/metadata-pointer/app/next.config.js diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/package.json b/nft/metadata-pointer/app/package.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/package.json rename to nft/metadata-pointer/app/package.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/pages/_app.tsx b/nft/metadata-pointer/app/pages/_app.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/pages/_app.tsx rename to nft/metadata-pointer/app/pages/_app.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/pages/_document.tsx b/nft/metadata-pointer/app/pages/_document.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/pages/_document.tsx rename to nft/metadata-pointer/app/pages/_document.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/pages/api/hello.ts b/nft/metadata-pointer/app/pages/api/hello.ts similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/pages/api/hello.ts rename to nft/metadata-pointer/app/pages/api/hello.ts diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/pages/index.tsx b/nft/metadata-pointer/app/pages/index.tsx similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/pages/index.tsx rename to nft/metadata-pointer/app/pages/index.tsx diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/Beaver.png b/nft/metadata-pointer/app/public/Beaver.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/Beaver.png rename to nft/metadata-pointer/app/public/Beaver.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/Tree.png b/nft/metadata-pointer/app/public/Tree.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/Tree.png rename to nft/metadata-pointer/app/public/Tree.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/Wood.png b/nft/metadata-pointer/app/public/Wood.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/Wood.png rename to nft/metadata-pointer/app/public/Wood.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/energy.png b/nft/metadata-pointer/app/public/energy.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/energy.png rename to nft/metadata-pointer/app/public/energy.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/favicon.ico b/nft/metadata-pointer/app/public/favicon.ico similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/favicon.ico rename to nft/metadata-pointer/app/public/favicon.ico diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/next.svg b/nft/metadata-pointer/app/public/next.svg similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/next.svg rename to nft/metadata-pointer/app/public/next.svg diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/vercel.svg b/nft/metadata-pointer/app/public/vercel.svg similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/public/vercel.svg rename to nft/metadata-pointer/app/public/vercel.svg diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/styles/Home.module.css b/nft/metadata-pointer/app/styles/Home.module.css similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/styles/Home.module.css rename to nft/metadata-pointer/app/styles/Home.module.css diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/styles/globals.css b/nft/metadata-pointer/app/styles/globals.css similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/styles/globals.css rename to nft/metadata-pointer/app/styles/globals.css diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/tsconfig.json b/nft/metadata-pointer/app/tsconfig.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/tsconfig.json rename to nft/metadata-pointer/app/tsconfig.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/utils/anchor.ts b/nft/metadata-pointer/app/utils/anchor.ts similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/utils/anchor.ts rename to nft/metadata-pointer/app/utils/anchor.ts diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/utils/wrappedConnection.ts b/nft/metadata-pointer/app/utils/wrappedConnection.ts similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/app/utils/wrappedConnection.ts rename to nft/metadata-pointer/app/utils/wrappedConnection.ts diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/nx.json b/nft/metadata-pointer/nx.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/nx.json rename to nft/metadata-pointer/nx.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/package.json b/nft/metadata-pointer/package.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/package.json rename to nft/metadata-pointer/package.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/.gitattributes b/nft/metadata-pointer/unity/ExtensionNft/.gitattributes similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/.gitattributes rename to nft/metadata-pointer/unity/ExtensionNft/.gitattributes diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/.gitignore b/nft/metadata-pointer/unity/ExtensionNft/.gitignore similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/.gitignore rename to nft/metadata-pointer/unity/ExtensionNft/.gitignore diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.XML.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.mdb.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/DOTween.dll.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.XML.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.mdb.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/DOTweenEditor.dll.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenIcon.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/DOTweenMiniIcon.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Footer_dark.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Editor/Imgs/Header.jpg.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleAudio.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleEPOOutline.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModulePhysics2D.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleSprite.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUI.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUnityVersion.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/Modules/DOTweenModuleUtils.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/readme.txt b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/readme.txt similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/readme.txt rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/readme.txt diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/readme.txt.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/readme.txt.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/DOTween 4/readme.txt.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/DOTween 4/readme.txt.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/IMultiSceneSingleton.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/IReinitializingMultiSceneSingleton.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/MessageRouter.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Frictionless/ServiceFactory.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Materials.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Materials.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Materials.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Materials.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Materials/WoodParticles.mat.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/DefaultButton.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/InteractionBlocker.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/NftItemView.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/NftListPopup.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/SessionPopup.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/SolBalanceWidget.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/TokenBalanceWidget.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Prefabs/WoodParticles.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes/GameScene.unity.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scenes/LoginScene.unity.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/SimpleRotate.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/AnchorService.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/ExtensionNft.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftMintingService.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/NftService.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Solana/SolanaUtils.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/BasePopup.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/GameScreen.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/InteractionBlocker.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/LoginScreen.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftContextMenu.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemListView.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftItemView.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopup.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/NftListPopupUiData.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SafeArea.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SelectedNft.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopup.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SessionPopupUiData.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/SolBalanceWidget.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/TokenPanel.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Scripts/Ui/UiService.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/background.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/background.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/background.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/background.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/background.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/background.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/background.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/background.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/beaver.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/beaver.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/beaver.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/beaver.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/beaver.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/beaver.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/beaver.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/beaver.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_energy.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_solana.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_usdc.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/icon_wood.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/tree.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/tree.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/tree.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/tree.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/tree.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/tree.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/tree.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/tree.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_close_button.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_default_button.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_element_panel_rect.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_panel.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Game/Sprites/ui_spinner.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/DOTweenSettings.asset.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterButton.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/WalletAdapterUI.prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Resources/SolanaUnitySDK/[WalletController].prefab.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Socket.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Socket.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Socket.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Socket.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs b/nft/metadata-pointer/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/Socket/SocketStatusWidget.cs.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Documentation.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Documentation.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Documentation.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Documentation.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/favicon.ico.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/fullscreen-button.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-dark.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-empty-light.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-dark.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/progress-bar-full-light.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/style.css.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-dark.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/unity-logo-light.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/TemplateData/webgl-logo.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/index.html.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/SolanaWebGlTemplate/thumbnail.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/index.html.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png.meta b/nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png.meta similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png.meta rename to nft/metadata-pointer/unity/ExtensionNft/Assets/WebGLTemplates/xNFT/thumbnail.png.meta diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Packages/manifest.json b/nft/metadata-pointer/unity/ExtensionNft/Packages/manifest.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Packages/manifest.json rename to nft/metadata-pointer/unity/ExtensionNft/Packages/manifest.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Packages/packages-lock.json b/nft/metadata-pointer/unity/ExtensionNft/Packages/packages-lock.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/Packages/packages-lock.json rename to nft/metadata-pointer/unity/ExtensionNft/Packages/packages-lock.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/AudioManager.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/AudioManager.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/AudioManager.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/AudioManager.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/ClusterInputManager.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/ClusterInputManager.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/ClusterInputManager.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/ClusterInputManager.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/DynamicsManager.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/DynamicsManager.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/DynamicsManager.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/DynamicsManager.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/EditorBuildSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/EditorBuildSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/EditorBuildSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/EditorBuildSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/EditorSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/EditorSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/EditorSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/EditorSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/GraphicsSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/GraphicsSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/GraphicsSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/GraphicsSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/InputManager.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/InputManager.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/InputManager.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/InputManager.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/MemorySettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/MemorySettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/MemorySettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/MemorySettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/NavMeshAreas.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/NavMeshAreas.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/NavMeshAreas.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/NavMeshAreas.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/PackageManagerSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/PackageManagerSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/PackageManagerSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/PackageManagerSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/Physics2DSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/Physics2DSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/Physics2DSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/Physics2DSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/PresetManager.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/PresetManager.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/PresetManager.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/PresetManager.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/ProjectSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/ProjectSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/ProjectSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/ProjectSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/ProjectVersion.txt b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/ProjectVersion.txt similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/ProjectVersion.txt rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/ProjectVersion.txt diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/QualitySettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/QualitySettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/QualitySettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/QualitySettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/SceneTemplateSettings.json b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/SceneTemplateSettings.json similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/SceneTemplateSettings.json rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/SceneTemplateSettings.json diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/TagManager.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/TagManager.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/TagManager.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/TagManager.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/TimeManager.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/TimeManager.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/TimeManager.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/TimeManager.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/UnityConnectSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/UnityConnectSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/UnityConnectSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/UnityConnectSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/VFXManager.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/VFXManager.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/VFXManager.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/VFXManager.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/VersionControlSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/VersionControlSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/VersionControlSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/VersionControlSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/XRSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/XRSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/XRSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/XRSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/boot.config b/nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/boot.config similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/ProjectSettings/boot.config rename to nft/metadata-pointer/unity/ExtensionNft/ProjectSettings/boot.config diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/UserSettings/EditorUserSettings.asset b/nft/metadata-pointer/unity/ExtensionNft/UserSettings/EditorUserSettings.asset similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/UserSettings/EditorUserSettings.asset rename to nft/metadata-pointer/unity/ExtensionNft/UserSettings/EditorUserSettings.asset diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/UserSettings/Layouts/default-2021.dwlt b/nft/metadata-pointer/unity/ExtensionNft/UserSettings/Layouts/default-2021.dwlt similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/UserSettings/Layouts/default-2021.dwlt rename to nft/metadata-pointer/unity/ExtensionNft/UserSettings/Layouts/default-2021.dwlt diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/UserSettings/Search.settings b/nft/metadata-pointer/unity/ExtensionNft/UserSettings/Search.settings similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/unity/ExtensionNft/UserSettings/Search.settings rename to nft/metadata-pointer/unity/ExtensionNft/UserSettings/Search.settings diff --git a/nft/minter/README.md b/nft/minter/README.md new file mode 100644 index 00000000..c7090214 --- /dev/null +++ b/nft/minter/README.md @@ -0,0 +1,13 @@ +# NFT Minter + +Minting NFTs is the same as [minting any token on Solana](../token-minter/), with one extra step at the end. + +When you [mint](https://solana.com/docs/terminology#token-mint) tokens, you can in most cases continue to mint more later, growing the supply. An NFT is supposed to have a supply of **one**, so no more can ever be minted. + +The way to do that is to remove the mint authority from the mint: + +> The Mint Authority is the [account](https://solana.com/docs/terminology#account) allowed to mint new tokens into supply. + +Setting the mint authority to `null` permanently disables minting. **This is irreversible.** + +You can do this manually, or use Metaplex to mark the NFT as a Limited Edition. When you use an Edition - such as a Master Edition - for your NFT, you get extra Metaplex metadata, and the mint authority is delegated to the Master Edition account. That delegation effectively disables future minting. Be sure you understand the trade-offs of letting the Master Edition account hold the mint authority instead of setting it permanently to `null`. diff --git a/tokens/nft-minter/anchor-v1/Anchor.toml b/nft/minter/anchor-v1/Anchor.toml similarity index 100% rename from tokens/nft-minter/anchor-v1/Anchor.toml rename to nft/minter/anchor-v1/Anchor.toml diff --git a/tokens/nft-minter/anchor-v1/CHANGELOG.md b/nft/minter/anchor-v1/CHANGELOG.md similarity index 100% rename from tokens/nft-minter/anchor-v1/CHANGELOG.md rename to nft/minter/anchor-v1/CHANGELOG.md diff --git a/tokens/nft-minter/anchor-v1/Cargo.toml b/nft/minter/anchor-v1/Cargo.toml similarity index 100% rename from tokens/nft-minter/anchor-v1/Cargo.toml rename to nft/minter/anchor-v1/Cargo.toml diff --git a/tokens/nft-minter/anchor-v1/README.md b/nft/minter/anchor-v1/README.md similarity index 95% rename from tokens/nft-minter/anchor-v1/README.md rename to nft/minter/anchor-v1/README.md index 65f719bd..714797bf 100644 --- a/tokens/nft-minter/anchor-v1/README.md +++ b/nft/minter/anchor-v1/README.md @@ -17,7 +17,7 @@ See also: [Nft Minter overview](../README.md) and the [repository catalog](../.. ## Setup -From this directory (`tokens/nft-minter/anchor/`): +From this directory (`nft/minter/anchor-v1/`): ```bash anchor build diff --git a/tokens/nft-minter/anchor-v1/prepare.mjs b/nft/minter/anchor-v1/prepare.mjs similarity index 100% rename from tokens/nft-minter/anchor-v1/prepare.mjs rename to nft/minter/anchor-v1/prepare.mjs diff --git a/tokens/nft-minter/anchor-v1/programs/nft-minter/Cargo.toml b/nft/minter/anchor-v1/programs/nft-minter/Cargo.toml similarity index 100% rename from tokens/nft-minter/anchor-v1/programs/nft-minter/Cargo.toml rename to nft/minter/anchor-v1/programs/nft-minter/Cargo.toml diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/Xargo.toml b/nft/minter/anchor-v1/programs/nft-minter/Xargo.toml similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/Xargo.toml rename to nft/minter/anchor-v1/programs/nft-minter/Xargo.toml diff --git a/tokens/nft-minter/anchor-v1/programs/nft-minter/src/lib.rs b/nft/minter/anchor-v1/programs/nft-minter/src/lib.rs similarity index 100% rename from tokens/nft-minter/anchor-v1/programs/nft-minter/src/lib.rs rename to nft/minter/anchor-v1/programs/nft-minter/src/lib.rs diff --git a/tokens/nft-minter/anchor-v1/programs/nft-minter/tests/test_nft_minter.rs b/nft/minter/anchor-v1/programs/nft-minter/tests/test_nft_minter.rs similarity index 100% rename from tokens/nft-minter/anchor-v1/programs/nft-minter/tests/test_nft_minter.rs rename to nft/minter/anchor-v1/programs/nft-minter/tests/test_nft_minter.rs diff --git a/tokens/nft-minter/anchor-v1/tests/fixtures/mpl_token_metadata.so b/nft/minter/anchor-v1/tests/fixtures/mpl_token_metadata.so similarity index 100% rename from tokens/nft-minter/anchor-v1/tests/fixtures/mpl_token_metadata.so rename to nft/minter/anchor-v1/tests/fixtures/mpl_token_metadata.so diff --git a/tokens/nft-minter/anchor/Anchor.toml b/nft/minter/anchor/Anchor.toml similarity index 100% rename from tokens/nft-minter/anchor/Anchor.toml rename to nft/minter/anchor/Anchor.toml diff --git a/tokens/nft-minter/anchor/CHANGELOG.md b/nft/minter/anchor/CHANGELOG.md similarity index 100% rename from tokens/nft-minter/anchor/CHANGELOG.md rename to nft/minter/anchor/CHANGELOG.md diff --git a/tokens/nft-minter/anchor/Cargo.toml b/nft/minter/anchor/Cargo.toml similarity index 100% rename from tokens/nft-minter/anchor/Cargo.toml rename to nft/minter/anchor/Cargo.toml diff --git a/tokens/nft-minter/anchor/README.md b/nft/minter/anchor/README.md similarity index 95% rename from tokens/nft-minter/anchor/README.md rename to nft/minter/anchor/README.md index 491b5e64..85763a98 100644 --- a/tokens/nft-minter/anchor/README.md +++ b/nft/minter/anchor/README.md @@ -17,7 +17,7 @@ See also: [Nft Minter overview](../README.md) and the [repository catalog](../.. ## Setup -From this directory (`tokens/nft-minter/anchor/`): +From this directory (`nft/minter/anchor/`): ```bash anchor build diff --git a/tokens/nft-minter/anchor/prepare.mjs b/nft/minter/anchor/prepare.mjs similarity index 100% rename from tokens/nft-minter/anchor/prepare.mjs rename to nft/minter/anchor/prepare.mjs diff --git a/tokens/nft-minter/anchor/programs/nft-minter/Cargo.toml b/nft/minter/anchor/programs/nft-minter/Cargo.toml similarity index 100% rename from tokens/nft-minter/anchor/programs/nft-minter/Cargo.toml rename to nft/minter/anchor/programs/nft-minter/Cargo.toml diff --git a/tokens/nft-operations/anchor/programs/mint-nft/Xargo.toml b/nft/minter/anchor/programs/nft-minter/Xargo.toml similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/Xargo.toml rename to nft/minter/anchor/programs/nft-minter/Xargo.toml diff --git a/tokens/nft-minter/anchor/programs/nft-minter/src/lib.rs b/nft/minter/anchor/programs/nft-minter/src/lib.rs similarity index 100% rename from tokens/nft-minter/anchor/programs/nft-minter/src/lib.rs rename to nft/minter/anchor/programs/nft-minter/src/lib.rs diff --git a/tokens/nft-minter/anchor/programs/nft-minter/tests/test_nft_minter.rs b/nft/minter/anchor/programs/nft-minter/tests/test_nft_minter.rs similarity index 100% rename from tokens/nft-minter/anchor/programs/nft-minter/tests/test_nft_minter.rs rename to nft/minter/anchor/programs/nft-minter/tests/test_nft_minter.rs diff --git a/tokens/nft-minter/anchor/tests/fixtures/mpl_token_metadata.so b/nft/minter/anchor/tests/fixtures/mpl_token_metadata.so similarity index 100% rename from tokens/nft-minter/anchor/tests/fixtures/mpl_token_metadata.so rename to nft/minter/anchor/tests/fixtures/mpl_token_metadata.so diff --git a/tokens/nft-minter/native/CHANGELOG.md b/nft/minter/native/CHANGELOG.md similarity index 100% rename from tokens/nft-minter/native/CHANGELOG.md rename to nft/minter/native/CHANGELOG.md diff --git a/tokens/nft-minter/native/program/Cargo.toml b/nft/minter/native/program/Cargo.toml similarity index 100% rename from tokens/nft-minter/native/program/Cargo.toml rename to nft/minter/native/program/Cargo.toml diff --git a/tokens/nft-minter/native/program/src/bridge.rs b/nft/minter/native/program/src/bridge.rs similarity index 100% rename from tokens/nft-minter/native/program/src/bridge.rs rename to nft/minter/native/program/src/bridge.rs diff --git a/tokens/nft-minter/native/program/src/instructions/create.rs b/nft/minter/native/program/src/instructions/create.rs similarity index 100% rename from tokens/nft-minter/native/program/src/instructions/create.rs rename to nft/minter/native/program/src/instructions/create.rs diff --git a/tokens/nft-minter/native/program/src/instructions/mint.rs b/nft/minter/native/program/src/instructions/mint.rs similarity index 100% rename from tokens/nft-minter/native/program/src/instructions/mint.rs rename to nft/minter/native/program/src/instructions/mint.rs diff --git a/tokens/nft-minter/native/program/src/instructions/mod.rs b/nft/minter/native/program/src/instructions/mod.rs similarity index 100% rename from tokens/nft-minter/native/program/src/instructions/mod.rs rename to nft/minter/native/program/src/instructions/mod.rs diff --git a/tokens/nft-minter/native/program/src/lib.rs b/nft/minter/native/program/src/lib.rs similarity index 100% rename from tokens/nft-minter/native/program/src/lib.rs rename to nft/minter/native/program/src/lib.rs diff --git a/tokens/nft-minter/native/program/src/processor.rs b/nft/minter/native/program/src/processor.rs similarity index 100% rename from tokens/nft-minter/native/program/src/processor.rs rename to nft/minter/native/program/src/processor.rs diff --git a/tokens/nft-minter/native/program/tests/test.rs b/nft/minter/native/program/tests/test.rs similarity index 100% rename from tokens/nft-minter/native/program/tests/test.rs rename to nft/minter/native/program/tests/test.rs diff --git a/tokens/nft-minter/native/tests/fixtures/mpl_token_metadata.so b/nft/minter/native/tests/fixtures/mpl_token_metadata.so similarity index 100% rename from tokens/nft-minter/native/tests/fixtures/mpl_token_metadata.so rename to nft/minter/native/tests/fixtures/mpl_token_metadata.so diff --git a/tokens/nft-minter/quasar/CHANGELOG.md b/nft/minter/quasar/CHANGELOG.md similarity index 100% rename from tokens/nft-minter/quasar/CHANGELOG.md rename to nft/minter/quasar/CHANGELOG.md diff --git a/tokens/nft-minter/quasar/Cargo.toml b/nft/minter/quasar/Cargo.toml similarity index 96% rename from tokens/nft-minter/quasar/Cargo.toml rename to nft/minter/quasar/Cargo.toml index 323e2b7a..5ef4d412 100644 --- a/tokens/nft-minter/quasar/Cargo.toml +++ b/nft/minter/quasar/Cargo.toml @@ -38,7 +38,7 @@ zeropod = "=0.3.3" quasar-spl = { git = "https://github.com/blueshift-gg/quasar", rev = "be60fca" } # Vendored: upstream removed the quasar-metadata crate before the 0.1.0 # release with no replacement. See tokens/quasar-metadata/README.md. -quasar-metadata = { path = "../../quasar-metadata" } +quasar-metadata = { path = "../../../tokens/quasar-metadata" } solana-instruction = { version = "3.2.0" } [dev-dependencies] diff --git a/tokens/nft-minter/quasar/Quasar.toml b/nft/minter/quasar/Quasar.toml similarity index 100% rename from tokens/nft-minter/quasar/Quasar.toml rename to nft/minter/quasar/Quasar.toml diff --git a/tokens/nft-minter/quasar/README.md b/nft/minter/quasar/README.md similarity index 95% rename from tokens/nft-minter/quasar/README.md rename to nft/minter/quasar/README.md index 92d27cb7..6b2e7b99 100644 --- a/tokens/nft-minter/quasar/README.md +++ b/nft/minter/quasar/README.md @@ -11,7 +11,7 @@ See also: [Nft Minter overview](../README.md) and the [repository catalog](../.. ## Setup -From `tokens/nft-minter/quasar/`: +From `nft/minter/quasar/`: ```bash quasar build diff --git a/tokens/nft-minter/quasar/src/lib.rs b/nft/minter/quasar/src/lib.rs similarity index 100% rename from tokens/nft-minter/quasar/src/lib.rs rename to nft/minter/quasar/src/lib.rs diff --git a/tokens/nft-minter/quasar/src/tests.rs b/nft/minter/quasar/src/tests.rs similarity index 100% rename from tokens/nft-minter/quasar/src/tests.rs rename to nft/minter/quasar/src/tests.rs diff --git a/nft/operations/README.md b/nft/operations/README.md new file mode 100644 index 00000000..352411d0 --- /dev/null +++ b/nft/operations/README.md @@ -0,0 +1,7 @@ +# NFT Operations + +Create an NFT collection, mint NFTs into it, and verify NFTs as collection members using the Metaplex Token Metadata program. + +[⚓ Anchor](./anchor) [💫 Quasar](./quasar) + +Each variant's README covers its setup and how to run the tests. diff --git a/tokens/nft-operations/anchor-v1/Anchor.toml b/nft/operations/anchor-v1/Anchor.toml similarity index 100% rename from tokens/nft-operations/anchor-v1/Anchor.toml rename to nft/operations/anchor-v1/Anchor.toml diff --git a/tokens/nft-operations/anchor-v1/CHANGELOG.md b/nft/operations/anchor-v1/CHANGELOG.md similarity index 100% rename from tokens/nft-operations/anchor-v1/CHANGELOG.md rename to nft/operations/anchor-v1/CHANGELOG.md diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/Cargo.toml b/nft/operations/anchor-v1/Cargo.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/Cargo.toml rename to nft/operations/anchor-v1/Cargo.toml diff --git a/tokens/nft-operations/anchor-v1/README.md b/nft/operations/anchor-v1/README.md similarity index 100% rename from tokens/nft-operations/anchor-v1/README.md rename to nft/operations/anchor-v1/README.md diff --git a/tokens/nft-operations/anchor-v1/prepare.mjs b/nft/operations/anchor-v1/prepare.mjs similarity index 100% rename from tokens/nft-operations/anchor-v1/prepare.mjs rename to nft/operations/anchor-v1/prepare.mjs diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/Cargo.toml b/nft/operations/anchor-v1/programs/mint-nft/Cargo.toml similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/Cargo.toml rename to nft/operations/anchor-v1/programs/mint-nft/Cargo.toml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/Xargo.toml b/nft/operations/anchor-v1/programs/mint-nft/Xargo.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor-v1/programs/extension_nft/Xargo.toml rename to nft/operations/anchor-v1/programs/mint-nft/Xargo.toml diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/src/error.rs b/nft/operations/anchor-v1/programs/mint-nft/src/error.rs similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/src/error.rs rename to nft/operations/anchor-v1/programs/mint-nft/src/error.rs diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/src/instructions/create_collection.rs b/nft/operations/anchor-v1/programs/mint-nft/src/instructions/create_collection.rs similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/src/instructions/create_collection.rs rename to nft/operations/anchor-v1/programs/mint-nft/src/instructions/create_collection.rs diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/src/instructions/mint_nft.rs b/nft/operations/anchor-v1/programs/mint-nft/src/instructions/mint_nft.rs similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/src/instructions/mint_nft.rs rename to nft/operations/anchor-v1/programs/mint-nft/src/instructions/mint_nft.rs diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/src/instructions/mod.rs b/nft/operations/anchor-v1/programs/mint-nft/src/instructions/mod.rs similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/src/instructions/mod.rs rename to nft/operations/anchor-v1/programs/mint-nft/src/instructions/mod.rs diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/src/instructions/verify_collection.rs b/nft/operations/anchor-v1/programs/mint-nft/src/instructions/verify_collection.rs similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/src/instructions/verify_collection.rs rename to nft/operations/anchor-v1/programs/mint-nft/src/instructions/verify_collection.rs diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/src/lib.rs b/nft/operations/anchor-v1/programs/mint-nft/src/lib.rs similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/src/lib.rs rename to nft/operations/anchor-v1/programs/mint-nft/src/lib.rs diff --git a/tokens/nft-operations/anchor-v1/programs/mint-nft/tests/test_nft_operations.rs b/nft/operations/anchor-v1/programs/mint-nft/tests/test_nft_operations.rs similarity index 100% rename from tokens/nft-operations/anchor-v1/programs/mint-nft/tests/test_nft_operations.rs rename to nft/operations/anchor-v1/programs/mint-nft/tests/test_nft_operations.rs diff --git a/tokens/nft-operations/anchor-v1/tests/fixtures/mpl_token_metadata.so b/nft/operations/anchor-v1/tests/fixtures/mpl_token_metadata.so similarity index 100% rename from tokens/nft-operations/anchor-v1/tests/fixtures/mpl_token_metadata.so rename to nft/operations/anchor-v1/tests/fixtures/mpl_token_metadata.so diff --git a/tokens/nft-operations/anchor/Anchor.toml b/nft/operations/anchor/Anchor.toml similarity index 100% rename from tokens/nft-operations/anchor/Anchor.toml rename to nft/operations/anchor/Anchor.toml diff --git a/tokens/nft-operations/anchor/CHANGELOG.md b/nft/operations/anchor/CHANGELOG.md similarity index 100% rename from tokens/nft-operations/anchor/CHANGELOG.md rename to nft/operations/anchor/CHANGELOG.md diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/Cargo.toml b/nft/operations/anchor/Cargo.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/Cargo.toml rename to nft/operations/anchor/Cargo.toml diff --git a/tokens/nft-operations/anchor/README.md b/nft/operations/anchor/README.md similarity index 100% rename from tokens/nft-operations/anchor/README.md rename to nft/operations/anchor/README.md diff --git a/tokens/nft-operations/anchor/prepare.mjs b/nft/operations/anchor/prepare.mjs similarity index 100% rename from tokens/nft-operations/anchor/prepare.mjs rename to nft/operations/anchor/prepare.mjs diff --git a/tokens/nft-operations/anchor/programs/mint-nft/Cargo.toml b/nft/operations/anchor/programs/mint-nft/Cargo.toml similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/Cargo.toml rename to nft/operations/anchor/programs/mint-nft/Cargo.toml diff --git a/tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/Xargo.toml b/nft/operations/anchor/programs/mint-nft/Xargo.toml similarity index 100% rename from tokens/token-extensions/nft-meta-data-pointer/anchor-example/anchor/programs/extension_nft/Xargo.toml rename to nft/operations/anchor/programs/mint-nft/Xargo.toml diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/error.rs b/nft/operations/anchor/programs/mint-nft/src/error.rs similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/src/error.rs rename to nft/operations/anchor/programs/mint-nft/src/error.rs diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/instructions/create_collection.rs b/nft/operations/anchor/programs/mint-nft/src/instructions/create_collection.rs similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/src/instructions/create_collection.rs rename to nft/operations/anchor/programs/mint-nft/src/instructions/create_collection.rs diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/instructions/mint_nft.rs b/nft/operations/anchor/programs/mint-nft/src/instructions/mint_nft.rs similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/src/instructions/mint_nft.rs rename to nft/operations/anchor/programs/mint-nft/src/instructions/mint_nft.rs diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/instructions/mod.rs b/nft/operations/anchor/programs/mint-nft/src/instructions/mod.rs similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/src/instructions/mod.rs rename to nft/operations/anchor/programs/mint-nft/src/instructions/mod.rs diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/instructions/verify_collection.rs b/nft/operations/anchor/programs/mint-nft/src/instructions/verify_collection.rs similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/src/instructions/verify_collection.rs rename to nft/operations/anchor/programs/mint-nft/src/instructions/verify_collection.rs diff --git a/tokens/nft-operations/anchor/programs/mint-nft/src/lib.rs b/nft/operations/anchor/programs/mint-nft/src/lib.rs similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/src/lib.rs rename to nft/operations/anchor/programs/mint-nft/src/lib.rs diff --git a/tokens/nft-operations/anchor/programs/mint-nft/tests/test_nft_operations.rs b/nft/operations/anchor/programs/mint-nft/tests/test_nft_operations.rs similarity index 100% rename from tokens/nft-operations/anchor/programs/mint-nft/tests/test_nft_operations.rs rename to nft/operations/anchor/programs/mint-nft/tests/test_nft_operations.rs diff --git a/tokens/nft-operations/anchor/tests/fixtures/mpl_token_metadata.so b/nft/operations/anchor/tests/fixtures/mpl_token_metadata.so similarity index 100% rename from tokens/nft-operations/anchor/tests/fixtures/mpl_token_metadata.so rename to nft/operations/anchor/tests/fixtures/mpl_token_metadata.so diff --git a/tokens/nft-operations/quasar/CHANGELOG.md b/nft/operations/quasar/CHANGELOG.md similarity index 100% rename from tokens/nft-operations/quasar/CHANGELOG.md rename to nft/operations/quasar/CHANGELOG.md diff --git a/tokens/nft-operations/quasar/Cargo.toml b/nft/operations/quasar/Cargo.toml similarity index 96% rename from tokens/nft-operations/quasar/Cargo.toml rename to nft/operations/quasar/Cargo.toml index 86a593b0..021fd754 100644 --- a/tokens/nft-operations/quasar/Cargo.toml +++ b/nft/operations/quasar/Cargo.toml @@ -38,7 +38,7 @@ zeropod = "=0.3.3" quasar-spl = { git = "https://github.com/blueshift-gg/quasar", rev = "be60fca" } # Vendored: upstream removed the quasar-metadata crate before the 0.1.0 # release with no replacement. See tokens/quasar-metadata/README.md. -quasar-metadata = { path = "../../quasar-metadata" } +quasar-metadata = { path = "../../../tokens/quasar-metadata" } solana-instruction = { version = "3.2.0" } [dev-dependencies] diff --git a/tokens/nft-operations/quasar/Quasar.toml b/nft/operations/quasar/Quasar.toml similarity index 100% rename from tokens/nft-operations/quasar/Quasar.toml rename to nft/operations/quasar/Quasar.toml diff --git a/tokens/nft-operations/quasar/README.md b/nft/operations/quasar/README.md similarity index 98% rename from tokens/nft-operations/quasar/README.md rename to nft/operations/quasar/README.md index ee014bdf..72ecbc2a 100644 --- a/tokens/nft-operations/quasar/README.md +++ b/nft/operations/quasar/README.md @@ -14,7 +14,7 @@ See also: the [repository catalog](../../../README.md). ## Setup -From `tokens/nft-operations/quasar/`: +From `nft/operations/quasar/`: ```bash quasar build diff --git a/tokens/nft-operations/quasar/src/instructions/create_collection.rs b/nft/operations/quasar/src/instructions/create_collection.rs similarity index 100% rename from tokens/nft-operations/quasar/src/instructions/create_collection.rs rename to nft/operations/quasar/src/instructions/create_collection.rs diff --git a/tokens/nft-operations/quasar/src/instructions/mint_nft.rs b/nft/operations/quasar/src/instructions/mint_nft.rs similarity index 100% rename from tokens/nft-operations/quasar/src/instructions/mint_nft.rs rename to nft/operations/quasar/src/instructions/mint_nft.rs diff --git a/tokens/nft-operations/quasar/src/instructions/mod.rs b/nft/operations/quasar/src/instructions/mod.rs similarity index 100% rename from tokens/nft-operations/quasar/src/instructions/mod.rs rename to nft/operations/quasar/src/instructions/mod.rs diff --git a/tokens/nft-operations/quasar/src/instructions/verify_collection.rs b/nft/operations/quasar/src/instructions/verify_collection.rs similarity index 100% rename from tokens/nft-operations/quasar/src/instructions/verify_collection.rs rename to nft/operations/quasar/src/instructions/verify_collection.rs diff --git a/tokens/nft-operations/quasar/src/lib.rs b/nft/operations/quasar/src/lib.rs similarity index 100% rename from tokens/nft-operations/quasar/src/lib.rs rename to nft/operations/quasar/src/lib.rs diff --git a/tokens/nft-operations/quasar/src/tests.rs b/nft/operations/quasar/src/tests.rs similarity index 100% rename from tokens/nft-operations/quasar/src/tests.rs rename to nft/operations/quasar/src/tests.rs diff --git a/scripts/generate-quasar-readmes.mjs b/scripts/generate-quasar-readmes.mjs index aae62dca..a1996ec9 100644 --- a/scripts/generate-quasar-readmes.mjs +++ b/scripts/generate-quasar-readmes.mjs @@ -70,7 +70,7 @@ const examples = { purpose: "Read a Pyth price feed and use oracle data in program logic.", concepts: ["Oracle accounts", "Price feed layout"], }, - "basics/realloc/quasar": { + "basics/resizing-accounts/quasar": { title: "Realloc", purpose: "Grow or shrink account data when storage needs change.", concepts: ["Account reallocation", "Rent on resize"], @@ -125,12 +125,12 @@ const examples = { purpose: "Token transfers authorized by an external secp256k1 signature.", concepts: ["Delegate approval", "Signature verification"], }, - "tokens/nft-minter/quasar": { + "nft/minter/quasar": { title: "NFT Minter", purpose: "Mint an NFT from inside your program.", concepts: ["NFT mint", "Metadata CPI"], }, - "tokens/nft-operations/quasar": { + "nft/operations/quasar": { title: "NFT Operations", purpose: "Collection mint, NFT mint, and collection verification via Metaplex.", concepts: ["Collection NFTs", "Verification CPI"], diff --git a/tokens/nft-minter/README.md b/tokens/nft-minter/README.md index c7090214..3abc48a4 100644 --- a/tokens/nft-minter/README.md +++ b/tokens/nft-minter/README.md @@ -1,13 +1,3 @@ -# NFT Minter +# Moved -Minting NFTs is the same as [minting any token on Solana](../token-minter/), with one extra step at the end. - -When you [mint](https://solana.com/docs/terminology#token-mint) tokens, you can in most cases continue to mint more later, growing the supply. An NFT is supposed to have a supply of **one**, so no more can ever be minted. - -The way to do that is to remove the mint authority from the mint: - -> The Mint Authority is the [account](https://solana.com/docs/terminology#account) allowed to mint new tokens into supply. - -Setting the mint authority to `null` permanently disables minting. **This is irreversible.** - -You can do this manually, or use Metaplex to mark the NFT as a Limited Edition. When you use an Edition - such as a Master Edition - for your NFT, you get extra Metaplex metadata, and the mint authority is delegated to the Master Edition account. That delegation effectively disables future minting. Be sure you understand the trade-offs of letting the Master Edition account hold the mint authority instead of setting it permanently to `null`. +This example has moved to [`nft/minter`](../../nft/minter). diff --git a/tokens/nft-operations/README.md b/tokens/nft-operations/README.md index 352411d0..b7866149 100644 --- a/tokens/nft-operations/README.md +++ b/tokens/nft-operations/README.md @@ -1,7 +1,3 @@ -# NFT Operations +# Moved -Create an NFT collection, mint NFTs into it, and verify NFTs as collection members using the Metaplex Token Metadata program. - -[⚓ Anchor](./anchor) [💫 Quasar](./quasar) - -Each variant's README covers its setup and how to run the tests. +This example has moved to [`nft/operations`](../../nft/operations). diff --git a/tokens/quasar-metadata/README.md b/tokens/quasar-metadata/README.md index e155318b..a9380546 100644 --- a/tokens/quasar-metadata/README.md +++ b/tokens/quasar-metadata/README.md @@ -6,8 +6,8 @@ This crate is a vendored copy of the `metadata/` crate from [blueshift-gg/quasar](https://github.com/blueshift-gg/quasar) at rev `623bb70f` — the last revision that shipped it. Upstream removed `quasar-metadata` before the 0.1.0 release with no replacement, but three -examples in this repository (`tokens/token-minter`, `tokens/nft-minter`, -`tokens/nft-operations`) demonstrate Metaplex metadata flows and need it. +examples in this repository (`tokens/token-minter`, `nft/minter`, +`nft/operations`) demonstrate Metaplex metadata flows and need it. Vendoring the crate lets those examples build and test against the same Quasar `0.1.0-release` pin (`be60fca`) as every other example instead of staying frozen on a pre-0.1.0 toolchain. diff --git a/tokens/token-extensions/nft-meta-data-pointer/README.md b/tokens/token-extensions/nft-meta-data-pointer/README.md new file mode 100644 index 00000000..73dd8bf8 --- /dev/null +++ b/tokens/token-extensions/nft-meta-data-pointer/README.md @@ -0,0 +1,3 @@ +# Moved + +This example has moved to [`nft/metadata-pointer`](../../../nft/metadata-pointer). From a4d26c89b192fcca01d5813d28cbf827fd84e890 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 6 Nov 2026 21:33:42 +0000 Subject: [PATCH 4/6] README: shorten the tagline and fix its typo Claude-Session: https://claude.ai/code/session_01GZHin7gxqccwA5Zq1erhqW --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 53d354d4..961ef41b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Quicknode Solana Program Examples](assets/banner.png?v=1) -_The most complete and actvely maintained set of Solana programs ('smart contracts') in Anchor 1, Anchor 2, Quasar and more. Focused on financial software, as well as single-use programs._ +_The largest actively maintained set of Solana programs ('smart contracts') on the internet._ [![Anchor v1](../../actions/workflows/anchor-v1.yml/badge.svg)](../../actions/workflows/anchor-v1.yml) [![Anchor v2](../../actions/workflows/anchor.yml/badge.svg)](../../actions/workflows/anchor.yml) [![Quasar](../../actions/workflows/quasar.yml/badge.svg)](../../actions/workflows/quasar.yml) [![Pinocchio](../../actions/workflows/pinocchio.yml/badge.svg)](../../actions/workflows/pinocchio.yml) [![Native](../../actions/workflows/native.yml/badge.svg)](../../actions/workflows/native.yml) [![ASM](../../actions/workflows/solana-asm.yml/badge.svg)](../../actions/workflows/solana-asm.yml) From f567242a4a43c18688bee66934daa9881c5ffcf3 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 6 Nov 2026 21:35:39 +0000 Subject: [PATCH 5/6] README: link each section from Getting started Claude-Session: https://claude.ai/code/session_01GZHin7gxqccwA5Zq1erhqW --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 961ef41b..9ff22f19 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ Each example is available in one or more of the following frameworks: ## Getting started +The examples are grouped into [Financial software](#financial-software-defi), [Single concept examples](#single-concept-examples), [Tokens](#tokens), [Token Extensions](#token-extensions), [NFTs](#nfts), [Compression](#compression), and [Tools](#tools), followed by an [FAQ](#faq). + You need [Rust](https://www.rust-lang.org/tools/install), [Solana CLI](https://docs.anza.xyz/cli/install), [Anchor](https://www.anchor-lang.com/docs/installation), and [pnpm](https://pnpm.io/installation) installed. Clone the repo and `cd` into any example directory, then run its tests with the command for that framework (shown above) - for an Anchor example, `anchor test`. `pnpm` is used for repo-wide formatting and linting, not for running an example's tests. To deploy to mainnet or devnet you'll need an RPC endpoint. [Quicknode](https://www.quicknode.com/chains/solana) provides Solana endpoints - create one and set it as your cluster in `Anchor.toml` or with `solana config set --url `. From dbc9466a6fc45c93006dbfdb70480137d16fe2b2 Mon Sep 17 00:00:00 2001 From: Mike MacCana Date: Fri, 6 Nov 2026 21:41:49 +0000 Subject: [PATCH 6/6] README: lead with the repository's size, and point readers to the book Adds the counts under the tagline, a book section with the cover, a book chapter line under each finance example, a book FAQ entry, a start-here line in Getting started, and the attack tests in the production-ready answer. Claude-Session: https://claude.ai/code/session_01GZHin7gxqccwA5Zq1erhqW --- README.md | 37 ++++++++++++++++++++++++++++++++++--- assets/book-cover.png | Bin 0 -> 64463 bytes 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 assets/book-cover.png diff --git a/README.md b/README.md index 9ff22f19..9a4018ed 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ _The largest actively maintained set of Solana programs ('smart contracts') on the internet._ +**58 examples, 208 implementations across six frameworks, over 1,000 tests, and 71 Kani model checks.** The same program is written in several frameworks so you can compare them side by side, every example builds and passes its tests in CI, and the examples are kept on current versions of Anchor and Quasar. + [![Anchor v1](../../actions/workflows/anchor-v1.yml/badge.svg)](../../actions/workflows/anchor-v1.yml) [![Anchor v2](../../actions/workflows/anchor.yml/badge.svg)](../../actions/workflows/anchor.yml) [![Quasar](../../actions/workflows/quasar.yml/badge.svg)](../../actions/workflows/quasar.yml) [![Pinocchio](../../actions/workflows/pinocchio.yml/badge.svg)](../../actions/workflows/pinocchio.yml) [![Native](../../actions/workflows/native.yml/badge.svg)](../../actions/workflows/native.yml) [![ASM](../../actions/workflows/solana-asm.yml/badge.svg)](../../actions/workflows/solana-asm.yml) Each example is available in one or more of the following frameworks: @@ -15,13 +17,18 @@ Each example is available in one or more of the following frameworks: - [🦀 Native Rust](https://docs.anza.xyz/) - vanilla Rust using Solana's native crates. Build with `cargo build-sbf --manifest-path=./program/Cargo.toml`, test with `cargo test --manifest-path=./program/Cargo.toml`. - [🧬 ASM](https://github.com/blueshift-gg/sbpf) - hand-written sBPF assembly built with the `sbpf` toolchain. Build with `sbpf build`, test with `cargo test`. -> [!NOTE] -> Quicknode has recently released [Building Financial Software on Solana](https://solanabook.org), a comprehensive guide to creating financial products on the blockchain which covers how the "Finance" programs below work. The book can be [downloaded for free](https://solanabook.org), there's also a [paperback on Amazon](https://www.amazon.com/dp/B0HMJSSB95) and [Barnes and Noble](https://www.barnesandnoble.com/w/building-financial-software-on-solana-mike-maccana/1151680819) and independent booksellers. +## Learn how these programs work + +Building Financial Software on Solana, by Mike MacCana + +[Building Financial Software on Solana](https://solanabook.org) walks through every finance program here: the market design behind it, the attacks it defends against, and the code. [Download it free](https://solanabook.org), or buy the paperback from [Amazon](https://www.amazon.com/dp/B0HMJSSB95), [Barnes & Noble](https://www.barnesandnoble.com/w/building-financial-software-on-solana-mike-maccana/1151680819) and independent booksellers. ## Getting started The examples are grouped into [Financial software](#financial-software-defi), [Single concept examples](#single-concept-examples), [Tokens](#tokens), [Token Extensions](#token-extensions), [NFTs](#nfts), [Compression](#compression), and [Tools](#tools), followed by an [FAQ](#faq). +New to Solana? Start with [Hello Solana](#hello-solana), then [Escrow](#escrow), the best first finance program. + You need [Rust](https://www.rust-lang.org/tools/install), [Solana CLI](https://docs.anza.xyz/cli/install), [Anchor](https://www.anchor-lang.com/docs/installation), and [pnpm](https://pnpm.io/installation) installed. Clone the repo and `cd` into any example directory, then run its tests with the command for that framework (shown above) - for an Anchor example, `anchor test`. `pnpm` is used for repo-wide formatting and linting, not for running an example's tests. To deploy to mainnet or devnet you'll need an RPC endpoint. [Quicknode](https://www.quicknode.com/chains/solana) provides Solana endpoints - create one and set it as your cluster in `Anchor.toml` or with `solana config set --url `. @@ -36,6 +43,8 @@ The programs are examples of common financial primitives on Solana. As well as t [⚓ Anchor v1](./finance/escrow/anchor-v1) [⚓ Anchor v2](./finance/escrow/anchor) [💫 Quasar](./finance/escrow/quasar) [🦀 Native](./finance/escrow/native) +📖 Book: Chapter 11, [*Escrow*](https://solanabook.org) + 🎬 Video: [Build a Solana program (smart contract) in 30 minutes](https://www.youtube.com/watch?v=B5eBWWQfQuM) ### Lending @@ -44,12 +53,16 @@ A borrow/lend market like Solend or Kamino: suppliers deposit a token and receiv [⚓ Anchor v1](./finance/lending/anchor-v1) [⚓ Anchor v2](./finance/lending/anchor) [💫 Quasar](./finance/lending/quasar) +📖 Book: Chapter 17, [*Lending and Borrowing*](https://solanabook.org) + ### Order Book based Exchange A typical NYSE/NASDAQ-style order book-based exchange. Buyers post **bids** (the price they'll pay), sellers post **asks** (the price they'll accept), and a trade happens when a bid and an ask meet. The exchange operator collects fees from trading. Similar to popular Solana exchanges like Openbook and Phoenix. [⚓ Anchor v1](./finance/order-book/anchor-v1) [⚓ Anchor v2](./finance/order-book/anchor) [💫 Quasar](./finance/order-book/quasar) +📖 Book: Chapter 14, [*The Order Book Exchange*](https://solanabook.org) + 🎬 Video: [How to make a crypto exchange on Solana](https://www.youtube.com/watch?v=ioFkpaKHXgg) ### AMM based Exchange @@ -58,12 +71,16 @@ An exchange with no order book: swaps fill instantly against a shared liquidity [⚓ Anchor v1](./finance/token-swap/anchor-v1) [⚓ Anchor v2](./finance/token-swap/anchor) [💫 Quasar](./finance/token-swap/quasar) +📖 Book: Chapter 15, [*The Constant-Product AMM*](https://solanabook.org) + ### Prop AMM A **proprietary AMM**: a market-making firm funds a venue with its own capital and quotes both sides of it, selling the base token at the oracle price plus a spread and buying it back at the oracle price minus the spread. No pricing curve, no liquidity providers, no pool shares: the operator is the only capital in the market, can re-quote or pull its quotes at will, and earns the spread instead of a fee. Because the price comes from an oracle rather than the pool's balances, trades have no price impact and nothing to sandwich. This is the design behind venues like Lifinity, SolFi, and HumidiFi, which fill most Solana swap volume through Jupiter routing. [⚓ Anchor v1](./finance/prop-amm/anchor-v1) [⚓ Anchor v2](./finance/prop-amm/anchor) [💫 Quasar](./finance/prop-amm/quasar) +📖 Book: Chapter 16, [*The Prop AMM*](https://solanabook.org) + ### Managed Fund *Formerly **Vault Strategy**. Some platforms call this product a vault or a vault strategy; the example was renamed to use the finance term.* @@ -72,6 +89,8 @@ A managed investment fund onchain, the equivalent of a mutual fund. Investors de [⚓ Anchor v1](./finance/managed-fund/anchor-v1) [⚓ Anchor v2](./finance/managed-fund/anchor) [💫 Quasar](./finance/managed-fund/quasar) +📖 Book: Chapter 18, [*The Managed Fund*](https://solanabook.org) + 🎬 Video: [Building a Managed Fund](https://www.youtube.com/watch?v=G7z7xsDyoRk) ### Betting Market @@ -80,6 +99,8 @@ Parimutuel (pooled) prediction market - an admin opens an event with multiple ou [⚓ Anchor v1](./finance/betting-market/anchor-v1) [⚓ Anchor v2](./finance/betting-market/anchor) [💫 Quasar](./finance/betting-market/quasar) +📖 Book: Chapter 13, [*The Betting Market*](https://solanabook.org) + 🎬 Video: [How to build a PolyMarket/Kalshi style betting market on Solana](https://www.youtube.com/watch?v=jE3-IA1FBs0) @@ -89,18 +110,24 @@ A fully collateralized, physically settled **options** venue. A writer posts the [⚓ Anchor v1](./finance/options/anchor-v1) [⚓ Anchor v2](./finance/options/anchor) [💫 Quasar](./finance/options/quasar) +📖 Book: Chapter 19, [*Options*](https://solanabook.org) + ### Perpetual Futures A perpetual futures exchange: a venue for making leveraged bets on an asset's price without ever owning the asset. Traders post collateral and open a **long** (betting the price rises) or **short** (betting it falls) sized up to several times their collateral; their profit or loss tracks the price move and is paid in the collateral token. Rather than matching buyers to sellers, every trade is against a shared **liquidity pool** that other users fund and that is the counterparty to all of it: the pool pays winners and keeps losers' collateral, and its providers earn the trading and funding fees in return. The price comes from an oracle, positions accrue a funding fee over time, and anyone can **liquidate** a position whose collateral can no longer cover its loss. This is the design behind venues like Jupiter Perpetuals and GMX. [⚓ Anchor v1](./finance/perpetual-futures/anchor-v1) [⚓ Anchor v2](./finance/perpetual-futures/anchor) [💫 Quasar](./finance/perpetual-futures/quasar) +📖 Book: Chapter 20, [*Perpetual Futures*](https://solanabook.org) + ### Fundraiser Onchain crowdfunding, like Kickstarter or GoFundMe. A creator sets a target amount in a chosen token, and contributors deposit into the fundraiser's account until the goal is reached. [⚓ Anchor v1](./finance/fundraiser/anchor-v1) [⚓ Anchor v2](./finance/fundraiser/anchor) [💫 Quasar](./finance/fundraiser/quasar) +📖 Book: Chapter 12, [*The Fundraiser*](https://solanabook.org) + ## Single concept examples ### Hello Solana @@ -415,6 +442,10 @@ Start with the [escrow example](./finance/escrow/anchor/), the best first financ Yes. A v1 transaction can be 4,096 bytes rather than 1,232, so more instructions fit in a single transaction instead of being split across several and bundled together. Every Anchor v1 and Anchor v2 example's tests send their transactions as v1, and the programs themselves read those transactions as is: programs don't need to change their format for transaction v1. +### Is there a book that explains these programs? + +Yes. [Building Financial Software on Solana](https://solanabook.org) gives each finance program here its own chapter, covering the market design, the attacks it defends against, and the code, after a first part on Solana's building blocks and the concepts all financial software shares: integer arithmetic for money, oracles, and how attackers take funds. It is [free to download](https://solanabook.org) and in paperback from [Amazon](https://www.amazon.com/dp/B0HMJSSB95) and [Barnes & Noble](https://www.barnesandnoble.com/w/building-financial-software-on-solana-mike-maccana/1151680819). + ### How do I test a Solana program without running a validator? Use [LiteSVM](https://www.anchor-lang.com/docs/testing/litesvm): Rust integration tests that run the program in-process, orders of magnitude faster than `solana-test-validator`. Every example in this repository tests this way, and `anchor init` scaffolds it by default since Anchor 1.0. @@ -425,7 +456,7 @@ Work through the [finance examples](#financial-software-defi) in order of comple ### Are these examples production-ready? -They are teaching examples: every one builds and passes CI, and the finance programs additionally carry [Kani](https://github.com/model-checking/kani) model checks of their arithmetic. None are audited or deployed to mainnet, so treat them as reference implementations to learn from, not code to deploy as-is. +They are teaching examples: every one builds and passes CI. Every finance program has tests that try the attacks it defends against, such as front-running a pool's creation or cancelling another trader's offer, and assert the program refuses them, and [Kani](https://github.com/model-checking/kani) model checks of its arithmetic. None are audited or deployed to mainnet, so treat them as reference implementations to learn from, not code to deploy as-is. ## Acknowledgements diff --git a/assets/book-cover.png b/assets/book-cover.png new file mode 100644 index 0000000000000000000000000000000000000000..c450dd70f84bc432716ef18f50008f7f63410bfa GIT binary patch literal 64463 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�$w;yllR**W*apnN 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 literal 0 HcmV?d00001