ceramicnetwork / ceramicnetwork/.github
Create a Superfluid and addressBook Ceramic Datamodel integration
- 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.