Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Moved identity files #1116

Merged
merged 3 commits into from
Jan 16, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pages/404.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ description: 404 page not found and directs users to submit an git issue.

## Let's find our way back. <br /> Visit the [homepage](index) to get started.

#### Please help by [submitting an issue](https://github.com/ethereum-optimism/community-hub/issues/new/choose) for the broken link. ❤️
### Please help by [submitting an issue](https://github.com/ethereum-optimism/community-hub/issues/new/choose) for the broken link. ❤️

2 changes: 1 addition & 1 deletion pages/500.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ description: 500 internal server error and directs users to submit an git issue.

## Something isn't quite right. Let's start again on the [homepage](index).

#### Please help by [submitting an issue](https://github.com/ethereum-optimism/community-hub/issues/new/choose) about what led you to this page. ❤️
### Please help by [submitting an issue](https://github.com/ethereum-optimism/community-hub/issues/new/choose) about what led you to this page. ❤️
2 changes: 1 addition & 1 deletion pages/contribute/contribution-path/ambassador-req.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ The journey to become an Ambassador follow the following steps:

`wannabe-ambassador` → **`ambassador-in-training`** → `ambassador`

#### **To Obtain `ambassador-in-training` status:**
### **To Obtain `ambassador-in-training` status:**

- **Fill out Ambassador [intake form](https://app.deform.cc/form/3d8c6150-3c4a-4944-b1a7-8c5b888ae1ec)**
- **Minimum of 8 weeks** spent as as an active wannabe-ambassador then..
Expand Down
28 changes: 14 additions & 14 deletions pages/contribute/contribution-path/govnerds.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,28 +63,28 @@ Contributors can move from one role to the next by meeting the following criteri

### `wannabe-govNERDs`

#### Required Context
### Required Context

- Complete the [Wannabe-govNERD form](https://docs.google.com/forms/d/16KPsbnzL1lbj7AoftwLy5VjXO28MpZK5yJ0GI0xT3Q0/edit).
- Claim the appropriate role in [Discord](https://discord.com/channels/667044843901681675/1262416527131410556/1262417034738798603).
- Familiarize yourself with governance documents such as the Operating Manual, Code of Conduct, Rules of Engagement, and the Optimism Vision.
- Participate in relevant calls (e.g., grant council, Retro Funding, governance).
- Stay updated on governance discussions in the forum, Discord, and Telegram.

#### Available Contributions
### Available Contributions

- **Data Collection**: Assist in gathering data like delegate proposal endorsements.
- **Data Validation**: Verify delegate approvals and double-check grant amounts.
- **Moderation**: Monitor and flag posts on Discord and Discourse for follow-up by govNERDs.

#### Activity Minimums
### Activity Minimums

- Engage in the governance forum for at least 1 hour per week.
- Complete at least one contribution per voting cycle.
- Join at least one community call per month.
- Participate in govNERDs calls (live or asynchronously).

#### Progress Criteria
### Progress Criteria

To advance to `govNERDs-in-training`, you must:

Expand All @@ -96,24 +96,24 @@ To advance to `govNERDs-in-training`, you must:

### `govNERDs-in-training`

#### Required Context
### Required Context

- All `wannabe-govNERD` context.
- Deepen your understanding of grants, Retro Funding, and proposal life cycles.
- If specializing, research the history and previous changes in your chosen specialty.

#### Available Contributions
### Available Contributions

- Complete govNERD tasks with mentor oversight to ensure quality and alignment with expectations.

#### Activity Minimums
### Activity Minimums

- Engage in the governance forum for at least 2 hours per week.
- Complete at least two contributions per voting cycle.
- Join at least one community call per month.
- Participate in govNERDs calls (live or asynchronously).

#### Progress Criteria
### Progress Criteria

To advance from `govNERDs-in-training`, you must:

Expand All @@ -124,13 +124,13 @@ After achieving the `govNERDs-in-training` role, you may choose to specialize in

### `govNERDs`

#### Required Context
### Required Context

- All context from previous roles.
- Maintain updated knowledge on governance developments.
- Gather and relay community feedback to the govNERD team.

#### Available Contributions
### Available Contributions

- Attend and participate in community calls.
- Onboard new delegates and governance participants.
Expand All @@ -140,20 +140,20 @@ After achieving the `govNERDs-in-training` role, you may choose to specialize in
- Escalate potential issues or misunderstandings to the Optimism Governance team.
- Monitor and report inappropriate or irrelevant content in the governance forum.

#### Activity Minimums
### Activity Minimums

- Complete at least three contributions per voting cycle.
- Join community calls and participate in govNERDs calls (live or asynchronously).
- Mentor new `govNERDs-in-training` when available.

### `govNERD-maintainers`

#### Required Context
### Required Context

- All context from previous roles.
- Understand new governance process iterations to inform other govNERDs and delegates.

#### Available Contributions
### Available Contributions

- Perform all contributions required of govNERDs.
- Maintain and moderate the governance forum, ensuring quality engagement.
Expand All @@ -163,7 +163,7 @@ After achieving the `govNERDs-in-training` role, you may choose to specialize in
- Verify data collected by other govNERD roles.
- Nominate promising `wannabe-govNERDs` for advancement to `govNERDs-in-training`.

#### Activity Minimums
### Activity Minimums

Maintain the same activity levels as regular govNERDs, with additional responsibilities:

Expand Down
22 changes: 9 additions & 13 deletions pages/identity/_meta.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
{
"identity-overview": {
"display": "hidden"
},

"overview": "Overview",
"identity-and-rep": "Identity and Reputation",
"project-and-individual-identity-in-the-collective": "Project and individual identity in the Collective",
"--- ATTESTATIONS": {
"title": "ATTESTATIONS",
"type": "separator"
},
"about-attestations": "About attestations",
"attestations-best-practices": "Attestations Best Practices",
"build-with-attestations": {
"title": "Build with Attestations",
"href": "https://docs.optimism.io/chain/identity/about-attestations",
"newWindow": true
}
"contracts-eas": "Contracts (EAS)",
"schemas": "Schemas",
"applications": "Apps",
"organizations": "Organization",
"project-and-individual-identity": "Project and individual identity in the Collective",
"projects": "Projects"
}
64 changes: 64 additions & 0 deletions pages/identity/about-attestations.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: About attestations
lang: en-US
description: Learn about building decentralized identity apps using Ethereum Attestation Service.
---

import { Callout } from 'nextra/components'

# Build decentralized identity apps with attestations

This guide explains how to build decentralized identity apps using attestations.
It will define attestations and review the benefits of using Ethereum Attestation Service for Optimism developers.

## About attestations

Attestations are signed statements about a person, entity, or thing, made by an individual, company, or organization and are one of the building blocks of decentralized identity.

Our journey towards decentralized identity begins with the [Ethereum Attestation Service](https://optimism.easscan.org), a set of smart contracts for creating, verifying, and revoking on/off-chain attestations.
You can think of Ethereum Attestation Service as a multiplayer database for streamlining the attestation process and enabling a robust web of trust on any OP Chain in the Superchain.

![attestation logo.](/img/op-mainnet/identity/atst-logo.png)

## Benefits of using Ethereum attestation service

EAS makes it easy to sign any piece of data. In addition, here are a few key benefits:

* **Permissionless**: The AttestationStation is a public contract, which means that it is not owned or controlled by any one person or organization. Anyone can use the contract to verify and attest anything.
* **Tooling:** Indexing, various access-management integrations, and more are already available for the AttestationStation.

## Privacy

Attestations create log entries that become part of the permanent record of the blockchain.
Here are some best practices to avoid violating users' privacy:

* Obtain explicit consent from users for [personal information](https://csrc.nist.gov/glossary/term/PII), which includes a user's legal name and birthdate.
Clearly [inform users](https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/personal-information-what-is-it/what-is-personal-information-a-guide/) what data is being collected, why it is being collected, and how it will be used.
* Sensitive data should not be stored onchain, in any way.
If you need a smart contract to verify it in the future, you can use the hash of the sensitive data rather than the data itself.
* Even when storing sensitive data offchain, you need to ensure it is stored securely using encryption, proper authentication and authorization, etc.

<Callout type="warning">
You are encouraged to consult a lawyer or other professional advisors if you are uncertain about your obligations.
Global data privacy laws are complex and multifaceted, and the violations of user privacy can have meaningful compliance as well as practical implications.
</Callout>

## Common questions

**Q: Are attestations replacements for verifiable credentials?**

**A:** Attestations should not be viewed as a replacement for verifiable credentials or decentralized identifiers. Rather developers can use attestations to create [decentralized identifiers](https://www.w3.org/TR/did-core/), credentials, claims, and more.

**Q: Are attestations replacements for proof of personhood?**

**A:** Attestations and the associated web of trust are complementary with proof of personhood like [WorldID](https://worldcoin.org/blog/announcements/worldcoin-commits-optimism-superchain-vision-ahead-mainnet-launch) and similar solutions. Without proof of personhood, agents could sybil-attack the web of trust to build their reputation. On the other hand, web of trust extends proof of personhood to confer more information about the person you're interacting with which is critical in governance and other use-cases that require knowledge of the person's reputation.

**Q: Why attestations instead of soulbound / non-transferable tokens?**

**A:** Attestations have two key benefits over soulbound / non-transferable tokens: flexibility of whether the attestations is onchain or offchain and composability. While there is a canonical [decentralized schema registry for attestations](https://optimism.easscan.org/schemas), there is no central registry or specification for soulbound / non-transferable tokens which can lead to poor interoperability between systems and protocols.

## Next steps

* Read about [Attestation best practices](/identity/attestations-best-practices)
Are you inspired and don't know what to build? We have a [project idea list](https://github.com/ethereum-optimism/ecosystem-contributions).
Do you have a good idea, but you know you're not the right person to build it? Please open a PR on that list and suggest it.
23 changes: 23 additions & 0 deletions pages/identity/applications.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Attestation Apps
lang: en-US
description: Learn some of the applications that use attestations.
---

# Attestation apps

This guide lists some of the applications that use attestations.

## Ethereum attestation service

These are some of the applications that use the attestations:

* [EAS Scan](https://optimism.easscan.org/): This no-code interface lets you build schemas, query, and submit attestations.
* [Citizen Attestations](https://citizen-attestations.xyz/): An attestation explorer for Optimism focusing on attestations that are relevant for the OP Citizens eligibility process.
* [Attest Fest](https://attest-fest.party/): Create multiple EAS attestations using the power of CSV and Safe multisig wallets. It's an attest fest, yay!
* [Optimist Profile](https://app.optimism.io/retropgf-signup): The Optimist Profile allows contributors to share the contributions and impact they've made to the Optimism Collective.
* [Ethereum Ecosystem onchain reviews](https://www.ethereum-ecosystem.com/new-review): The goal of this Attestation-Based Dapp Rating web app is to allow anyone to review dApps and tools 100% onchain.

## Building with attestations

Are you building with attestations? Feel free to add your app to this page using the [attestation GitHub issue template](https://github.com/ethereum-optimism/docs/issues/new?assignees=\&labels=documentation%2Cattestation%2Ccommunity-request\&projects=\&template=suggest_attestation.yaml\&title=%5BATT%5D+Add+PR+title).
40 changes: 40 additions & 0 deletions pages/identity/contracts-eas.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: Contracts (EAS)
lang: en-US
description: Learn the basics of contracts for EAS, EAS contract addresses, and how to read and write attestations.
---

# EAS contracts

This guide covers [Ethereum Attestation Service ("EAS")](https://attest.sh/), an open-source public good that is included as a predeploy in the OP Stack.
It also covers EAS contract addresses, how to read and write attestations, and indexing.

## EAS contract addresses

The [Ethereum Attestation Service](https://docs.attest.sh/docs/welcome) is deployed on these addresses:

| Network | Attestation Contract | Schema Registry Contract |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| OP Sepolia | [0x4200000000000000000000000000000000000021](https://sepolia-optimism.etherscan.io/address/0x4200000000000000000000000000000000000021) | [0x4200000000000000000000000000000000000020](https://sepolia-optimism.etherscan.io/address/0x4200000000000000000000000000000000000020) |
| OP Mainnet | [0x4200000000000000000000000000000000000021](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000021) | [0x4200000000000000000000000000000000000020](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000020) |

## How to read and write attestations

You can read and write attestations in several ways:

* [EAS scan user interface (OP Mainnet)](https://optimism.easscan.org/)
* [EAS scan user interface (OP Sepolia)](https://optimism-sepolia.easscan.org/)
* [JavaScript SDK](https://docs.attest.sh/docs/developer-tools/eas-sdk)
* [Access directly onchain](https://github.com/ethereum-attestation-service/eas-contracts/blob/master/contracts/EAS.sol) (if you need to attest from a smart contract)

## Indexing

Indexing is available via:

* [GraphQL endpoint](https://docs.attest.sh/docs/developer-tools/api)
* [Ponder graph](https://github.com/ethereum-attestation-service/eas-ponder-graph)
* [Open source indexer](https://github.com/ethereum-attestation-service/eas-indexing-service)

## Next steps

For more information on working with attestations, see [Build Decentralized Identity Apps with Attestations](/identity/about-attestations).
7 changes: 0 additions & 7 deletions pages/identity/identity-overview.mdx

This file was deleted.

30 changes: 30 additions & 0 deletions pages/identity/individuals.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: Individual identity
lang: en-US
description: Learn about how individual identity is represented in the Optimism Collective.
---

## Individual identity

The Optimism Collective represents individuals using unique identifiers generated through the [Farcaster protocol id registry](https://docs.farcaster.xyz/reference/contracts/reference/id-registry). This system ensures a secure approach to identity management within the collective.

### Registering a user ID

To obtain a unique identifier:

1. Use the **[Farcaster Id Gateway](https://docs.farcaster.xyz/reference/contracts/reference/id-gateway)**
2. Use the Warpcast app, which:

* Creates a new custody address
* Acts as a wallet

### Making attestations

When you make attestations about individuals:

* Leave the recipient address blank
* Enter the users id into the attestation metadata

### Further reading

For more details on individual identity in the Optimism Collective, refer to **[the governance docs](/identity/project-and-individual-identity/#building-a-digital-identity)** on building a digital identity.
15 changes: 15 additions & 0 deletions pages/identity/organizations.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
title: Organizations
lang: en-US
description: Learn about the organization entity within the Optimism Collective's identity stack.
---

## Organizations

Within the Optimism Collective, the organization entity is used to represent teams, squads, DAOs and other organizations that may work on multiple projects. Organizations can apply to Retroactive Public Goods Funding (Retro Funding) with specific [projects](/identity/projects), never with just the organization. This is because projects represent contributions that created impact in the Collective, and Retro Rounds award OP to past impact.

The organization entity is represented onchain by an attestation. The attestation UID is the organization's unique identifier for its lifecycle in the Collective. To create a new organization, an attestation is issued using [this schema](https://optimism.easscan.org/schema/view/0xff0b916851c1c5507406cfcaa60e5d549c91b7f642eb74e33b88143cae4b47d0). The only metadata included in the schema is the Farcaster Id of the person who created the organization, and the entity type (in this case "organization").

All other organization metadata is stored or referenced in the [Organization Metadata Attestation](https://optimism.easscan.org/schema/view/0xc2b376d1a140287b1fa1519747baae1317cf37e0d27289b86f85aa7cebfd649f). The Organization Metadata Attestation is re-issued anytime there is a change in metadata. Apps displaying organization metadata should look to the most recent attestation for the up-to-date metadata.

See the [attestation schemas page](/identity/schemas) for more details on the schemas and their metadata.
Loading
Loading