Token Extension Protocol (TEP)
A standard repository for NFTs that allows attaching modular data and assets—such as 3D models—across multiple metaverses and dapps, fostering true interoperability and discoverability.
Open and accessible to all platforms and projects
Token Extension Protocol
What is TEP?
TEP is a protocol that extends the capabilities of tokens (fungible and non-fongible) on the blockchain. It allows developers to build advanced features on top of existing tokens without modifying the underlying smart contract or metadata.
Modular NFT Extensions
Attach extensions (e.g. 3D assets, media files) to NFTs without altering their original metadata.
Cross-Metaverse Interoperability
Enable NFTs to retain functionality and representation seamlessly across various virtual worlds.
Open & Extensible Protocol
Anyone can create and attach extensions, ensuring provenance, collaboration, and a vibrant ecosystem.
Flexible & Backward-Compatible
Preserve original NFT metadata while supporting various data types and maintaining platform compatibility.
Improved Discoverability
A unified registry helps NFT holders easily find all compatible metaverses and dapps for their assets.
Streamlined Integration
Metaverses and apps can save development time and resources by pulling from a decentralized registry.
TEP Standard
The Standard
The Token Extension Protocol (TEP) introduces a standardized, open-access method for managing and discovering NFT extensions without altering the original NFT metadata. Using a specialized URI scheme, developers and platforms can easily attach new data or capabilities to an NFT, retrieve all known extensions, or access a specific extension’s metadata. This approach streamlines interoperability and simplifies the integration of additional content, promoting a more dynamic and connected NFT ecosystem.
import { NFT, encode, attachExtensionToNFT, defineExtension } from '@tep/sdk';
const nftId = encode({
type: "evm",
chainId: 1,
address: "0x59325733eb952a92e069C87F0A6168b29E80627f",
tokenId: "42"
});
const assetExtension = defineExtension({
type: "3d_asset",
name: "3D Character Model",
uri: "ipfs://QmSome3DAssetHash",
metadata: {
format: "glb",
description: "A fully animated 3D character model",
}
});
const result = await attachExtensionToNFT(nftId, assetExtension);
console.log(result);
// > tep://QmSomeNFTHash/QmSomeExtensionHash
Become an Early Collaborator of the TEP
Become an early collaborator in shaping the future of the TEP. By joining, you’ll gain early access to connect your metaverse assets with NFTs, experiment with cross-metaverse integrations, and provide valuable feedback to help perfect this evolving standard.