IP-NFT
IP-NFT Contract Documentation
Overview
The IP-NFT contract is an ERC-721 NFT that represents on-chain intellectual property ownership. Each IP-NFT is a unique token that enables trading, fractionalization into IPTokens, and use as collateral for funding. They form the foundation of the Molecule Protocol, linking legal IP rights with on-chain ownership.
Contract Details
Contract: IPNFT v2.5.1
Standard: ERC-721 (with URI Storage)
Type: UUPS Upgradeable Proxy
Solidity: 0.8.18
License: MIT
Deployments
Ethereum Mainnet: 0xcaD88677CA8... (Start Block: 17463429)
Sepolia Testnet: 0x152B444e60C5... (Start Block: 5300057)
How It Works
IP-NFT Lifecycle
RESERVE:
reserve()MINT:
mintReservation()USE:
Transfer/Trade
Tokenize (IPT)
Grant Access
Sell via Swap
Minting Paths
Reserve + Mint: Call
reserve(), thenmintReservation().POI Mint (Direct): Use
mintReservation()with Proof of Idea hash.
Functions
Write Functions
reserve
Reserves a new token ID.
mintReservation
Mints an IP-NFT using a reserved ID or POI hash.
grantReadAccess
Grants time-limited read access to encrypted files.
amendMetadata
Updates the metadata URI of an IP-NFT.
Read Functions
canRead
Checks if an address has read access.
symbol
Returns the symbol of an IP-NFT.
tokenURI
Returns the metadata URI.
Events
Reserved: New token ID reserved
IPNFTMinted: IP-NFT minted
ReadAccessGranted: Read access granted
Errors
NotOwningReservation(uint256 id): Caller doesn't own the reservation.Unauthorized(): Caller not authorized.InsufficientBalance(): Caller doesn't own the IP-NFT.BadDuration(): Expiration in the past.MintingFeeTooLow(): Less than 0.001 ETH sent.ToZeroAddress(): Cannot transfer to zero address.
Security Considerations
Symbolic Fee: 0.001 ETH minting fee.
Authorization: Required for all mints.
Read Access Expiration: Time-limited.
Pausable: Contract operations can be paused.
UUPS Upgradeable: Owner-upgradable implementation.
Constants
SYMBOLIC_MINT_FEE: 0.001 ETH
MAX_RESERVATION_ID: 2^128 - 1
Related Contracts
Tokenizer.md: Fractionalize IP-NFTs into IPTokens.
SchmackoSwap.md: Trade IP-NFTs.
Access-Resolver.md: File access integration.
Crowdsale.md: Fundraise via IPTokens.
Resources
Source Code: GitHub
ABI: Available in @moleculexyz/common/abis
Audit: Audit Report
Last updated