The .nft file type is a fundamental container format in the Bitcoin OS ecosystem. It represents non-fungible containers that wrap unique digital content (music, documents, videos, data) and enable them to be monetized through share issuance and revenue generation.
In Bitcoin OS, there are two primary container types:
.nftfiles - Non-fungible containers for unique content.ftfiles - Fungible token containers for value distribution
The .nft specification defines how content becomes a monetizable asset that can generate revenue streams distributed to .ft token holders.
- Wraps ANY digital content (music, video, text, data, images, etc.)
- Maintains original file integrity while adding monetization layer
- Supports single files or bundled collections
- Issue shares against the
.nftasset - Generate revenue through:
- Direct sales
- Rental/licensing fees
- Streaming royalties
- Access subscriptions
- Usage fees
- Automatically routes revenue to associated
.fttoken holders - Supports multiple revenue streams per
.nft - Transparent, on-chain revenue tracking
- Clear on-chain ownership record
- Transferable via BSV transactions
- Fractional ownership through share issuance
- Marketplace compatibility
.nft Container
├── Header (256 bytes)
│ ├── Magic Number: "NFT0" (4 bytes)
│ ├── Version: uint32 (4 bytes)
│ ├── Content Hash: SHA256 (32 bytes)
│ ├── Content Size: uint64 (8 bytes)
│ ├── Content Type: MIME (32 bytes)
│ ├── Encryption Method: uint16 (2 bytes)
│ ├── Metadata Size: uint32 (4 bytes)
│ └── Reserved (170 bytes)
├── Metadata (Variable)
│ ├── Title: string
│ ├── Description: string
│ ├── Creator: BSV Address
│ ├── Creation Date: timestamp
│ ├── Share Structure: JSON
│ ├── Revenue Routes: Array<.ft addresses>
│ ├── Rights: JSON
│ └── Custom Fields: JSON
├── Content (Variable)
│ └── Encrypted original file(s)
└── Signature (64 bytes)
└── Creator's BSV signature
{
"version": "1.0.0",
"title": "string",
"description": "string",
"creator": "BSV address",
"createdAt": "ISO 8601 timestamp",
"shares": {
"total": 1000000,
"issued": 100000,
"price": "satoshis per share"
},
"revenue": {
"routes": [
{
"ftFile": "token.ft",
"percentage": 80,
"address": "BSV address"
}
],
"minimumPayout": 1000
},
"rights": {
"license": "string",
"restrictions": [],
"royaltyPercentage": 10
},
"content": {
"type": "MIME type",
"size": "bytes",
"hash": "SHA256",
"encrypted": true
}
}import { NFTContainer } from '@bitcoin-os/nft';
// Wrap content in .nft container
const nft = new NFTContainer({
content: fileBuffer,
metadata: {
title: "My Digital Asset",
description: "A valuable piece of content",
creator: "1BitcoinAddress..."
}
});
// Issue shares
await nft.issueShares({
total: 1000000,
price: 100 // satoshis per share
});
// Set revenue distribution
await nft.setRevenueRoutes([
{
ftFile: "creator-token.ft",
percentage: 70
},
{
ftFile: "investor-token.ft",
percentage: 30
}
]);
// Save to file
await nft.save("my-asset.nft");import { NFTContainer } from '@bitcoin-os/nft';
// Load .nft file
const nft = await NFTContainer.load("my-asset.nft");
// Access metadata
console.log(nft.metadata.title);
console.log(nft.metadata.shares);
// Decrypt content (requires ownership)
const content = await nft.decrypt(privateKey);- Songs wrapped as
.nftfiles - Streaming royalties distributed to
.ftholders - Album bundles as multi-file
.nftcontainers
- Documents as
.nftassets - Subscription revenue to author
.fttokens - Collaborative works with multiple revenue recipients
- Any stored file becomes an
.nft - Storage fees generate revenue for
.ftholders - Marketplace for buying/selling file access
- Important messages archived as
.nft - Newsletters monetized through
.nftwrapper - Verified communications with signature proof
The .nft standard is designed to work seamlessly with .ft (fungible token) files:
- Revenue Flow:
.nft→ generates revenue → distributed to.ftholders - Token Agnostic:
.ftfiles can contain any token standard (BSV20, BSV21, STAS, etc.) - Automatic Distribution: Smart contracts handle revenue routing
- Multiple Recipients: One
.nftcan distribute to multiple.ftfiles
- Future-Proof: Token standard agnostic design
- Composable: Works with any Bitcoin OS application
- Transparent: On-chain revenue tracking
- Flexible: Supports any content type
- Secure: Encrypted content with blockchain verification
- Core specification (In Progress)
- Reference implementation
- Parser library
- Smart contracts
- SDK development
- Application integration
- Documentation
- Security audit
This is an open-source specification. We welcome contributions from the community. See CONTRIBUTING.md for guidelines.
Open BSV License - See LICENSE for details
This software is licensed exclusively for use on the Bitcoin SV (BSV) blockchain.
- Company: The Bitcoin Corporation LTD (Company No. 16735102)
- GitHub: @bitcoin-apps-suite
- Website: bitcoin-os.vercel.app