https://github.com/scroll-tech/canvas-contracts
https://github.com/scroll-tech/canvas-contracts
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/scroll-tech/canvas-contracts
- Owner: scroll-tech
- License: mit
- Created: 2024-02-15T13:51:24.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-01-15T10:44:54.000Z (12 months ago)
- Last Synced: 2025-04-08T13:46:57.962Z (9 months ago)
- Language: Solidity
- Size: 502 KB
- Stars: 22
- Watchers: 5
- Forks: 39
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Scroll Canvas Contracts
[](https://github.com/scroll-tech/canvas-contracts/actions/workflows/contracts.yml)
## Welcome to Scroll Canvas
We are thrilled to have you join us in building unique discoveries with [Scroll Canvas](https://scroll.io/canvas), a new product designed for ecosystem projects to interact with users in a more tailored way.
Try Canvas at [scroll.io/canvas](https://scroll.io/canvas)
## Overview
**Scroll Canvas** allows users to showcase on-chain credentials, status, and achievements called **Badges** issued and collected across the Scroll ecosystem.
Users can mint a non-transferable and unique personal persona to collect and display their **Badges**.
### Key Features
- **Canvas**: Each Canvas is a smart contract minted through the `ProfileRegistry` contract by the user on Scroll’s website.
- **Badges**: Attestations of achievements and traits verified through the [Ethereum Attestation Service](https://docs.attest.sh/docs/welcome) (EAS), issued by different projects and the Scroll Foundation.
Badges are wallet-bound and non-transferable.
Differences between attestations and NFTs:
| Attestation | NFT |
| --- | --- |
| Witness Proofs | Tokenized Assets |
| Non-transferable | Transferable |
| Recorded on disk (blockchain history) | Recorded in memory (blockchain states) |
| Prove ownership at a point in time | Exercise custodianship of an asset |
## Developer Quickstart
Visit the [Developer Documentation](./docs) in this repo to learn more about Canvas.
See [Deployments](./docs/deployments.md) for the official Canvas contract addresses.
See the [Integration Guide](https://scrollzkp.notion.site/Introducing-Scroll-Canvas-Badge-Integration-Guide-8656463ab63b42e8baf924763ed8c9d5) for more information.
## Support
For questions regarding Canvas and custom badge development, please join [Scroll dev support channel](https://discord.com/channels/853955156100907018/1028102371894624337) on Discord.
## Running the Code
### Node.js
First install [`Node.js`](https://nodejs.org/en) and [`npm`](https://www.npmjs.com/).
Run the following command to install [`yarn`](https://classic.yarnpkg.com/en/):
```bash
npm install --global yarn
```
### Foundry
Install `foundryup`, the Foundry toolchain installer:
```bash
curl -L https://foundry.paradigm.xyz | bash
```
If you do not want to use the redirect, feel free to manually download the `foundryup` installation script from [here](https://raw.githubusercontent.com/foundry-rs/foundry/master/foundryup/foundryup). Then, run `foundryup` in a new terminal session or after reloading `PATH`.
Other ways to install Foundry can be found [here](https://github.com/foundry-rs/foundry#installation).
### Install Dependencies
Run the following command to install all dependencies locally.
```
yarn
```
### Run Contract Tests
Run the following command to run the contract tests.
```
yarn test
```
## Contributing
We welcome community contributions to this repository.
For larger changes, please [open an issue](https://github.com/scroll-tech/canvas-contracts/issues/new/choose) and discuss with the team before submitting code changes.
## License
Scroll Monorepo is licensed under the [MIT](./LICENSE) license.