{
"$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": {}
}
}
}
}
}
}
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
Judging Criteria
Winner Announcement Date
June 4th, 2022
Resources