owned this note
owned this note
Published
Linked with GitHub
# DAOIP-5 [GitHub](https://github.com/metagov/daostar/blob/main/DAOIPs/daoip-5.md)
## Allo v2 **Current** metadata specification:
1. Specification for Project metadata:
```json
{
"id": "<The bytes32 id of the project>",
"chainId": "<The chain id>",
"metadata": "<The project metadata object>",
"metadataCid": "<The IPFS CID of the metadata>",
"name": "<The name of the project>",
"nodeId": "<The node id>",
"projectNumber": "<The project number: null>",
"registryAddress": "<The Allo Registry address>",
"tags": "<An array of strings>",
"roles": "<An array of roles>"
}
```
Project Metadata:
```json
"metadata": {
"type": "<The project type: (project)>",
"title": "<The project title>",
"logoImg": "<The IPFS CID of the image>",
"website": "<The website url>",
"bannerImg": "<The IPFS CID of the image>",
"createdAt": "<Timestamp>",
"userGithub": "<The users GitHub>",
"credentials": "<An array of credentials>",
"description": "<Markdown supported description>",
"logoImgData": "<Image data for the logo>",
"bannerImgData": "<Image data for the banner>",
"projectTwitter": "<The projects Twitter (X) handle>"
},
```
Project Roles:
```json
"roles": [
{
"address": "<The users address>",
"role": "<The role name: (OWNER | MANAGER)>",
"createdAtBlock": "<Timestamp>"
}
]
```
2. Specification for Round:
```json
{
"chainId": "<The chain id>",
"id": "<The round id>",
"matchAmountInUsd": "<The matching dollar amount in USD>",
"matchAmount": "<The match amount in wei>",
"totalAmountDonatedInUsd": "<The total amount donated in wei>",
"strategyName": "<The name of the strategy>",
"strategyId": "<The bytes32 strategy id>",
"strategyAddress": "<The strategy address>",
"applicationsStartTime": "<The start time: 2024-03-26T16:34:00+00:00>",
"applicationsEndTime": "<The end time: 2024-03-29T00:00:00+00:00>",
"donationsStartTime": "<The start time: 2024-03-27T00:00:00+00:00>",
"donationsEndTime": "<The end time: 2024-03-29T00:00:00+00:00>",
"fundedAmount": "<The total amount funded in wei>",
"fundedAmountInUsd": "<The funded amount in USD>",
"applicationMetadataCid": "<The IPFS CID of the metadata>",
"applicationMetadata": "<The application metadata>",
"roundMetadataCid": "<The IPFS CID of the metadata>",
"roundMetadata": "<The round Metadata>",
"matchingDistribution": "<The matching distribution>",
"tags": "<An array of strings>"
},
```
Round Metadata:
```json
"roundMetadata": {
"name": "<The name of the round>",
"support": {
"info": "<The content>",
"type": "<The type: (Email | Website)"
},
"roundType": "<The round type: (public | private)>",
"eligibility": "<An array of the elegibility requirements>",
"feesAddress": "<The address to receive the fees>",
"feesPercentage": "<The percentage to take for fees>",
"programContractAddress": "<The program contract address>",
"quadraticFundingConfig": {
"matchingCap": "<Boolean>",
"sybilDefense": "<Boolean>",
"minDonationThreshold": "<Boolean>",
"matchingFundsAvailable": "<The amount of matching funds available in wei>"
}
}
```
```json
"eligibility": {
"description": "<The description of the requirement>",
"requirements": [
{
"requirement": "<The name of the requirement>"
}
]
}
```
```json
"applicationMetadata": {
"version": "<The version to use for metadata: 2.0.0>",
"lastUpdatedOn": "<Timestamp>",
"applicationSchema": {
"questions": "<An array of questions>"
"requirements": {
"github": {
"required": "<Boolean>",
"verification": "<Boolean>"
},
"twitter": {
"required": "<Boolean>",
"verification": "<Boolean>"
}
},
}
}
```
```json
"questions": [
{
"id": "<The question id>",
"info": "<The information for the question>",
"type": "<The question type: (email | website)",
"title": "<The title of the question>",
"hidden": "<Boolean>",
"required": "<Boolean>",
"encrypted": "<Boolean>"
},
]
```
## Some suggestions based on DAOIP-5:
In Allo v2 we don't have what we called "programs" in v1. Everything is now a "profile" within the Allo Registry.
```jsonld
{
"@context": "http://www.daostar.org/schemas",
"name": "<The name of the entity.>",
"type": "<The entity type, e.g. DAO or Foundation.>",
"roundURI": "<A URI pointing to a JSON declaring any rounds maintained by the entity, following the DAOIP-5 Grant Pool JSON-LD Schema.>",
}
```
Project Specification:
> In this specification, a project is a subtype of a proposal in the sense of [DAOIP-2](https://github.com/metagov/daostar/blob/main/DAOIPs/DAOIP-2.md). This means that on-chain projects MUST publish an id of the form CAIP10_ADDRESS + "?proposalId=" + PROPOSAL_COUNTER, where CAIP10_ADDRESS is the CAIP-10 address of the proposing team or individual and PROPOSAL_COUNTER is an arbitrary identifier such as a uint256 counter or a hash that is locally unique per CAIP-10 address. Off-chain projects MAY use a similar id format where CAIP10_ADDRESS is replaced with an appropriate URI or URL.
```jasonld
{
"@context": "http://www.daostar.org/schemas",
"name": "<name of the entity>",
"type": "<entity type, e.g. DAO or Person>",
"projects": [
{
"type": "Project",
"id": "<The id of the proposal, in the format specified above.>",
"relevantTo": <OPTIONAL: An array of (round id, round name) intended to call attention to specific rounds for which this project is relevant. This does not constitute a formal grant application unless recognized by the pool.",
"membersURI": <OPTIONAL: A URI pointing to a JSON of members of the project, following the DAOIP-2 Members JSON-LD Schema.>,
"attestationIssuersURI": <RECOMMENDED: A URI pointing to a JSON of trusted issuers of attestations and credentials about the project and its members, following the DAOIP-3 Attestation Issuers JSON-LD Schema.>,
"contentURI": "<A longer description of the project forming the core of a pitch for the project, including such things as activities proposed, milestones, team, impact assessment, past history, contact information, and so on.>",
"name": "<The project name>",
"logoImg": "<The IPFS CID of the image>",
"website": "<The website url>",
"bannerImage": "<The IPFS CID of the image>",
"createdAt": "<Timestamp>",
"userGithub": "<The users GitHub>",
"credentials": "<An array of credentials>",
"description": "<Markdown supported description>",
"logoImgData": "<Image data for the logo>",
"bannerImgData": "<Image data for the banner>",
"projectTwitter": "<The projects Twitter (X) handle>"
}
]
}
```
Members Specification:
```jsonld
{
"@context": "https://www.daostar.org/schemas",
"type": "DAO",
"members": [
{
"id": "<CAIP-10 address, DID address, or other URI identifier>"
},
{
"id": "<CAIP-10 address, DID address, or other URI identifier>"
}
]
}
```
Round Specifications:
>In this specification, an application is a subtype of Proposal in the sense of DAOIP-2: Common Interfaces for DAOs. This means that on-chain applications MUST publish an id of the form CAIP10_ADDRESS + "?proposalId=" + PROPOSAL_COUNTER, where CAIP10_ADDRESS is the CAIP-10 address of the grant pool and PROPOSAL_COUNTER is an arbitrary identifier such as a uint256 counter or a hash that is locally unique per CAIP-10 address. Note that applications to the grant pool MAY count as proposals to the larger entity maintaining the grants system; if so, that choice SHOULD be reflected in the design of PROPOSAL_COUNTER. Off-chain proposals MAY use a similar id format where CAIP10_ADDRESS is replaced with an appropriate URI or URL.
Round Application Specifications:
```jsonld
{
"@context": "http://www.daostar.org/schemas",
"name": "<name of the entity>",
"type": "<entity type, e.g. DAO or Foundation>",
"rounds": [
{
"type": "Round",
"id": "<The id of the grant pool, in the format above.>",
"name": "<The name of the grant pool.>",
"description": "<A description of the grant pool.>",
"isOpen": <OPTIONAL: A Boolean true/false indicating whether the grant pool is open to or seeking new applications.>,
"closeDate": <OPTIONAL: The ISO DateTime at which point the grant pool will stop taking new applications.>,
"applicationsURI": "<A URI pointing to current and past applications received by the grant pool, following the DAOIP-5 Applications JSON-LD Schema.>",
"governanceURI": "<A URI pointing to additional information about the governance, requirements, and criteria for the grant, which SHOULD be a .md file.>",
"attestationIssuersURI": <RECOMMENDED: A URI pointing to a JSON of trusted issuers of attestations and credentials about the grant pool, following the DAOIP-3 Attestation Issuers JSON-LD Schema.>,
"requiredCredentials": [<RECOMMENDED: An array of attestation types, following DAOIP-3 Attestations for DAOs.>],
"email": <OPTIONAL: A working email address through which the grant pool can respond to inquiries and requests.>,
"image": <RECOMMENDED: A URI pointing to a resource with mime type image, typically a square logo.>,
"coverImage": <RECOMMENDED: A URI pointing to a resource with mime type image, typically a large, rectangular background image.>
}
]
}
```
```jasonld
{
"@context": "http://www.daostar.org/schemas",
"name": "<name of the entity>",
"type": "<entity type, e.g. DAO or Foundation>",
"rounds": {
"applications": [
{
"type": "Round",
"name": "<The name of the round.>",
"applications": [
"type": "ProjectApplication",
"id": "<The uid of the proposal, in the format specified above.>",
"roundsURI": "<A URI pointing to the rounds published by the entity.>",
"roundId": "<The id of the round.>",
"roundName": "<The name of the round.>",
"projectsURI": "<The URI of an organization’s projects applying for grant funding.>",
"projectId": "<The id of the project.>",
"projectName": "<The name of the project.>",
"createdAt": "<ISO DateTime>",
"contentURI": "<A URI pointing to the publicly accessible content of the application.>"
"discussionsTo": <OPTIONAL: A URI pointing to a fixed channel, e.g. a forum discussion thread or messaging chat, where the granter(s), grantee(s), and other stakeholders can discuss the grant.>,
"fundsAsked": [
{
"amount": "<The amount of funding asked>",
"denomination": "<The denomination of currency asked>"
}
],
"fundsApproved": [
{
"amount": "<The amount of funding approved>",
"denomination": "<The denomination of currency approved>"
}
],
"payoutAddress": {
"type": "<e.g. EthereumAddress, CAIP10Address, IBAN, SWIFT/BIC, etc.>",
"value": "<subject's identifier, e.g. their Ethereum address, CAIP-10 address, IBAN, etc.>"
},
"isEligible": <OPTIONAL: A Boolean true/false indicating that an application is eligible (e.g. by fulfilling all required criteria) for consideration by the round.>,
"isReviewed": <OPTIONAL: A Boolean true/false indicating that an eligible grant has been reviewed by the round.>,
"isApproved": <OPTIONAL: A Boolean true/false indicating that an eligible grant has been approved for funding by the round.>,
"isPaid": <OPTIONAL: A Boolean true/false indicating that an approved grant is fully paid, and no additional funds should be expected from the round.>,
"payouts": [ <OPTIONAL>
{
"type": "<The type of the payout transaction, e.g. CallDataEVM.>",
"value": {"<The values of the payout transaction, e.g. operation, from, to, value, data, and so on.>"}
"proof": "<The transaction hash or other evidence that the payout was made.>",
}
]
}
}
]
}
```