Cairo smart contracts for Mediolano, the intellectual property provider of the integrity web, powered on Starknet.
Quick links:
Mediolano Dapp (Sepolia)
Website mediolano.xyz
Telegram | YouTube | X / Twitter
Important
Mediolano dapp is in constant development and the current version runs on Starknet's Sepolia devnet. Use for testing purposes only.
Mediolano empowers creators, artists and organizations to make money from their content, without requiring them to know anything about crypto.
With permissionless services for Programmable Intellectual Property (IP), leveraging Starknetβs high-speed, low-cost transactions and zero-knowledge proofs, Mediolano provides a comprehensive suite of solutions to tokenize and monetize assets efficiently, transparently and with sovereignty.
With zero fees, Mediolanoβs open-source protocol and dapp ensures immediate tokenization and protection under the Berne Convention for the Protection of Literary and Artistic Works (1886), covering 181 countries. This framework guarantees global recognition of authorship, providing verifiable proof of ownership for 50 to 70 years, depending on jurisdiction.
The platform also introduces advanced monetization, enabling diverse approaches to licensing, royalties, and financing creators economies. These tools are designed to offer integrations with various ecosystems, including communities, games, and AI agents, unlocking the true power of Programmable IP for the Integrity Web.
Mediolano Protocol
βββ Medialane Protocol (Marketplace Core)
βββ User Achievements System
βββ IP Tokenization (ERC-721/ERC-1155)
βββ Programmable Licensing
βββ Revenue Sharing & Royalties
βββ Community & Club Management
βββ Franchise & Monetization
βββ Escrow & Negotiations
βββ Collective Agreements
βββ Collaborative Storytelling
βββ Partner Certification
-
Starknet Ignition 24.9
-
MIP Protocol @ Starknet Sepolia 24.11
-
Mediolano Dapp @ Starknet Sepolia 24.11
-
Programmable IP Contracts 25.02
-
MIP Dapp @ Starknet Sepolia 25.06
-
MIP Protocol @ Starknet Mainnet 25.07
-
MIP Collections Protocol @ Starknet Sepolia 25.07
-
MIP Dapp @ Starknet Mainnet 25.08
-
MIP Collections Protocol @ Starknet Mainnet 25.08
-
Mediolano Dapp @ Starknet Mainnet 25.10
-
Medialane Protocol @ Starknet Sepolia 25.11
-
Medialane Dapp @ Starknet Sepolia 25.11
-
Medialane Protocol @ Starknet Mainnet 25.12
-
Medialane Dapp @ Starknet Mainnet 25.12
Before you begin, ensure you have the following requirements:
- Node.js (version 18 or later) and npm installed. Download them from the official Node website.
- Basic understanding of Starknet Foundry to deploy your own contract instance
- Cairo and Scarb for smart contract development
- Npm + Git
- ASDF + Scarb
- Starknet CLI
- Starknet Foundry
- Operating System: macOS, Windows (including WSL), and Linux are supported
- Clone the repository to your local machine:
git clone https://github.com/mediolano-app/mediolano-contracts.git
cd mediolano-contracts- Install dependencies:
# Install Scarb (Cairo package manager)
curl --proto '=https' --tlsv1.2 -sSf https://docs.swmansion.com/scarb/install.sh | sh
# Install Starknet Foundry
curl -L https://raw.githubusercontent.com/foundry-rs/starknet-foundry/master/scripts/install.sh | sh- Build contracts:
# Build all contracts
scarb build
# Or build specific contract
cd contracts/IP-Club
scarb build- Run tests:
# Run all tests
scarb test
# Run tests for specific contract
cd contracts/User-Achievements
scarb testmediolano-contracts/
βββ contracts/
β βββ Medialane-Protocol/ # Core marketplace
β βββ User-Achievements/ # Gamification system
β βββ IP-Club/ # Community management
β βββ IP-Revenue-Share/ # Revenue distribution
β βββ IP-License-Agreement/ # Licensing contracts
β βββ IP-Collective-Agreement/ # Multi-party agreements
β βββ ... # Additional contracts
βββ scripts/ # Deployment scripts
βββ tests/ # Integration tests
βββ docs/ # Documentation
Each contract directory contains its own Scarb.toml configuration file. You can build and test contracts individually:
# Navigate to specific contract
cd contracts/IP-Club
# Build the contract
scarb build
# Run contract tests
scarb test
# Format code
scarb fmtDeploy contracts to Starknet networks:
# Deploy to Sepolia testnet
starkli deploy ./target/dev/contract_name.contract_class.json \
--network sepolia \
--keystore ./keystore.json
# Deploy to mainnet
starkli deploy ./target/dev/contract_name.contract_class.json \
--network mainnet \
--keystore ./keystore.json- Access Control: Role-based permissions using OpenZeppelin components
- Reentrancy Protection: Guards against reentrancy attacks
- Input Validation: Comprehensive validation of all user inputs
- Overflow Protection: Safe math operations throughout
- Pause Functionality: Emergency pause capabilities for critical contracts
We are building open-source Integrity Web with the amazing OnlyDust platform. Check our website for more information.
We also have a Telegram group focused to support development.
Contributions are greatly appreciated. If you have a feature or suggestion that would make our platform better, please fork the repo and create a pull request with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/Feature) - Commit your Changes (
git commit -m 'Add some Feature') - Push to the Branch (
git push origin feature/YourFeature) - Open a Pull Request
- Follow Cairo best practices and coding standards
- Write comprehensive tests for new features
- Update documentation for any API changes
- Ensure all tests pass before submitting a pull request
- Use descriptive commit messages
When reporting issues, please include:
- Environment details (OS, Cairo version, Scarb version)
- Steps to reproduce the issue
- Expected vs actual behavior
- Error messages or logs
- Minimal code example if applicable
This project is licensed under the MIT License - see the LICENSE file for details.
- Starknet Foundation for the amazing ZK-rollup technology
- OpenZeppelin for secure smart contract components
- OnlyDust for supporting open-source development
- Community Contributors who make this project possible
- Documentation: Check individual contract READMEs for specific guidance
- Community: Join our Telegram for discussions
- Issues: Report bugs and feature requests on GitHub
Built with β€οΈ for the Integrity Web on Starknet
