The Sandbox is a user-generated content (UGC) gaming platform, that will empower creators through digital ownership and monetization of 3D voxel creations made and shared by users around the world.
This mono-repo contains The Sandbox smart contracts, underpinning The Sandbox metaverse. Our key token contracts were conceived inside the core package. You can find out more about some of our early blockchain features in this article. Since core was created, we have added new contracts and updates via new packages - see the below Architecture Overview for more information.
This workspace uses Nx: a smart, fast and extensible build system.
Run nx graph
to see a diagram of the dependencies of the projects.
To add a package simply add it inside the packages directory. Every package can implement the following targets that will be run by the root package.json
scripts and on the CI:
test
: run unit tests inside your new package.coverage
: run coverage. Note: CI expects to have at least 80% coverage.lint
: lint your code.format
: format the code with prettier.
See packages/example-hardhat
for an example template package for smart contract development with Hardhat.
Refer to each package's readme for more information about that package. Note that deployment for all new packages is carried out via packages/deploy
.
Each package should follow the audit best practices where applicable.
yarn install
Install Slither (optional)
pip3 install -r requirements.txt
- 📦 This mono-repository contains a suite of smart contract packages.
- ⚖️ The mono-repository is released under MIT license. Note, that the packages may contain their own licenses.
Package | Version | License | Description |
---|---|---|---|
@sandbox-smart-contracts/packages/core |
🗝️ Core smart contracts (pre 2023) | ||
@sandbox-smart-contracts/packages/deploy |
N/A | 🚀 Deploy all packages (except core) | |
@sandbox-smart-contracts/packages/example-hardhat |
N/A | 👷 Development template using Hardhat | |
@sandbox-smart-contracts/packages/giveaway |
🎁 Instant Giveaway smart contract claims | ||
@sandbox-smart-contracts/packages/dependency-metatx |
🌐 Dependency: ERC2771 handler | ||
@sandbox-smart-contracts/packages/marketplace |
🛍️ The Sandbox marketplace contracts | ||
@sandbox-smart-contracts/packages/dependency-royalty-management |
🎨 Dependency: The Sandbox Royalty Implementation in partnership with Manifold's royalty-registry | ||
@sandbox-smart-contracts/packages/dependency-operator-filter |
🤝 Dependency: The Sandbox's implementation for OpenSea's operator filter | ||
@sandbox-smart-contracts/packages/asset |
🚗 Asset contract upgrade for L2 deployment featuring tiers, abilities, operator-filter and creator royalties |
Submit a bug at Immunefi to help secure our smart contracts!