Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: Péter Garamvölgyi <[email protected]>
  • Loading branch information
isabellewei and Thegaram authored Oct 3, 2024
1 parent 2921313 commit a5ac8f3
Showing 1 changed file with 7 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ Canvas is an open onchain profile database of user identities and achievements (

### Badge

**Badges** are attestations of identities, achievements and traits verified through the [Ethereum Attestation Service](https://scroll.easscan.org/learn/scroll), issued **permissionlessly by different ecosystem projects**. Badges are wallet-bound and non-transferable. **Badges facilitate interactions between ecosystem projects and users**.
**Badges** are attestations of identities, achievements and traits issued through the [Ethereum Attestation Service](https://scroll.easscan.org/learn/scroll) **permissionlessly by different ecosystem projects**. Badges are wallet-bound and non-transferable. **Badges facilitate interactions between ecosystem projects and users**.

Developers can issue badges in three methods:

| Issuance Method | **Description** | **Example** |
| --- | --- | --- |
| `Permissionless` | Badge checks eligibility based on smart contract. | Badges attest to the completion of an on-chain transaction or holding of an NFT. |
| `Backend-authorized` | Badge checks eligibility based on the issuer’s API. | Badges attest to the completion of off-chain actions or a certain allow list. |
| `Gifted` | Badges checks eligibility based on the issuer’s API and **automatically** sends the badges to users’ canvas. There is no minting required for users to display the badge. | Badges attest to the ownership or paid membership on other platforms / chains. |
| `Gifted` | Badge checks eligibility based on the issuer’s API and **automatically** sends the badges to users’ canvas. There is no minting required for users to display the badge. | Badges attest to the ownership or paid membership on other platforms / chains. |

Developers can design badges in two ways:

Expand All @@ -47,8 +47,8 @@ Developers can design badges in two ways:

Badge issuance and deployment of the contract is fully permissionless. Please follow the steps below to issue a Badge for your project.

<Aside type="note" title="Join Developer Support Channel">
For Canvas and badge questions, please join [Scroll dev support channel](https://discord.com/invite/scroll)
<Aside type="note" title="Join the Developer Support Channel">
For Canvas and badge questions, please join the [Scroll dev support channel](https://discord.com/invite/scroll)
</Aside>

## Step 1 `Design`: Badge Design Guidelines
Expand All @@ -71,7 +71,7 @@ For Canvas and badge questions, please join [Scroll dev support channel](https:/
| Name | Name your badge to be *descriptive and creative* |
| Description | Brief description of the *purpose* of this badge and *who is eligible* |
| Structure | *One single attribute*<br/> *Multiple Badges with levels* trigged by different actions and traits |
| Category | *Achievement*: tasks you have done. e.g. Scroll Origin NFTs, tasks completion badge <br/> *Identities*: who you are. e.g. Ethereum year, GItcoin passport, NFT community badge |
| Category | *Achievement*: tasks you have done. e.g. Scroll Origin NFTs, tasks completion badge <br/> *Identities*: who you are. e.g. Ethereum year, Gitcoin passport, NFT community badge |
| Issuance method | *Fully permissionless*: meaning your badge can be automatically issued by checking smart contract conditions <br/> *Gifted*: Badges can also be issues with no user interaction, requires APIs <br/> *Backend-authorized*: requires APIs to enable eligibility criteria |
| Support link | *Support channel link* to your Discord/Telegram group |

Expand Down Expand Up @@ -147,12 +147,12 @@ Since **badges are permissionless**, Scroll Foundation may not troubleshoot indi
```
</ToggleElement>

4. **Access Readiness**: Ensure badge contract address implements `defaultTokenURI`, allowing retrieval of default display data (`name, image, description`) via `bytes32(0)` with informative name and description.
4. **Access Readiness**: Ensure your badge contract implements `ScrollBadgeDefaultURI`, allowing retrieval of default display data (`name, image, description, issuerName `) via `bytes32(0)` with informative name and description.
5. **Set up support**: Prepare a channel for your badge holders can find you for support, get the url to join that channel ready.

## Step 3 `Test`: Sanity Check

1. Once your badge has been deployed on Scroll, you can auto-check some of these requirements by running `yarn check-badge`.([link to check badge script](https://github.com/scroll-tech/canvas-contracts/blob/master/script/CheckBadge.s.sol))
1. Once your badge has been deployed on Scroll, you can auto-check some (but not all) of these requirements by running `yarn check-badge` ([link to check badge script](https://github.com/scroll-tech/canvas-contracts/blob/master/script/CheckBadge.s.sol)).
- If your badge minting transaction reverts, we recommend debugging using `cast`:

```bash
Expand Down

0 comments on commit a5ac8f3

Please sign in to comment.