Skip to content

Commit

Permalink
Merge pull request #215 from Giveth:devouch-docs
Browse files Browse the repository at this point in the history
FIRST DRAFT devouch docs
  • Loading branch information
divine-comedian authored Jun 6, 2024
2 parents 53b5c8a + 8494a94 commit 55fb968
Show file tree
Hide file tree
Showing 7 changed files with 167 additions and 23 deletions.
74 changes: 74 additions & 0 deletions devouch/api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
id: devouch-api
title: Integrating DeVouch
slug: /integrating-devouch
---
import useBaseUrl from '@docusaurus/useBaseUrl'


DeVouch prioritizes accessiblity of information and easy integration. Reading and writing data to DeVouch is accessible to all! We have three topics to cover in this article:

- How to issue DeVouch attestations
- Adding your Attester Group to DeVouch
- Overview of the DeVouch Graphql API & Cookbook

## How to issue DeVouch attestations

There is a standardized attestation schema that all DeVouch eligible attestations MUST USE. You can find them here:

- [Sepolia (for testing)](https://sepolia.easscan.org/schema/view/0x97b0c9911936fad57e77857fac6eef6771f8d0bf025be9549214e32bf9e2415a)
- [Optimism Mainnet](https://optimism.easscan.org/schema/view/0x97b0c9911936fad57e77857fac6eef6771f8d0bf025be9549214e32bf9e2415a)

We recommend using the [EAS SDK](https://github.com/ethereum-attestation-service/eas-sdk) to integrate making attestations from your application, but for demonstration purposes we will show you how it looks on the easscan UI.

<img alt="easscan view of devouch attestation" src={useBaseUrl('img/devouch/devouchAttestationExample.png')} />

### Make the Attestation Onchain
You need to set the attestation as onchain in order for it to be indexed by DeVouch.
### No recipient address
You don't need to set a recipient address for DeVouch attestations.
### Project Source
This is the name of the source platform that the project is from, currently there are these four: `gitcoin`, `giveth`, `rf4` (Retro Funding round 4). More source platforms may be added later.
### Project Id
This is different for each source platform.

#### Giveth
For Giveth projects you can find the id of a project by going to the [Giveth graphQL API](https://mainnet.serve.giveth.io/graphql) and running a query like this:

```graphql
query {
projectBySlug(slug: "project/slug/goes/here") {
id
title
}
}
```

This will give you a number like `12345` that you should use for the project Id when attesting to a Giveth project.

#### Gitcoin

For Gitcoin grants projects you can find the id of a project by going to the [Gitcoin graphQL API](https://grants-stack-indexer-v2.gitcoin.co/graphiql) and running a query like this:

```graphql
query {
projects(
filter: {tags: {contains: "allo-v2"}, projectType: {equalTo: CANONICAL}, not: {tags: {contains: "program"}}, rounds: {every: {applicationsExist: true}}}
condition: {name: "{name of project}"}
) {
id
name
}
}

```

This will give you a hash like `0x7f4b4b6cecc3bdaf95098ea2b2f5cd9c31ea742880d5076b540f83caf8247e16` that you should use for the project Id when attesting to a Gitcoin project.

#### Retro Funding

For Retro Funding projects you can find the id of a project by going to the [Optimism Retro Funding graphQL API](https://vote.optimism.io/graphql) and running a query like this:

```graphql
NEED TO ADD
```
70 changes: 70 additions & 0 deletions devouch/whatisdevouch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
id: whatisdevouch
title: What is DeVouch?
slug: /
---
import useBaseUrl from '@docusaurus/useBaseUrl'


DeVouch is a system for members of reputable organizations in the Ethereum ecosystem to vouch for projects that are looking to raise funding. By vouching for a project, the organization can lend its credibility to the project, building confidence for those looking to support with funding.

DeVouch collects projects [Gitcoin](https://gitcoin.co/), [Giveth](https://giveth.io/) and [Optimism Retro Funding](https://vote.optimism.io/) and shows them in a singe place allowing users to either vouch or flag for each project. More platforms may be added in the future.

Visitors to the website can see the vouches and flags received by each project, tracked by the "Attester Group" that the vouch or flag came from. Learn more about "Attester Groups" below.

We believe that by providing a way for members of reputable organizations to vouch for projects, we can leverage the social fabric of the Ethereum community to make more informed decisions on the allocation of capital.

## Attester Groups

DeVouch functions using a system of Attestations from [EAS](https://attest.org/). At the top level DeVouch identifies "Attester Groups" by looking at on-chain attestation data, Attester Groups are best defined as a group of addresses that hold the same type of attestations (defined by it's schema ID) that were all issued by the same address (the "Issuing Authority").

Check out this attestation for example:

https://optimism.easscan.org/attestation/view/0x3ef6cc3d97a1386c1eb6a9ed7903c7247883f348eb8784db17678b1392c0c136

<img alt='attestestation example' src={useBaseUrl('img/devouch/attesterOrganizationExamples.png')} />

In this case, you see the schema is called "RETROPGF BADGEHOLDER" with an ID of `0xfdcfdad2dbe7489e0ce56b260348b7f14e8365a8a325aef9834818c00d46b31b` and the Issuing Authority is `0x621477dBA416E12df7FF0d48E14c4D20DC85D7D9` (presumably someone from the Optimism team). DeVouch would consider all addresses that hold attestations with this schema ID, issued by the same Issuing Authority address to be part of the same Attester Group. The Attester Groups that the DeVouch indexer recognizes were defined at launch by the DeVouch team, and more can be added by following the instructions in the [DeVouch repository](https://github.com/Giveth/DeVouch-BE).

Anyone can make an attestation to either vouch or flag a project at any time, but DeVouch only considers attestations from recognized Attester Groups when indexing information.

## Navigating DeVouch

There are four main pages on DeVouch:
- The "All Projects" view, which shows project card summaries of all projects that have been indexed by DeVouch.
- The "Project Details" view, which shows detailed information about a single project, including the vouches and flags it has received.
- The "My Attestations" view, which shows all the eligible DeVouch attestations you have made, and allows you to edit or delete them.
- The "User Attestations" view, which shows all the eligible DeVouch attestations made by a specific address.

On any page there are a myriad of options for filtering, sorting, and searching for exactly the information you're looking for! Make use of them to optimize you're experience and see the data that's relevant for you.

## Vouching and Flagging projects

When you vouch for a project, you are saying that you know this project and that you trust it. When you belong to a "Atterster Group" in a way you are lending the credibility of the Attester Group to the project you vouched for.

Similarily, when you flag a project, you are saying that you don't trust this project or you don't believe it is legitimate.

Be aware that your address will be associated with the vouch or flag you make, and that this information is public and can be seen by anyone. You can additionally add a comment to your vouch or flag to provide more context.

It is possible that an address could belong to multiple Attester Groups, when you create an attestation, you can choose which Attester Group you want to vouch or flag from. Each attestation made with a unique Attester Group used by the same address counts as a separate vouch or flag. You can only use one Attester Group per attestation on DeVouch.

## Editing Attestations

You can edit your attestation, whether it was a vouch or a flag. This will allow you to change your vouch to a flag or vice versa and also write a new comment into your attestation. This will create a new on-chain attestation that will replace the old one. If you attest to the project as part of other Attester Groups, those attestations will remain unchanged.

You can edit your attestations from either the project details page of the project you attested to or from the 'My Attestations' page.

## Deleting Attestations

You can delete your attestation, whether it was a vouch or a flag. This creates an on-chain revocation of your attestation. This will remove your vouch or flag from the project. If you attested to the project as part of other Attester Groups, those attestations will remain.

You can delete your attestations from either the project details page of the project you attested to or from the 'My Attestations' page.

# Integrating DeVouch

If you'd like to integrate DeVouch data into your platform or analytics we have several graphQL APIs available.

- Sepolia (for testing) - https://backend.devouch.xyz/graphql
- Optimism Mainnet - https://optimism.backend.devouch.xyz/graphql

To learn more about the APIs and how to issue DeVouch attestations continue on to [this article](./api.md).
37 changes: 18 additions & 19 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -205,25 +205,24 @@ module.exports = {
showLastUpdateTime: true
}
],
// [
// '@docusaurus/plugin-content-docs',
//
// {
// id: 'jobs',
//
// path: 'jobs',
//
// editUrl: 'https://github.com/giveth/giveth-docs/edit/master/',
//
// routeBasePath: 'jobs',
//
// sidebarPath: require.resolve('./sidebarsjobs.js'),
//
// showLastUpdateAuthor: true,
//
// showLastUpdateTime: true
// }
// ],
[
'@docusaurus/plugin-content-docs',
{
id: 'devouch',

path: 'devouch',

editUrl: 'https://github.com/giveth/giveth-docs/edit/master/',

routeBasePath: 'devouch',

sidebarPath: require.resolve('./sidebarDevouch.js'),

showLastUpdateAuthor: true,

showLastUpdateTime: true
}
]
// [
// '@docusaurus/plugin-content-docs',
//
Expand Down
5 changes: 5 additions & 0 deletions sidebarDevouch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports= {
whatisdevouch: [
'whatisdevouch', 'devouch-api'
]
}
4 changes: 0 additions & 4 deletions sidebarsjobs.js

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/devouch/devouchAttestationExample.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 55fb968

Please sign in to comment.