Proposal - NounsID - Data and Identity Layer for NounsDAO

Grant/Project Name: Nouns ID

Proposer’s contact info: w3babablake@gmail.com, kmangutov@gmail.com, brnunes@gmail.com

Grant Category: Apps, Community

ELI5 Project Summary: [1-2 sentence summary that a non-engineer would understand]

Nouns ID is a decentralized repository that collects information about the Nouns ecosystem and makes it available to developers. This data can help developers create applications more effectively and drive further adoption of the Nouns ecosystem.

Project Description:

Nouns are an experimental attempt to improve the formation of on-chain avatar communities. Nouns DAO attempts to bootstrap identity, community, governance, and a treasury that can be used by the community. Nouns is CC0, and there are many communities built from forking the Nouns contracts, such as Lil Nouns DAO and SharkDAO.

We’ll build Nouns Data and Identities layers. Right now, discussions and proposal voting happen in disparate sources, such as On-chain, PropHouse, and other Nouns clients. We will organize getting this data into ComposeDB so it is available to all Nouns applications builders.

Further, we’ll provide NounsID, a web frontend which helps Nouns users to view common proposal categories and to specify their voting preferences. These preferences can then be used across Nouns clients. On NounsID, we will leverage user preferences to highlight relevant proposals and voting suggestions.

Relevant links:

Ceramic Ecosystem Value Proposition:

What is the problem statement this proposal hopes to solve for the Ceramic ecosystem? How does your proposal offer a value proposition solving the above problem ?Why will this solution be a source of growth for the Ceramic ecosystem?

  • We’ll enrich the Ceramic ecosystem by incorporating existing data and generating new data that is relevant for users in the Nouns ecosystem. This data will be integrated into existing and new front-ends that will help on Nouns governance and DAO participation.
  • The presence of well-known and well-funded DAOs like Nouns and Lil Nouns on Ceramic could increase its visibility and credibility.
  • The integration of a large DAO ecosystem in Ceramics will increase the amount and quality of data available, and therefore the capabilities of the network. That will enable the development of more innovative solutions and drive further adoption, making the network more valuable and useful for developers.

Funding requested (DAI/USDC): How much are you applying for? Make sure to break the amount requested down by milestones = $15 000

Milestones:

  • Milestone #1: Interacting with Ceramic POC (25 Hours) - [$2500]
    • Set up Ceramic and ComposeDB node - 10 Hours
    • Model data objects, publish hardcoded/demo data to Ceramic stream - 10 Hours
    • Sample application that reads data objects from Ceramic stream - 5 Hours
  • Milestone #2: Publish Nouns data to Nouns Ceramic stream (60 Hours) - [$6000]
    • Ingest Nouns Proposals and Prop House Proposals from existing SQL tables into ComposeDB - 40 Hours
      • Create ComboseDB GraphQL composite schemas, convert it to a composite, and upload to ComposeDB node
      • Create a script to read PostgresDB and write into ComposeDB
      • Run importers on regular cadence e.g. every hour (set up and monitor cron jobs)
    • JavaScript client SDK, which can be used from target frontends - 15 Hours
    • Documentation on using Nouns Ceramic SDK and contributing to Nouns ComposeDB data - 5 Hours
  • Milestone #3: Nouns ID client (45 Hours) - [$4500]
    • Build a front-end that shows the profile details, allows users to connect wallet and set preferences - 30 Hours
      • Show profile data and preferences (top proposal categories)
      • Record selected preferences to ComposeDB, owned by the wallet
    • Use preferences to guide future voting - 15 Hours
      • Show new proposals and recommendation based on preferences
  • Milestone #4: Integrate with existing frontends (20 Hours) - [$2000]

I accept the 3Box Labs Grants terms and conditions: Yes
I understand that I will be required to provide additional KYC information to the 3Box Labs to receive this grant: Yes

1 Like

Hi @kmangutov, thank you for your proposal! We will be in touch with an update once we have completed our initial review (1-2 weeks).

Congratulations @kmangutov, I’m delighted to inform you that your grant proposal has been accepted! :tada:

We would like to award you a Ceramic Builders Grant.

We will follow up shortly with more details via email.

Hi quick check-in, we are making progress on our Milestone #1 “Interacting with Ceramic POC”,

  1. We set up an AWS EC2 instance running Ceramic with ComposeDB
  2. We’ve defined the Nouns DAO proposal model, published it and are serving it from our server
type NounsProposal @createModel(accountRelation: LIST, description: "On-chain proposals and their voting stats") {
  blocknumber: Int! @int(min: 0)
  created_timestamp: Int! @int(min: 0)
  unique_holders: Int! @int(min: 0)
  total_supply: Int! @int(min: 0)
  proposal_id: Int! @int(min: 1)
  requested_eth: Int @int(min: 0)
  start_block: Int! @int(min: 0)
  end_block: Int! @int(min: 0)
  total_votes: Int! @int(min: 0)
  total_distinct_voters: Int! @int(min: 0)
  quorum_required: Int! @int(min: 0)
  votes_for: Int! @int(min: 0)
  distinct_voters_for: Int! @int(min: 0)
  votes_against: Int! @int(min: 0)
  distinct_voters_against: Int! @int(min: 0)
  votes_abstain: Int! @int(min: 0)
  distinct_votes_abstain: Int! @int(min: 0)
  proposer: String! @string(maxLength:256) # TODO: Use relation views https://composedb.js.org/docs/0.3.x/guides/creating-composites/directives#relation-views
  ens: String @string(maxLength:256)
  transactionhash: String! @string(maxLength:256)
  description: String! @string(maxLength:4096)
  state: String! @string(maxLength:256)
}
  1. We have a python script which can query and publish the Ceramic stream associated with this model
  2. Proposals published to Ceramic can be checked with the GraphiQL web interface

We’re working on

  1. The client app that will read from the NounsProposal composite
  2. The importer that will publish real NounsProposals to Ceramic

Thanks!

1 Like

Great update, love to see the progress so far!

Hi quick check-in, we have continued building on our Ceramic POC from Milestone #1.

  1. Our python script can now publish & update real Lil Nouns proposal data to a Ceramic stream. This accounts for a large portion of Milestone #2. We still have to add Nouns proposals and update the proposal schema to match what the TheGraph offers.

  1. We’ve continued honing in on the data we want to make available on our web client, NounsID.

  1. We started building the client from the 'Create Ceramic App’ command. This is the composite that the users will own, and we’ll use it to build the NounsID profile page, outlined in Milestone #3.

1 Like

Hi this is our January 27th check-in, the first versions of the NounsID app and NounsData library are published as we continue working on implementing the features scoped in our proposal.

  1. The NounsID app is now using the user-owned NounishProfile model and is hosted at https://nounsdata.wtf/. The Nouns Ceramic node is accessible at https://nounsdata.wtf:7007/
  2. We have published the first version of the NounsData library as a javascript npm package nounsdata. Currently it supports NounishProfile and NounsProposals.
  3. We have rewritten most of our real Nouns data importer from python into javascript so it can now use this package. Additionally, we are refactoring the NounsID website to use our npm package.
  4. We will continue adding data models and functionality to the Nouns library npm package.

Thanks!