# verified delegates
THe DAO can verify the personhood and reputation of a potential delegate through proposal.
Could be combined with a onboarding flow where users have a option of delegating to a verified delegate after staking for shares
this would be an onchain version of similar onboarding flows for tokens with delegation support. ex GTC, ENS, SAFE
example DAO:
- New DAO starts with a delegate seeding period.
- Summoners and initial Members begin with a small number of shares and quick proposal turnover
- nominations?? make a signal proposal to become 'verified'
- if this proposal passes they are added to a list of verified delegates for the DAO
- this list can grow as new members wish to be verified.
- the list of verified delegates can be viewed by share holders so they can easily transfer their delegation to a verified member
- DAO turns on easy stake onboarder and increase vote/grace to something more reasonable
## bolton app
three main actions
- Easy Stake Onboarder
- onboarder shaman
- considerations: expiery, share max (upper limits?)
- can we approve max?
- Form to request to be a verified delegate or nominate
- proposal
- details "this account is signalling to be vouges for as verified by the dao or whatever"
- title "Verified delegate"
- type verfiedDelegate
- signal with poster.sol schema
- platform
- whys
- date stamped
- can it be submitted by others (ops team, member nominations)
- can it be edited or deleted?
- List of verified delegates that members can chose to update delegation to
- query poster data
- change delegate action for user/sender
**Easy Stake wires**

**Application form**

**Delegate list**

## Implementation Notes
### Proposal action
1. post verified delegate data
contract: poster
action: Post
args:
- tag: 'daohaus.proposal.verifiedDelegate'
- content: *see json schema below*
```js
{
daoId: '0x0',
table: 'credential',
queryType: 'list',
recipientAddress: '0x0',
credentialIdentifier: 'verifiedDelegate',
title: 'Verified Public Haus Delegate':\,
description: 'good at being a delegate',
link: 'billyboy.com',
credentialType: 'verifiedDelegate'
}
```
We could support the dao seeding a bigger list of delegates with a multiaction call
### Subgraph
#### mapping
Support these queries:
- all verified delegates for a dao
- `Records(where: { dao: '0x0', table: 'credential', credentialIdentifier: 'verifiedDelegate' })`
- all daos an aadress is a verfieid delegate for
- something like: `Records(where: {table: 'credential', credentialIdentifier: 'verifiedDelegate', content_contains_nocase: 'recipientAddress: "0x0"})`
Details
- new dao database parsing to create a Record entitiy
- tag and dao proposal validation
- table: 'credential'
- contentType: json
- TODO:
- add a queryType field
- could be 'latest' = query for newest version of the data ex.) daoProfile
- could be 'list' = query all to construct list ex.) these verified delegates
- new tag types: daohaus.proposal.database & daohaus.member.database
- table field is now filled in with data from schema
- if no dao, tbale, query type fields it's not valid
- adjust current tags/types as necessary
- how to add a new schema - pr so other know how to parse and validate
```gql
type Record @entity {
id: ID!
createdAt: BigInt!
createdBy: Bytes!
dao: Dao!
tag: Bytes!
table: String!
contentType: String!
content: String!
queryType: String!
}
```
#### poster json schema
https://github.com/HausDAO/monorepo/tree/develop/libs/moloch-v3-data/src/subgraph/json-schemas
```json
{
"$schema": "http://json-schema.org/schema#",
"$id": "https://raw.githubusercontent.com/HausDAO/daohaus-monorepo/develop/libs/moloch-v3-data/src/subgraph/json-schema/dao-profile.json",
"title": "Credential",
"description": "Any credential verified by a DAO proposal",
"type": "object",
"properties": {
"daoId": {
"description": "The unique identifier and contract address for a DAO",
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"table": {
"description": "Table field on the Record entity indexed in the DAOhaus subgraph",
"type": "string",
"enum": ["credential"]
},
"queryType": {
"description": "Indicates if the Record entities indexed in the DAOhaus subgraph should be queried for latest or as a list",
"type": "string",
"enum": ["list"]
},
"recipientAddress": {
"description": "Address of the verified credential recipient",
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$"
},
"credentialIdentifier": {
"description": "Unique identifier of credential type",
"type": "string"
},
"title": {
"description": "Name of the credential",
"type": "string"
},
"description": {
"description": "Short description of the credential",
"type": "string"
},
"longDescription": {
"description": "Longer text description of the credential with details related to the proposed recipient",
"type": "string"
},
"link": {
"description": "Link to more content related to the credential and recipient",
"properties": {
"callbackUrl": { "$ref": "#/definitions/saneUrl" }
}
}
},
"required": [
"daoId",
"recipientAddress",
"credentialIdentifier",
"table",
"queryType"
],
"definitions": {
"saneUrl": { "format": "uri", "pattern": "^https?://" }
}
}
```