Programmable IP foundation of the Integrity Web. A high-performance, modular infrastructure for programmable intellectual property onchain.
Mediolano utilizes a modular architecture designed for scalability and interoperability. By decoupling the asset registry from the licensing logic, we enable flexible and evolving IP management.
IP ownership and metadata. Implemented as an ERC-721 compatible contract onchain.
Immutable data defining usage rights, licensing terms, and transferability. Create with freedom.
Our smart contracts are written in Cairo, Starknet's native language, optimized for validity proofs (ZK-Rollup).
Starknet provides the computational layer and zero-knowledge proofs necessary for the Integrity Web, while maintaining decentralization and Ethereum security.
Mathematical integrity powered by STARKs.
Native support for advanced wallet features and improved UX.
Settlement and data availability on Ethereum mainnet.
The protocol is designed to be unstoppable and censorship-resistant. No single entity controls the registry or the rules of engagement.
Critical metadata (ownership, license terms) is stored on-chain or posted as calldata to Ethereum, ensuring it remains available as long as Ethereum exists. Heavy media assets are referenced via IPFS/Arweave hashes.
The `IPCollection` contract is the core of the Mediolano Protocol. It implements the ERC721 standard for non-fungible tokens, extended with upgradeability and specific IP management features.
IUpgradeable: Allows for logic upgrades without state loss.IIPCollection: Custom interface for minting and token management.ERC721ABI: Standard NFT functionality.OwnableABI: Access control for administrative actions.IERC721Enumerable: Enumerability extension.Interacting with the contract typically requires a Starknet wallet like Argent X or Braavos in order to sign transactions. Read-only functions can be called via any Starknet provider.
mintmint(recipient: ContractAddress) -> u256
Mints a new IP asset token to the specified recipient. Returns the new Token ID.
burnburn(token_id: u256)
Burns a specific token. Operates only if the caller is the owner or approved.
transfer_tokentransfer_token(from: ContractAddress, to: ContractAddress, token_id: u256)
Transfers ownership of a specific token from one address to another.
list_user_tokenslist_user_tokens(owner: ContractAddress) -> Array<u256>
Returns an array of all token IDs owned by a specific address. Useful for fetching user portfolios.
Mediolano fully complies with the ERC721 standard, ensuring compatibility with all Starknet NFT marketplaces and wallets.
A modular system of Cairo smart contracts on Starknet. The Core Registry (ERC721) manages asset ownership, while Licensing Modules define usage rights. Logic is separated from state for upgradeability. Validated by STARK proofs for integrity.
use mediolano::interfaces::IIPCollectionDispatcherTrait;
let dispatcher = IIPCollectionDispatcher { contract_address };
let token_id = dispatcher.mint(recipient);