ceramicnetwork / ceramicnetwork/.github

Create a Superfluid and addressBook Ceramic Datamodel integration

Open
#215 8 comments 0 reactions 0 assignees View on GitHub
bounty good first issue
Dominant language
No language data
Stars
362
Forks
35
PR merge metrics
No merged PRs in 30d

Description

### 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

```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

```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

```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](https://github.com/superfluid-finance/superfluid-console) repo with your integration
- Submit any new datamodels created during the bounty to the [datamodels](https://github.com/ceramicstudio/datamodels) repository (optional)
- Publicly available code

### Judging Criteria

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

### Winner Announcement Date
June 4th, 2022

### Resources

- [https://developers.ceramic.network/docs/advanced/standards/data-models/](https://developers.ceramic.network/docs/advanced/standards/data-models/)
- [https://developers.ceramic.network/learn/welcome/](https://developers.ceramic.network/learn/welcome/)
- [https://blog.ceramic.network/](https://blog.ceramic.network/)
- [https://www.superfluid.finance/home](https://www.superfluid.finance/home)
- [https://docs.superfluid.finance/](https://docs.superfluid.finance/)
- [https://console.superfluid.finance/](https://console.superfluid.finance/)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.