diff --git a/lychee.toml b/lychee.toml
index b5131db61..224fd0aee 100644
--- a/lychee.toml
+++ b/lychee.toml
@@ -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',
@@ -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
\ No newline at end of file
diff --git a/pages/404.mdx b/pages/404.mdx
index 253fb1b5f..3527ffae9 100644
--- a/pages/404.mdx
+++ b/pages/404.mdx
@@ -10,5 +10,5 @@ description: 404 page not found and directs users to submit an git issue.
## Let's find our way back.
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. ❤️
diff --git a/pages/500.mdx b/pages/500.mdx
index e6405f78b..0e8de8fdd 100644
--- a/pages/500.mdx
+++ b/pages/500.mdx
@@ -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. ❤️
diff --git a/pages/contribute/contribution-path/ambassador-req.mdx b/pages/contribute/contribution-path/ambassador-req.mdx
index 0e044b053..eef5108c2 100644
--- a/pages/contribute/contribution-path/ambassador-req.mdx
+++ b/pages/contribute/contribution-path/ambassador-req.mdx
@@ -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..
diff --git a/pages/contribute/contribution-path/govnerds.mdx b/pages/contribute/contribution-path/govnerds.mdx
index f16692ff2..9a4afef3e 100644
--- a/pages/contribute/contribution-path/govnerds.mdx
+++ b/pages/contribute/contribution-path/govnerds.mdx
@@ -63,7 +63,7 @@ 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).
@@ -71,20 +71,20 @@ Contributors can move from one role to the next by meeting the following criteri
- 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:
@@ -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:
@@ -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.
@@ -140,7 +140,7 @@ 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).
@@ -148,12 +148,12 @@ After achieving the `govNERDs-in-training` role, you may choose to specialize in
### `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.
@@ -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:
diff --git a/pages/identity/_meta.json b/pages/identity/_meta.json
index 925f3faf3..3afec8bcd 100644
--- a/pages/identity/_meta.json
+++ b/pages/identity/_meta.json
@@ -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"
}
diff --git a/pages/identity/about-attestations.mdx b/pages/identity/about-attestations.mdx
new file mode 100644
index 000000000..f3f02d7a7
--- /dev/null
+++ b/pages/identity/about-attestations.mdx
@@ -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.
+
+
+ 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.
+
+
+## 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.
diff --git a/pages/identity/applications.mdx b/pages/identity/applications.mdx
new file mode 100644
index 000000000..7375f3a4b
--- /dev/null
+++ b/pages/identity/applications.mdx
@@ -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).
diff --git a/pages/identity/contracts-eas.mdx b/pages/identity/contracts-eas.mdx
new file mode 100644
index 000000000..1347889ed
--- /dev/null
+++ b/pages/identity/contracts-eas.mdx
@@ -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).
diff --git a/pages/identity/identity-overview.mdx b/pages/identity/identity-overview.mdx
deleted file mode 100644
index 232b2fc39..000000000
--- a/pages/identity/identity-overview.mdx
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: Identity Overview
-lang: en-US
-description: Coming soon ™️
----
-
-Coming soon ™️
\ No newline at end of file
diff --git a/pages/identity/individuals.mdx b/pages/identity/individuals.mdx
new file mode 100644
index 000000000..763833bd8
--- /dev/null
+++ b/pages/identity/individuals.mdx
@@ -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.
diff --git a/pages/identity/organizations.mdx b/pages/identity/organizations.mdx
new file mode 100644
index 000000000..eeb05825e
--- /dev/null
+++ b/pages/identity/organizations.mdx
@@ -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.
diff --git a/pages/identity/overview.mdx b/pages/identity/overview.mdx
new file mode 100644
index 000000000..2d1047be5
--- /dev/null
+++ b/pages/identity/overview.mdx
@@ -0,0 +1,47 @@
+---
+title: Identity overview
+lang: en-US
+description: Learn about the basics of decentralized identity solutions.
+---
+
+import { Callout } from 'nextra/components'
+
+# Introduction
+
+This guide explains the role of decentralized identity in the Optimism Collective and its key components.
+
+
+## Identity in the Optimism Collective
+
+Decentralized identity solutions empower individuals to customize their identity according to their preferences, move it seamlessly across services, and regain control of their personal information from centralized platforms. These solutions are designed to enable users to prove specific attributes about themselves in a trustworthy and verifiable way, without compromising their privacy or security.
+
+The Optimism Collective is [building a better economic engine that fuels positive-sum games](https://www.optimism.io/vision). Decentralized identity is central to that mission. For example, the two-house governance system of the Optimism Collective consists of:
+
+1. Token holders, who vote by delegating their OP tokens to delegates.
+2. Community members who participate in a one-person-one-vote system based on reputation and community contributions.
+
+Decentralized identity expands the design space for innovation. It aims to give individuals greater control over their finances and easier participation in the global economy on their own terms.
+
+For more information about identity in the Optimism Collective, see [the governance docs post on the identity stack](/identity/project-and-individual-identity).
+
+## Key components of identity
+
+There are three important components to identity within the Optimism Collective:
+
+1. [Individuals](/identity/project-and-individual-identity/#people-and-projects)
+2. [Projects](/identity/project-and-individual-identity/#people)
+3. [Attestations](/identity/attestations-best-practices/)
+
+Individuals and projects are the relevant entities in the Optimism Collective about which statements might be made. Attestations are the way in which these statements are made.
+
+
+ Decentralized identity not only supports democratic governance but also enhances innovation and individual financial control within the Optimism Collective ecosystem.
+
+
+## Next steps
+
+To learn more about identity in the Optimism Collective:
+
+* Explore the [governance docs on project and individual identity](/identity/project-and-individual-identity/)
+* Read about [attestation best practices](/identity/attestations-best-practices/)
+* Understand how [identity contributes to the Optimism vision](https://www.optimism.io/vision)
diff --git a/pages/identity/project-and-individual-identity-in-the-collective.mdx b/pages/identity/project-and-individual-identity.mdx
similarity index 90%
rename from pages/identity/project-and-individual-identity-in-the-collective.mdx
rename to pages/identity/project-and-individual-identity.mdx
index 231e6b293..9fe6042c7 100644
--- a/pages/identity/project-and-individual-identity-in-the-collective.mdx
+++ b/pages/identity/project-and-individual-identity.mdx
@@ -4,9 +4,9 @@ lang: en-US
description: This document outlines the Optimism Foundation's approach to the identity and reputation of individuals and projects within the Optimism Collective.
---
-# Project and individual identity in the Collective
+# Project and individual identity
-This document outlines the Optimism Foundation's approach to the identity and reputation of individuals and projects within the Optimism Collective. The identity stack framework, including an explanation of how the identity layer relates to other components, is outlined in [this document](https://docs.optimism.io/chain/identity/overview).
+This document outlines the Optimism Foundation's approach to the identity and reputation of individuals and projects within the Optimism Collective. The identity stack framework, including an explanation of how the identity layer relates to other components, is outlined in [this document](/identity/overview/).
## What does identity and reputation mean?
@@ -21,7 +21,7 @@ Instead of 'reputation' perhaps what we're really trying to judge is:
### Building a digital identity
-In order for individuals to build up the kinds of specific 'reputation' mentioned above, relevant data needs to be accrued to their digital identity. Those data points and their aggregation and interpretation are part of the data and data interpretation layers in the [identity stack](https://docs.optimism.io/chain/identity/overview).
+In order for individuals to build up the kinds of specific 'reputation' mentioned above, relevant data needs to be accrued to their digital identity. Those data points and their aggregation and interpretation are part of the data and data interpretation layers in the [identity stack](/identity/overview).
While having many different data interpreters and data producers is valuable, the identity layer must be narrow to serve its purpose. If individuals have a unique identity for every interaction they have with the Optimism Collective, it is much more difficult for data interpreters to make judgments about them and user interfaces to unify all the relevant signals about a single individual.
@@ -29,7 +29,7 @@ As such, the Optimism Foundation is taking an opinionated approach to set a comm
### People and projects
-There are two entities in the Collective: people and projects. People are unique human individuals and are associated with a particular [Farcaster account id](https://docs.farcaster.xyz/learn/what-is-farcaster/accounts). Projects are things created by individuals or groups of people, and are identified by an attestation UID from the [project schema](https://docs.optimism.io/chain/identity/schemas#project-identifier).
+There are two entities in the Collective: people and projects. People are unique human individuals and are associated with a particular [Farcaster account id](https://docs.farcaster.xyz/learn/what-is-farcaster/accounts). Projects are things created by individuals or groups of people, and are identified by an attestation UID from the [project schema](/identity/schemas#project-identifier).
### People
@@ -47,7 +47,7 @@ Here are some of the reasons behind this decision:
* Anyone can build a Farcaster client and integrate with the protocol
* Ethereum accounts and ENS names can be verified with the protocol to connect these identities
-#### People and 'reputation'
+### People and 'reputation'
The Optimism Collective uses attestations via the [Ethereum Attestation Service](https://optimism.easscan.org/) (EAS) to issue signed statements about individuals. Thus far, these attestations have been issued about and to a recipient represented as an Ethereum address. Farcaster users are able to link their Ethereum addresses to their Farcaster account via the [verifications feature](https://docs.farcaster.xyz/developers/guides/writing/verify-address), preserving the value of attestations issued to Ethereum accounts. However, attestations can also be issued with a Farcaster account id in the metadata and without a recipient address. This enables issuers to make attestations about Farcaster accounts.
@@ -60,16 +60,16 @@ Projects are important because a large set of data points about projects are hig
Maintaining a persistent project identity is also essential for the proper functioning of impact tracking and improving the operations around Retro Funding and grants.
-#### What is a 'project'?
+### What is a 'project'?
Projects are submitted for consideration in Retro Funding applications.
-#### What is not a project:
+### What is not a project:
* A project is not a person, but it can have a single contributor.
* A project is not a team or organization
-#### What is a project:
+### What is a project:
* A specific product built by a company is a project
* A specific contribution made to the Optimism Collective, like a Dune Dashboard, is a project
@@ -78,33 +78,33 @@ Projects are submitted for consideration in Retro Funding applications.
* An event is a project
* A YouTube channel is a project
-#### The project entity
+### The project entity
-The identity layer of the Optimism Collective isn't complete without persistent project identity. As part of Retro Funding 4, we introduced the concept of an evergreen project that is represented onchain by the [Project Attestation](https://docs.optimism.io/chain/identity/schemas#project-identifier). The attestation UID is the project identifier. Project metadata is stored off-chain and updated via the [Project Metadata Attestation](https://docs.optimism.io/chain/identity/schemas#project-metadata).
+The identity layer of the Optimism Collective isn't complete without persistent project identity. As part of Retro Funding 4, we introduced the concept of an evergreen project that is represented onchain by the [Project Attestation](/identity/schemas#project-identifier). The attestation UID is the project identifier. Project metadata is stored off-chain and updated via the [Project Metadata Attestation](/identity/schemas#project-metadata).
Attestations are an effective way to represent projects onchain, because they can be created permissionlessly, and it is easy to create other attestations referencing the project via the refUID field in the EAS. This creates an infinitely composable data structure representing projects, their contributors, achievements and metadata.
-You can find more detailed information about the schemas in the [developer docs](https://docs.optimism.io/chain/identity/schemas#project-metadata).
+You can find more detailed information about [schemas](/identity/schemas#project-metadata).
-#### Project core concepts
+### Project core concepts
The project attestation architecture is simple, flexible and unopinionated. However, there are some core concepts to projects.
-#### Mutability
+### Mutability
The project attestation architecture is designed so the primary project attestation contains no mutable data - the identifier therefore doesn't change with changes to project information. The project metadata attestation, on the other hand, is re-issued any time there are changes to the project metadata. The most recent project metadata attestation can be relied on to represent the current state of the project.
-#### Parent projects
+### Parent projects
Projects can have a nested structure via the 'parent project' field on the project metadata attestation. This creates a highly flexible architecture that can represent all types of contributions to the Optimism Collective.
Each parent or sub-project can independently apply for Retro Funding or grants, and they can have different sets of contributors.
-#### Contributors
+### Contributors
The contributors to a project are one of the most important data points about the project. For the purposes of Retro Funding 4 sign-up, contributor data is nested within the offchain project metadata. This decision was made to expedite the release of the sign-up form. In future, we plan to represent contributors to a project onchain via a separate attestation. Contributors will continue to be identified by their Farcaster account id rather than an Ethereum account. The contributors to a project can change over time.
-#### Project verifications
+### Project verifications
In Retro Funding 4 sign-up, projects are invited to verify their GitHub repositories and contracts to better enable impact tracking. In the MVP release, these connections are stored off-chain as part of the project metadata. In future, we imagine that various apps and utilities will enable project admins to verify their project's GitHub, contracts and other data, and will issue specific verification attestations as a result. Other apps will consume these attestations so long as they trust the source and methodology whereby the attestations were generated.
diff --git a/pages/identity/projects.mdx b/pages/identity/projects.mdx
new file mode 100644
index 000000000..b8e28de2f
--- /dev/null
+++ b/pages/identity/projects.mdx
@@ -0,0 +1,25 @@
+---
+title: Projects
+lang: en-US
+description: Learn about the project entity within the Optimism Collective's identity stack.
+---
+
+## Projects
+
+Within the Optimism Collective, [the project entity](/identity/project-and-individual-identity/#people) represents contributions to the Optimism Collective and can be used to apply for Retroactive Public Goods Funding (Retro Funding).
+## Project Representation
+
+The project entity is represented onchain by an attestation from the [following schema](https://optimism.easscan.org/schema/view/0xff0b916851c1c5507406cfcaa60e5d549c91b7f642eb74e33b88143cae4b47d0). Projects are identified by the type "project". The attestation UID serves as the project's unique identifier throughout its lifecycle in the Collective.
+
+## Project metadata
+
+All other project metadata is stored or referenced in the [Project Metadata Attestation](https://optimism.easscan.org/schema/view/0xe035e3fe27a64c8d7291ae54c6e85676addcbc2d179224fe7fc1f7f05a8c6eac).
+
+### Updating metadata
+
+* The Project Metadata Attestation is re-issued whenever there's a change in metadata.
+* Apps displaying project metadata should refer to the most recent attestation for up-to-date information.
+
+## Further reading
+
+For more information about identity in the Optimism Collective, see the [identity overview](/identity/overview).
diff --git a/pages/identity/schemas.mdx b/pages/identity/schemas.mdx
new file mode 100644
index 000000000..00dc00616
--- /dev/null
+++ b/pages/identity/schemas.mdx
@@ -0,0 +1,236 @@
+---
+title: Schemas
+lang: en-US
+description: Learn about schema structures and the type of data that can be included in attestations.
+---
+
+# Schemas
+
+Schemas define the structure and type of data that can be included in an attestation.
+
+Below you will find a list of relevant schemas that are being used on OP Mainnet. Schemas are built using the [Ethereum Attestation Service](https://docs.attest.sh/docs/welcome).
+
+## General schemas
+
+* **[Gitcoin Passport V1 scores schema UID](https://optimism.easscan.org/schema/view/0x6ab5d34260fca0cfcf0e76e96d439cace6aa7c3c019d7c4580ed52c6845e9c89):** `0x6ab5d34260fca0cfcf0e76e96d439cace6aa7c3c019d7c4580ed52c6845e9c89`
+* **[Superchain Faucet schema UID](https://optimism.easscan.org/schema/view/0x98ef220cd2f94de79fbc343ef982bfa8f5b315dec6a08f413680ecb7085624d7)**: `0x98ef220cd2f94de79fbc343ef982bfa8f5b315dec6a08f413680ecb7085624d7`
+
+## Schemas related to project creation and Retro funding application
+
+### [Project and organization identifier](https://optimism.easscan.org/schema/view/0xff0b916851c1c5507406cfcaa60e5d549c91b7f642eb74e33b88143cae4b47d0)
+
+Used as the unique identifier for projects and organizations created on or after 23 August 2024. For projects created earlier, please see the archived section at the bottom of this page.
+
+| Schema UID | `0xff0b916851c1c5507406cfcaa60e5d549c91b7f642eb74e33b88143cae4b47d0` |
+| ----------- | --------------------------------------------------------------------------------------------------------------- |
+| Issuer | Attestations issued as part of Retro Funding sign up are issued by `0xF6872D315CC2E1AfF6abae5dd814fd54755fE97C` |
+| farcasterID | The Farcaster id of the individual who created the project or organization |
+| type | "Project" or "Organization" |
+
+### [Organization metadata](https://optimism.easscan.org/schema/view/0xc2b376d1a140287b1fa1519747baae1317cf37e0d27289b86f85aa7cebfd649f)
+
+Used to associate metadata to an organization. Re-issued each time there is a change to metadata
+
+| Schema UID | `0xc2b376d1a140287b1fa1519747baae1317cf37e0d27289b86f85aa7cebfd649f` |
+| ------------ | --------------------------------------------------------------------------------------------------------------- |
+| Issuer | Attestations issued as part of Retro Funding sign up are issued by `0xF6872D315CC2E1AfF6abae5dd814fd54755fE97C` |
+| Recipient | Null |
+| RefUID | The attestation UID of the organization this metadata relates to |
+| farcasterID | The Farcaster id of the individual who published the organization metadata |
+| name | The name of the organization |
+| projects | The array of projects that belong to this organization |
+| parentOrgUID | The attestation UID of this organization's parent, in case it has one |
+| metadataType | How the metadata can be accessed. 1 for ipfs, 2 for http |
+| metadataUrl | The storage location where the metadata can be retrieved |
+
+### [Project metadata](https://optimism.easscan.org/schema/view/0xe035e3fe27a64c8d7291ae54c6e85676addcbc2d179224fe7fc1f7f05a8c6eac)
+
+Used to associate metadata to a project. Re-issued each time there is a change to metadata.
+
+| Schema UID | `0xe035e3fe27a64c8d7291ae54c6e85676addcbc2d179224fe7fc1f7f05a8c6eac` |
+| -------------------- | --------------------------------------------------------------------------------------------------------------- |
+| Issuer | Attestations issued as part of Retro Funding sign up are issued by `0xF6872D315CC2E1AfF6abae5dd814fd54755fE97C` |
+| Recipient | Null |
+| projectRefUID | The attestation UID of the project this metadata relates to |
+| farcasterID | The Farcaster id of the individual who published the project metadata |
+| name | The name of the project |
+| category | The category of the project |
+| parentProject RefUID | The attestation UID of this project's parent project, in case it has a parent |
+| metadataType | How the metadata can be accessed. 1 for ipfs, 2 for http |
+| metadataUrl | The storage location where the metadata can be retrieved |
+
+### [Retro funding application](https://optimism.easscan.org/schema/view/0x2169b74bfcb5d10a6616bbc8931dc1c56f8d1c305319a9eeca77623a991d4b80)
+
+Used to identify a project's application to a specific Retro Funding Round. This attestation is used for Retro Funding Round 6 and beyond.
+
+| Schema UID | `0x2169b74bfcb5d10a6616bbc8931dc1c56f8d1c305319a9eeca77623a991d4b80` |
+| ----------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| Issuer | Attestations issued as part of Retro Funding sign up are issued by: `0xF6872D315CC2E1AfF6abae5dd814fd54755fE97C` |
+| Recipient | Null |
+| round | The round number for which this application was submitted |
+| metadataType | How the metadata can be accessed. 1 for ipfs, 2 for http |
+| metadataUrl | The storage location where the metadata can be retrieved |
+| farcasterID | The individual that submitted this application on behalf of the project. |
+| metadataSnapshot RefUID | The project metadata at the time the application was submitted. |
+
+### [Retro funding application approval/rejection](https://optimism.easscan.org/schema/view/0x683b1b399d47aabed79c9aa8f2674729021174b6e5cce1e20675eab404fc82d6)
+
+Used to identify which Retro Funding applications have been approved or rejected.
+
+| Schema UID | `0x683b1b399d47aabed79c9aa8f2674729021174b6e5cce1e20675eab404fc82d6` |
+| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Issuer | Currently, the Optimism Foundation issues these from the following address: `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F` |
+| Recipient | Null |
+| projectApplicationUID | The unique identifier of the projects Retro Funding application. |
+| Status | The status of the Retro Funding application. |
+| Reason | Identifier for the reason an application was rejected. 1 = "Duplicate Application", 2 = "Deceiving Badgeholders", 3 = "Spam", 4 = "Not meeting eligibility criteria" |
+
+### [Retro funding rewards](https://optimism.easscan.org/schema/view/0x670ad6e6ffb842d37e050ea6d3a5ab308195c6f584cf2121076067e0d8adde18)
+
+Used to identify the reward amount each approved project received in a Retro Funding round
+
+| Schema UID | `0x670ad6e6ffb842d37e050ea6d3a5ab308195c6f584cf2121076067e0d8adde18` |
+| ------------- | ---------------------------------------------------------------------------------------------------------------------------- |
+| Issuer | Currently, the Optimism Foundation issues these from one the following address: `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F` |
+| Recipient | Null |
+| refUID | The UID of the Retro Funding application |
+| projectRefUID | The unique identifier of the project |
+| round | The retro round for which the project was rewarded |
+| OPamount | The amount of OP awarded to the project |
+
+## Schemas related to token house grants
+
+### [Token house grant approved](https://optimism.easscan.org/schema/view/0x8aef6b9adab6252367588ad337f304da1c060cc3190f01d7b72c7e512b9bfb38)
+
+Issued by the Grants Council when a project is approved for a grant. Does not indicate that the grant has been completed.
+
+| Schema UID | `0x8aef6b9adab6252367588ad337f304da1c060cc3190f01d7b72c7e512b9bfb38` |
+| ---------------- | --------------------------------------------------------------------------------- |
+| Issuer | Currently issued by the Grants Council lead. |
+| Recipient | The address where the tokens will be delivered once the grant has been completed. |
+| refUID | Currently null |
+| projectRefUID | The unique identifier of the project that was approved for the grant. |
+| UserIncentivesOP | The OP amount approved for user incentives. |
+| BuildersOP | The OP amount approved for the builder. |
+| Season | The season (number) in which the grant was approved |
+| Intent | The intent (number) to which the mission belongs |
+| Mission | The name of the mission (in words) under which this grant was made. |
+| Approval date | The date the grant was approved, in the following format MM/DD/YYYY |
+| MetadataUrl | Currently null |
+
+## Schemas related to roles and contributions
+
+### [Citizens](https://optimism.easscan.org/schema/view/0xc35634c4ca8a54dce0a2af61a9a9a5a3067398cb3916b133238c4f6ba721bc8a)
+
+Citizen attestations were first issued in Season 6 and are used to represent Citizenship separately from the ability to vote in a specific Retro Round. The resolver contract checks that the issuer is the Foundation with following address `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F`
+
+| Schema UID | `0xc35634c4ca8a54dce0a2af61a9a9a5a3067398cb3916b133238c4f6ba721bc8a` |
+| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| FarcasterID | The Citizen's unique identifier |
+| SelectionMethod | A Code representing the method through which the Citizen was selected. Codes beginning with the number 1 refer to various flavours of Web of Trust selection. |
+
+### [Retro funding voters](https://optimism.easscan.org/schema/view/0x41513aa7b99bfea09d389c74aacedaeb13c28fb748569e9e2400109cbe284ee5)
+
+These attestations are voting Badges issued for Retro Round 5 and beyond. They are different from the [previous schema](https://optimism.easscan.org/schema/view/0xfdcfdad2dbe7489e0ce56b260348b7f14e8365a8a325aef9834818c00d46b31b) to include new fields like votingGroup, used to assign voters to sub-categories in the round.
+
+| Schema UID | `0x41513aa7b99bfea09d389c74aacedaeb13c28fb748569e9e2400109cbe284ee5` |
+| --------------- | -------------------------------------------------------------------------- |
+| FarcasterID | The voter's unique identifier |
+| Round | The round number for which this voting Badge was valid |
+| voterType | Guest or Citizen |
+| votingGroup | Used to assign voters to subcategories in case the Round has subcategories |
+| selectionMethod | The method in which this voter was selected |
+
+### [MetaGov contribution](https://optimism.easscan.org/schema/view/0x84260b9102b41041692558a4e0cba6b7e5f9b813be56402c3db820c06dd4a5f1)
+
+| Schema UID | `0x84260b9102b41041692558a4e0cba6b7e5f9b813be56402c3db820c06dd4a5f1` |
+| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Issuer | Currently, the Optimism Foundation issues these from one of the following addresses: `0x621477dBA416E12df7FF0d48E14c4D20DC85D7D9` or `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F`. |
+| Recipient | The address of the individual who made the contribution |
+| refUID | The UID of the project, in case this contribution is represented as a project |
+| FarcasterID | The id of the individual who made the contribution, if known |
+| Impact | This field is not currently being used |
+| Season | The season in which the contribution was made |
+| Decision Module | The decision module to which the contribution relates |
+| Contribution Type | The type of contribution |
+| MetadataUrl | This field is not currently being used |
+
+### [Foundation mission request completed](https://optimism.easscan.org/schema/view/0x649cc6df5af7561b66384405a62682c44e2428584d2f17a202ac3ef4506e2457)
+
+| Schema UID | `0x649cc6df5af7561b66384405a62682c44e2428584d2f17a202ac3ef4506e2457` |
+| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Issuer | Currently, the Optimism Foundation issues these from one of the following addresses: `0x621477dBA416E12df7FF0d48E14c4D20DC85D7D9` or `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F`. |
+| projectRefUID | The UID of the project that represents the work completed as part of the Foundation Mission Request |
+| OP Amount | The OP Amount that was awarded for the completion of this Mission Request |
+| Season | The season in which this Mission Request was completed |
+
+### [Retro funding governance contribution](https://optimism.easscan.org/schema/view/0x3743be2afa818ee40304516c153427be55931f238d961af5d98653a93192cdb3)
+
+| Schema UID | `0x3743be2afa818ee40304516c153427be55931f238d961af5d98653a93192cdb3` |
+| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Issuer | Currently, the Optimism Foundation issues these from one of the following addresses: `0x621477dBA416E12df7FF0d48E14c4D20DC85D7D9` or `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F`. |
+| Recipient | The address of the individual who made the contribution |
+| Rpgf\_round | The round number for which this contribution was made |
+| RetroPGF\_Contribution | The type of contribution made |
+
+### [Governance contribution](https://optimism.easscan.org/schema/view/0xef874554718a2afc254b064e5ce9c58c9082fb9f770250499bf406fc112bd315)
+
+Issued to those who held governance roles in the Collective, such as Grants Council members.
+
+| Schema UID | `0xef874554718a2afc254b064e5ce9c58c9082fb9f770250499bf406fc112bd315` |
+| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Issuer | Currently, the Optimism Foundation issues these from one of the following addresses: `0x621477dBA416E12df7FF0d48E14c4D20DC85D7D9` or `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F`. |
+| Issuer | Currently, the Optimism Foundation issues these from one of the following addresses: `0x621477dBA416E12df7FF0d48E14c4D20DC85D7D9` or `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F` |
+| Recipient | The address of the individual who made the contribution |
+| govSeason | The season the individual held the role |
+| govRole | The role held by the individual |
+
+## Archived schemas
+
+These schemas are no longer being actively issued, but capture valuable historical data.
+
+### [Retro funding application](https://optimism.easscan.org/schema/view/0x88b62595c76fbcd261710d0930b5f1cc2e56758e155dea537f82bf0baadd9a32)
+
+Used to identify a project's application to a specific Retro Funding Round. This attestation was used for Retro Funding Rounds 4 and 5.
+
+| Schema UID | `0x88b62595c76fbcd261710d0930b5f1cc2e56758e155dea537f82bf0baadd9a32` |
+| ----------------------- | ---------------------------------------------------------------------------------------------------------------- |
+| Issuer | Attestations issued as part of Retro Funding sign up are issued by: `0xF6872D315CC2E1AfF6abae5dd814fd54755fE97C` |
+| Recipient | Null |
+| round | The round number for which this application was submitted |
+| projectRefUID | The unique identifier of the project that submitted this application |
+| farcasterID | The individual that submitted this application on behalf of the project. |
+| metadataSnapshot RefUID | The project metadata at the time the application was submitted. |
+
+### [Retro funding badgeholders](https://optimism.easscan.org/schema/view/0xfdcfdad2dbe7489e0ce56b260348b7f14e8365a8a325aef9834818c00d46b31b)
+
+These attestations are considered "voting Badges" and allow an individual to vote in any given iteration of Retro Funding. They were used up to and including Retro Round 4.
+
+| Schema UID | `0xfdcfdad2dbe7489e0ce56b260348b7f14e8365a8a325aef9834818c00d46b31b` |
+| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Issuer | Currently, the Optimism Foundation issues these from one of the following addresses: `0x621477dBA416E12df7FF0d48E14c4D20DC85D7D9` or `0xE4553b743E74dA3424Ac51f8C1E586fd43aE226F` |
+| Recipient | The Badgeholder's address |
+| rpgfRound | The round number for which this voting Badge was valid |
+| referredBy | In early rounds, new Badges were issued by referral. This field captures the address of the referrer, if there was one |
+| referredMethod | If this voting Badge was issued by referral, this field captures the referral method |
+
+### [Project identifier](https://optimism.easscan.org/schema/view/0x7ae9f4adabd9214049df72f58eceffc48c4a69e920882f5b06a6c69a3157e5bd)
+
+Used as the unique identifier for projects created in the Collective before 23 August 2024. Attestations issued from this schema prior to 23 August 2024 are still used as the unique identifier for projects. New projects created after 23 August 2024 use the new entity identifier (see above).
+
+| Schema UID | `0x7ae9f4adabd9214049df72f58eceffc48c4a69e920882f5b06a6c69a3157e5bd` |
+| ----------- | --------------------------------------------------------------------------------------------------------------- |
+| Issuer | Attestations issued as part of Retro Funding sign up are issued by `0xF6872D315CC2E1AfF6abae5dd814fd54755fE97C` |
+| Recipient | Null |
+| farcasterID | The Farcaster id of the individual who created the project |
+
+* **[RetroPGF 3 Approved Application schema UID](https://optimism.easscan.org/schema/view/0xebbf697d5d3ca4b53579917ffc3597fb8d1a85b8c6ca10ec10039709903b9277):**`0xebbf697d5d3ca4b53579917ffc3597fb8d1a85b8c6ca10ec10039709903b9277`. Important: Remember to verify the attester address is `0x621477dBA416E12df7FF0d48E14c4D20DC85D7D9`
+* **[RetroPGF 3 Application schema UID](https://optimism.easscan.org/schema/view/0x76e98cce95f3ba992c2ee25cef25f756495147608a3da3aa2e5ca43109fe77cc):** `0x76e98cce95f3ba992c2ee25cef25f756495147608a3da3aa2e5ca43109fe77cc`
+* **[RetroPGF 3 Lists schema UID](https://optimism.easscan.org/schema/view/0x3e3e2172aebb902cf7aa6e1820809c5b469af139e7a4265442b1c22b97c6b2a5):** `0x3e3e2172aebb902cf7aa6e1820809c5b469af139e7a4265442b1c22b97c6b2a5`
+* **[Season 4 Co-grant participant schema UID](https://optimism.easscan.org/schema/view/0x401a80196f3805c57b00482ae2b575a9f270562b6b6de7711af9837f08fa0faf)**: `0x401a80196f3805c57b00482ae2b575a9f270562b6b6de7711af9837f08fa0faf`. Important: Remember to verify the attester address is `0x3C7820f2874b665AC7471f84f5cbd6E12871F4cC` or `0x2a0eB7cAE52B68e94FF6ab0bFcf0dF8EeEB624be`
+* **[Optimist Profile schema UID](https://optimism.easscan.org/schema/view/0xac4c92fc5c7babed88f78a917cdbcdc1c496a8f4ab2d5b2ec29402736b2cf929):** `0xac4c92fc5c7babed88f78a917cdbcdc1c496a8f4ab2d5b2ec29402736b2cf929`
+
+## Next steps
+
+* For more information on working with attestations, see [Build Decentralized Identity Apps with Attestations](/identity/about-attestations).
+* To see a list of applications using EAS, see [Attestation Apps](/identity/applications).
diff --git a/pages/op-token/airdrops/airdrop-1.mdx b/pages/op-token/airdrops/airdrop-1.mdx
index 8bfd0ecbf..91f93ea6a 100644
--- a/pages/op-token/airdrops/airdrop-1.mdx
+++ b/pages/op-token/airdrops/airdrop-1.mdx
@@ -49,14 +49,14 @@ The amount of OP tokens that an address receives is cumulative, meaning that the
The Foundation sought to identify OP Mainnet users who had actively used applications on OP Mainnet as a part of their crypto experience.
-#### OP Mainnet Users
+### OP Mainnet Users
This group selects for addresses that have used OP Mainnet, including both early adopters and newer users, but narrows down to a group that has used OP Mainnet multiple times.
*Criterion: Address bridged to OP Mainnet from L1 during the early phases of mainnet (prior to Jun 23, 2021), or used OP Mainnet for more than 1 day (at least 24 hours between their first and last transaction) and made a transaction using an app (after to Jun 23, 2021).*
- *These rules are only based on usage on OP Mainnet. It does not matter which bridge, exchange, fiat on-ramp, etc you used in order to come to OP Mainnet.*
-#### Repeat OP Mainnet Users
+### Repeat OP Mainnet Users
This tier selects for the most active OP Mainnet users, who repeatedly come back to use applications in the Optimism ecosystem.
@@ -67,7 +67,7 @@ This tier selects for the most active OP Mainnet users, who repeatedly come back
These rules aim to target behaviors that match Ethereum and Optimism’s values of active contribution, positive-sum behavior, and scaling decentralized applications to the world.
-#### DAO Voters
+### DAO Voters
The Foundation believes that active and engaged governance is crucial to scaling decentralized systems.
Addresses who match this criterion have actively chosen to actively contribute by participating in governance.
@@ -78,7 +78,7 @@ Addresses who match this criterion have actively chosen to actively contribute b
- *Since Snapshot votes were offchain, the Foundation recognized that these were more susceptible to spam/farming behavior, often driven by voters with nominal voting power.
To mitigate this, we filtered Snapshot votes to voters who made up the top 99.9% of total voting power in each DAO (i.e. >= 0.1% of voting power was made up by the sum of all smaller voters).*
-#### Multi-Sig Signers
+### Multi-Sig Signers
Multi-sig signers are entrusted with larger pools of capital or control over key protocol functions.
They are often the present (and future) DAO leaders and builders.
@@ -86,7 +86,7 @@ They are often the present (and future) DAO leaders and builders.
*Criterion: Address is a current signer on a Multi-Sig which has executed at least 10 transactions all-time (this cohort includes 95% of all multisig transactions).*
- *Multisig Wallets Include: Gnosis Safe v0.1.0-1.3.0, MultiSigWithDailyLimit, MultiSigWalletWithTimeLock, and addresses in Etherscan’s ‘Multisig’ label which had a function to get owner addresses.*
-#### Gitcoin Donors (on L1)
+### Gitcoin Donors (on L1)
Gitcoin donors have chosen to behave in positive-sum ways by funding public goods.
These addresses may also align with Optimism’s goal to build sustainable funding source for public goods through [retroactive funding (RetroPGF](https://medium.com/ethereum-optimism/retropgf-experiment-1-1-million-dollars-for-public-goods-f7e455cbdca)).
@@ -95,7 +95,7 @@ These addresses may also align with Optimism’s goal to build sustainable fundi
- *For the time period between rounds 1 - 5, we included addresses who interacted with Gitcoin contracts, sent legacy `ExecuteSubscription` calls, or appeared in Gitcoin’s donor API.*
- *For the period between rounds 6 - 13 (present), we included donor addresses in the Gitcoin ‘BulkCheckout’ contract transaction logs.*
-#### Users Priced Out of Ethereum
+### Users Priced Out of Ethereum
Active users of dapps on Ethereum are critical to ecosystem growth. Many of these addresses have started bridging to other chains due to high fees, and we want to help retain them in the Ethereum ecosystem while rewarding their curiosity and exploration. Optimism’s airdrop is also calibrated to reward loyalty to Ethereum, so users who have abandoned Ethereum entirely would not receive an airdrop.
diff --git a/pages/op-token/airdrops/airdrop-5.mdx b/pages/op-token/airdrops/airdrop-5.mdx
index 010dd13d4..8866e463a 100644
--- a/pages/op-token/airdrops/airdrop-5.mdx
+++ b/pages/op-token/airdrops/airdrop-5.mdx
@@ -52,7 +52,7 @@ Go to [https://app.optimism.io/airdrops](https://app.optimism.io/airdrops/5) to
3. [`Public mainnet launch`](https://github.com/ethereum-optimism/op-analytics/blob/main/op_chains_tracking/inputs/chain_metadata_raw.csv) is defined as the date the public mainnet was officially announced.
4. Includes contracts that were registered on the official SUNNYs signup page between Aug 21, 2024, and Sep 15, 2024.
-#### Bonus Attributes
+### Bonus Attributes
| **Number of Attributes** | **Number of Qualifying Addresses** | **Multiplier** |
| --- | --- | --- |
diff --git a/words.txt b/words.txt
index 73468f7b4..3058e4528 100644
--- a/words.txt
+++ b/words.txt
@@ -1,6 +1,7 @@
Avello
Badgeholder
badgeholder
+Badgeholder's
badgeholder's
Badgeholders
badgeholders
@@ -9,6 +10,7 @@ Blockscout
blockspace
Charmverse
Farcaster
+farcaster
Flipside
Fraxtal
Gamifying
@@ -16,6 +18,7 @@ hackathon
Haus
Insta
intersubjective
+ipfs
Jing
judgements
Lisk
@@ -28,13 +31,19 @@ Numba
numba
offchain
Ostrom
+Permissionless
permissionless
permissionlessly
+personhood
+predeploy
quadraticvote
redelegate
Relatedly
retrofunding
+Rpgf
+rpgf
Solana
+soulbound
Superchain
superchain
sybils
@@ -46,9 +55,10 @@ unwrappping
upvoted
Vitalik
Vitalik's
+Warpcast
WLTA
+workstreams
Xaddies
xaddies
Xterio
Zora
-workstreams