Skip to content

Instantly share code, notes, and snippets.

@thetwosents
Created January 20, 2022 23:23
Show Gist options
  • Save thetwosents/14313488ab5f69cba275fa641bc59fed to your computer and use it in GitHub Desktop.
Save thetwosents/14313488ab5f69cba275fa641bc59fed to your computer and use it in GitHub Desktop.
// Marketing copy:
// "Our current mission in Web3 is to make it easy to build applications that run on the Ethereum blockchain."
// "We are building a new kind of application that will allow people to build their own decentralized applications."
// "We have been working on building a new kind of application that will allow people to build their own decentralized applications."
// "We expect delivery of updated roadmaps within the next few months."
// "We welcome your feedback and suggestions."
// "We are a DAO and are not affiliated with the Ethereum Foundation."
// "We have no affiliation with the Ethereum Foundation."
// "We are a decentralized autonomous organization that is focused (currently) on building decentralized applications for the Polygon blockchain."
// "Matic is much more cost effective than other alternatives."
// "We have overhead costs that are much lower than other alternatives."
// "Autonomous organizations are more cost effective than other alternatives."
// All character schemas are infinitely expandable by way of serialization and encryption/compression.
// The more you store, the less the asset will be able to be used.
// This creates a natural progress
// Each "item" in an items array is considered to be a payload with serialized JSON data as a string.
// The payload is encrypted with a key derived from the item's index in the array.
// The key is encrypted with the master key.
// The master key is encrypted with the user's wallet signature.
// The user's wallet signature is encrypted with the user's private key.
// This is a proof of concept.
// It is not meant to be a production-ready solution.
// It is not meant to be the "real" solution.
// Our intent is to build a tool that is easy to use,
// and that is secure.
// We have a lot of data to store.
// We have a lot of data to encrypt.
// We have a lot of data to compress.
// We have a lot of data to serialize.
// We have a lot of indexing to do.
// Charts & graphs are a great way to visualize data for team communication.
// Miro can be used to create process diagrams.
const CharacterExample = [
{
name: 'Luke Skywalker',
age: 21,
schema: {
type: 'object',
properties: {
name: {
type: 'string',
minLength: 1,
maxLength: 100
},
age: {
type: 'integer',
minimum: 0,
maximum: 100
},
friends: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
rewards: {
type: 'array',
items: {
type: 'integer',
minimum: 0,
maximum: 100
}
},
secret: {
type: 'string',
minLength: 1,
maxLength: 100
},
metaverse: {
type: 'string',
minLength: 1,
maxLength: 100
},
universe: {
type: 'string',
minLength: 1,
maxLength: 100
},
current_location: {
type: 'geopoint',
minLength: 1,
maxLength: 100
},
home_planet: {
type: 'string',
minLength: 1,
maxLength: 100
},
backstory: {
type: 'string',
minLength: 1,
maxLength: 100
},
experience: {
type: 'integer',
minimum: 0,
maximum: 100
},
level: {
type: 'integer',
minimum: 0,
maximum: 100
},
skills: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
inventory: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
equipment: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
abilities: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
attributes: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
theme_song: {
type: 'string',
minLength: 1,
maxLength: 100
},
theme_song_url: {
type: 'string',
minLength: 1,
maxLength: 100
},
theme_song_artist: {
type: 'string',
minLength: 1,
maxLength: 100
},
top_8_songs: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
top_8_song_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
top_8_song_artists: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
top_8_albums: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
items: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
item_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
item_artists: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
artists: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
albums: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
video_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
videos: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
quests: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
quest_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
quest_artists: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
quest_payloads: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
eject_scripts: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
yield_scripts: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
bots: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
bounties: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
bounty_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
trading_cards: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
trading_card_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
trading_card_artists: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
trading_card_artwork:{
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
trading_card_artwork_urls:{
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
theme_songs: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
nft_projects: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
tokens: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
token_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
token_artists: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
knowledge_bases: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
kingdoms: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
guilds: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
guild_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
guild_artists: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
guild_stats: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
guild_artwork: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
transactions: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
transaction_urls: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
network_fees: {
type: 'array',
items: {
type: 'string',
minLength: 1,
maxLength: 100
}
},
},
}
},
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment