NFT as anAccount
Technology that converts NFTs into accounts capable of owning assets, executing transactions, staking assets, and interacting with the Polkadot ecosystem.

What is NFTAA?
NFTAA (NFT-as-an-Account) is an innovative Substrate pallet that revolutionizes how NFTs interact within the Polkadot ecosystem. By converting NFTs into accounts, we enable unprecedented functionality and liquidity.
The Problem
Traditional account mechanisms suffer from several limitations:
- Traditional accounts are not transferable
- Ecosystem is not using full potential of NFTs
- Limited flexibility in asset management
- Staked assets become illiquid
Our Solution
NFTAA addresses these challenges by:
- Converting NFTs into functional accounts
- Unlocking new NFT use cases
- Bringing a new kind of ownership structure
- Maintaining liquidity while staking
Asset Ownership
NFTs can own and manage other digital assets, creating complex structures.
Secure Staking
Stake assets through NFTAAs while maintaining liquidity and transferability.
Smart Execution
Execute transactions and interact with ecosystem through NFT accounts.
Delegated Control
Transfer ownership and control without exposing private keys.
How NFTAA Works
A Substrate pallet that extends standard NFT functionality with account capabilities through deterministic address generation.
Create Collection
Initialize an NFTAA collection using the create extrinsic with CollectionConfig settings.
Mint NFTAA
Mint an NFT using the specialized mint function that generates a deterministic account address and stores it as an attribute.
Execute Transactions
Use proxy_call to execute any RuntimeCall through the NFTAA, with ownership verification and listing protection.
Transfer Ownership
Transfer the NFTAA using standard NFT transfer, automatically granting the new owner full control over the associated account.
Technical Implementation
Address Generation
NFTAA uses deterministic address generation combining:
- SS58 Prefix (chain identifier)
- Collection ID
- Item ID
- Blake2 hashing for uniqueness
Security Features
- Ownership verification using pallet_nfts
- Listed NFTAAs cannot execute transactions
- Origin transformation to NFTAA account
- Runtime call dispatch validation
- Event emission for audit trails
Integration
- Extends pallet_nfts functionality
- Compatible with pallet_utility
- Supports all standard NFT operations
- Custom attribute storage
- Weight calculation optimization
Example Usage
// Create NFTAA collection pallet_nftaa::create(origin, admin, config) // Mint NFTAA with auto-generated account pallet_nftaa::mint(origin, collection_id, item_id, mint_to, witness_data) // Execute transaction through NFTAA pallet_nftaa::proxy_call(origin, collection_id, item_id, runtime_call)
Open Source Repositories
Explore our codebase, contribute to the project, and join the NFTAA community.
GitHub Repositories
Research & Documentation
Join the Development
NFTAA is open source and welcomes contributions from the community.
Meet the Team
Get in touch with the passionate team behind NFTAA and join our mission to revolutionize NFT functionality in the Polkadot ecosystem.
Get in Touch
Have questions about NFTAA? Want to contribute to the project? Interested in integrating NFTAA into your parachain? We'd love to hear from you!
Join Our Community
Be part of the NFTAA revolution in the Polkadot ecosystem
Ecosystem Partners
NFTAA is built in collaboration with leading organizations in the Polkadot ecosystem
Become a Partner
Interested in integrating NFTAA into your parachain or collaborating on innovative NFT solutions? Let's build the future of the Polkadot ecosystem together.
Contact for Partnership