This repository contains the on-chain part of Cartesi Rollups.
If you are interested in taking a look at the off-chain part, please, head over to cartesi/rollups-node
.
This repository contains git submodules. In order to properly initialize them, please, run the following command.
git submodule update --init --recursive
This repository uses pnpm to manage JavaScript dependencies. In order to install them, please, run the following command.
pnpm i
If you want to run a Hardhat node and deploy the contracts, please run the following command.
pnpm start
If, instead, you wish to deploy the contracts to an already running node (e.g. Anvil), you can do so by running the following command.
pnpm deploy:localhost
If the node is not listening to http://localhost:8545/
, please set the RPC_URL
environment variable accordingly.
If you want to run the tests, please run the following command.
forge test -vvv
🚀 Smart contract documentation is kept up-to-date and deployed here.
ℹ️ You may also want to check the official Cartesi Rollups documentation website.
🔎 For an in-depth view of the on-chain architecture, we invite you to take a look at the CONTRACTS.md
file.
To get a taste of how to use Cartesi to develop your DApp, check the following resources: See Cartesi Rollups in action with the Simple Echo Examples in C++, JavaScript, Lua, Rust and Python. To have a glimpse of how to develop your DApp locally using your favorite IDE and tools check our Host Environment in the Rollups Examples repository.
If you're interested in developing with Cartesi, working with the team, or hanging out in our community, don't forget to join us on Discord and follow along.
Want to stay up to date? Make sure to join our announcements channel on Telegram or follow our X (formerly Twitter).
Thank you for your interest in Cartesi! Head over to our Contributing Guidelines for instructions on how to sign our Contributors Agreement and get started with Cartesi!
Please note we have a Code of Conduct, please follow it in all your interactions with the project.
Note: This component currently has dependencies that are licensed under the GNU GPL, version 3, and so you should treat this component as a whole as being under the GPL version 3. But all Cartesi-written code in this component is licensed under the Apache License, version 2, or a compatible permissive license, and can be used independently under the Apache v2 license. After this component is rewritten, the entire component will be released under the Apache v2 license. The arbitration d-lib repository and all contributions are licensed under GPL 3. Please review our COPYING file.