Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a Superfluid and addressBook Ceramic Datamodel integration #215

Open
mattdavis0351 opened this issue May 20, 2022 · 8 comments
Open
Labels
bounty Issue with a reward for completion according to spec good first issue Good for newcomers

Comments

@mattdavis0351
Copy link

mattdavis0351 commented May 20, 2022

Prize Title

Create a Superfluid and addressBook Ceramic Datamodel integration

Prize Bounty

5,000 USDC

Challenge Description

Integrate the Ceramic addressBook datamodel into Superfluid. The most useful place for this integration is within the Superfluid Console itself. The Console is a tool that's really useful for interacting with Superfluid, and it has a feature which allows you to create an address book to manage different accounts you're working with across EVM chains.

Datamodel information can be found below:

address_book.json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "AddressBook",
  "required": ["total_cnt", "contacts"],
  "additionalProperties": false,
  "properties": {
    "total_cnt": {
      "type": "integer",
      "description": "The total number of contacts",
      "default": 0
    },
    "contacts": {
      "type": "array",
      "default": [],
      "items": {
        "type": "object",
        "required": ["name", "wallets"],
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "The contact's name",
            "default": ""
          },
          "wallets": {
            "type": "array",
            "description": "Collection of the contact's wallet addresses and respective networks",
            "default": [],
            "items": {
              "type": "object",
              "default": {},
              "required": ["walletAddress", "network"],
              "additionalProperties": false,
              "properties": {
                "walletAddress": {
                  "type": "string",
                  "default": ""
                },
                "network": {
                  "type": "string",
                  "default": ""
                }
              }
            }
          },
          "avatar": {
            "type": "string",
            "description": "Optional URI of user avatar",
            "default": ""
          },
          "tags": {
            "type": "array",
            "description": "Optional tags for the contact",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "uniqueItems": true
          },
          "data": {
            "type": "object",
            "description": "Fields to include optional arbitrary data",
            "properties": {}
          }
        }
      }
    }
  }
}
DIDToAddressBook.json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "DIDToAddressBook",
  "required": ["mapping"],
  "properties": {
    "mapping": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["user_DID", "address_book_streamID"],
        "properties": {
          "user_DID": {
            "type": "string",
            "description": "The user's DID",
            "default": ""
          },
          "address_book_streamID": {
            "type": "string",
            "description": "The streamID of the Address Book associated to the user",
            "default": ""
          }
        }
      }
    }
  }
}
model.json
{
  "definitions": {
    "myAddressBook": "kjzl6cwe1jw149hy5kge1gqmp669kvn2c0xmnrr109wajqrwteg9mdmlalzaku4",
    "DIDToAddressBook": "kjzl6cwe1jw147ff7ga8wa97ytivguq3cb2umpwkvdbuyydx7drpnaitmtvhx8r"
  },
  "schemas": {
    "AddressBook": "ceramic://k3y52l7qbv1frxycyoblevfvx12ws5t0iuqmrwiadl36p20ectvw9yuhs4g9uruv4",
    "DIDToAddressBook": "ceramic://k3y52l7qbv1fry9pcj5rymkn9686buqtmaley7qujeyd4atyy2huvrzumsc9jc2kg"
  },
  "tiles": {}
}

Submission Requirements

  • Working demo and video submission
  • Submit a pull request to the Superfluid Console repo with your integration
  • Submit any new datamodels created during the bounty to the datamodels repository (optional)
  • Publicly available code

Judging Criteria

  • Usability and function of the integration
  • Code quality
  • Documentation

Winner Announcement Date

June 4th, 2022

Resources

@mattdavis0351 mattdavis0351 added good first issue Good for newcomers bounty Issue with a reward for completion according to spec labels May 20, 2022
@mattdavis0351 mattdavis0351 changed the title __ [Bounty] Create a Superfluid and addressBook Ceramic Datamodel integration Create a Superfluid and addressBook Ceramic Datamodel integration May 20, 2022
@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 5000.0 USDC (5000.0 USD @ $1.0/USDC) attached to it.

@gitcoinbot
Copy link

gitcoinbot commented May 20, 2022

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 2 weeks, 1 day ago.
Please review their action plans below:

1) soheil555 has started work.

Integrate the Ceramic addressBook datamodel into Superfluid
2) gsusin has started work.

Use Ceramic Datamodel to store Superfluid Console AddressBook
3) kelvinpraises has started work.

This is an dashboard integration into superfluids console, the dashboard allows users greater control over their ceramic address books
4) erozankurtas has started work.

About Web3Graph
As an open-graph protocol specifically for the Web3.0 era, Web3Graph focuses on providing the Web3.0 natives with graph information, serving Web3.0 developers with a fast and accurate platform to exchange and present information and data for Web 3.0 applications. Based on smart contracts and a powerful off-chain event engine, Web3Graph is empowered for providing the event-driven open graphs for developers and decentralized applications.

The developers can directly integrate the Web3Graph Protocol to build their own project functions and grasp the graph content of events and relationships generated by existing Web3.0 apps on Web3Graph, jumpstarting their own applications. The Web3Graph not only provides social graph content for social App developers, but also sets a unified, open and secure data standard for future Web 3.0 dapps, providing a data foundation for GameFi, DeFi, SocialFi, DAO, etc.

Website:https://web3graph.io/
Twitter: https://twitter.com/web3graph
Discord: https://discord.gg/vuffYdhWNf
Telegram group: https://t.me/Web3Graphchat
5) kristian-zf has started work.

Storage chains are a very important infrastructure, there will be a lot of precious things waiting to be discovered on that, so we are building the web search engine to let user access the web3 world. our vision is: Decentralized propagate of civilization.
demo : https://2sqrrcokoj3mwknkznq4euffpkas3nttqpeas3v3qxvomzsb.arweave.net/1KEYicpydsspqsthwlCleoEttnO-D_yAluu4Xq5mZB8/
6) archenetwork has started work.

Arche is a community oriented space for game enthusiasts for a better Web 3.0 experience. We aims to bring good Web3 games to people and bridge the connection amongst GameFi players to enjoy, earn, create, govern and assembling those to build a better game Metaverse and society.

Learn more on the Gitcoin Issue Details page.

@NftTopBest
Copy link

Hi @mattdavis0351
Is that we only build on the Superfluid console project? As me maybe build it on my Web3NFT.Social platform that user can manage the address book on my platform but it will use the Superfluid and Ceramic sdk.

@mattdavis0351
Copy link
Author

@NftTopBest you're more than welcome to incorporate these data models and ceramic into your project.

The bounty will be awarded for integration into the superfluid console though.

@ghost
Copy link

ghost commented May 26, 2022

Hi @mattdavis0351
Sorry, I'm new here.

What is the use case of the DIDToAddressBook schema?
Couldn't the user gets another user's address book if the user only knows another user's DID?

Thanks.

@mattdavis0351
Copy link
Author

@soheil555 you're understanding that correctly. If you know the DID then you can absolutely look up the data since the data is public.

You cannot write changes to the data unless the DID is authenticated however.

@gitcoinbot
Copy link

gitcoinbot commented May 30, 2022

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 5000.0 USDC (5000.0 USD @ $1.0/USDC) has been submitted by:

  1. @carlbarrdahl
  2. @soheil555
  3. @kristian-zf
  4. @kelvinpraises

@mattdavis0351 please take a look at the submitted work:


@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 5000.0 USDC (5000.00 USD @ $1.0/USDC) attached to this issue has been approved & issued to @kelvinpraises.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bounty Issue with a reward for completion according to spec good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants