Skip to content

Commit

Permalink
Merge pull request #1116 from krofax/identity-docs
Browse files Browse the repository at this point in the history
Moved identity files
  • Loading branch information
opmxwell authored Jan 16, 2025
2 parents 1614b16 + d0ba6a2 commit 04beb81
Show file tree
Hide file tree
Showing 19 changed files with 572 additions and 79 deletions.
50 changes: 32 additions & 18 deletions lychee.toml
Original file line number Diff line number Diff line change
@@ -1,33 +1,33 @@
############################# Display #############################

# Verbose program output
verbose = "info"

# Use error level to only show failed requests
verbose = "error"
# Don't show interactive progress bar while checking links.
no_progress = true
# Don't show the source file of links
no_show_source = false

############################# Requests ############################

# URL remapping rules.
remap = [
"file:///(.*?)/pages/img/(.*) file:///$1/public/img/$2",
"file:///(.*?)/pages/resources/(.*) file:///$1/public/resources/$2",
"file:///([^#.?]+)(#.*)?$ file:///$1.mdx$2",
"\\\\& &"
# Handle resource files without adding .mdx extension
"file:///pages/(.*?)\\.(pdf|png|jpg|jpeg|gif|svg|json)$ file:///./pages/$1.$2",
# Handle URL-encoded anchors (%23) for mdx files
"file:///([^%\\.]+)%23(.*) file:///./pages/$1.mdx#$2",
# Handle regular anchors (#) for mdx files
"file:///([^#\\.]+)#(.*) file:///./pages/$1.mdx#$2",
# Handle regular mdx files without anchors
"file:///([^#%\\.]+)$ file:///./pages/$1.mdx",
]

# Base URL or website root directory to check relative URLs.
base = "./pages"
# Base URL or website root directory to check relative URLs
base = "."

############################# Exclusions ##########################

# Exclude loopback IP address range and localhost from checking.
exclude_loopback = true

# Exclude all mail addresses from checking.
exclude_mail = true

# Exclude RPC URLs from checking.
# Exclude RPC URLs from checking
exclude = [
'https://mainnet.optimism.io',
'https://mainnet-sequencer.optimism.io',
Expand All @@ -36,8 +36,22 @@ exclude = [
'https://archive.org',
'https://web.archive.org',
'https://mainnet.base.org',
'https://sepolia.base.org'
'https://sepolia.base.org',
'https://optimism.easscan.org',
'\.(pdf|zip|png|jpg|jpeg|gif|svg|json)$'
]

# Accept all status codes except 404
accept = [
"100..=399",
"401..=403",
"405..=999"
]

# Accept these status codes
accept = ["100..=103", "200..=299", "403..=403", "502..=502"]
# Use compact format for cleaner output

format = "Compact"

############################# Anchors #############################
# Enable checking for anchors in local files
check_anchors = true
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.

Loading

0 comments on commit 04beb81

Please sign in to comment.