I dag ønsker vi Geez, Kodas, Chimpers og HV-MTL velkommen til Amazon. Å gjøre disse kodene innløselige onchain var en morsom utfordring. Alt drives av den enkle, men kraftfulle RedemptionCodeRegistry, laget for Boximus. Slik fungerer det 1/ 🧵
Othersidemeta
Othersidemeta9 timer siden
Følelsene er nå tilgjengelige på Amazon-butikken på Otherside US i USA: → Otherside → @hvmtl2 → @GeezOnApe → @ChimpersHQ Gira på å bringe fellesskapets IP til @AMZNvideogames med Feels, uttrykksfulle GIF-er som stikker opp over avataren din i Otherside for å vise humøret ditt.
2/ For det første er all kode sikkert generert utenfor kjeden. Hver kode tildeles innløsningsdata bestående av en funksjonsvelger (4 byte), token-ID (opptil 8 byte) og en mint-adresse (20 byte). Dette er designet for å pakkes inn i én bytes32 for å minimere onchain-lagringskostnader.
3/ Hver innløsningskode blir deretter hashet offchain, og hashen lagres onchain i en mapping som peker mot tilsvarende innløsningsdata. Å lagre kun den hashede verdien beskytter den underliggende koden mot eksponering.
4/ Lagring av alt dette onchain gjør at vi eliminerer behovet for offchain innløsningstidsverifisering, som Merkle proofs of signatures, i bytte mot en kostnad på bare ~0,04 cent per kode takket være datapakkingen.
5/ Brukere kan nå kjøpe disse kodene på Amazon. Når koden brukes i Otherside, beregner kontrakten hashen, bruker den til å hente innløsningsdataene, sikrer at de ikke har vært brukt (og markerer den som brukt), og til slutt dekoder den og bruker den til å kalle myntkontrakten.
6/ For Boximus var hver kode mappet til en spesifikk token-ID som ble preget ved innløsning. For Feels måtte vi være litt kreative. I stedet for å prege en enkelt ERC721-token, preger du en pakke med 1155-mynter. For å bruke samme kodingsformat måtte vi tilpasse systemet.
7/ I stedet for en "token ID" skapte vi ideen om en StickerPack – en fleksibel og lagringsoptimalisert struktur i 1155 som lagrer hvilke klistremerker som skal myntes for en gitt "ID". For dagens lansering løser hver kode inn Pakke #1, som inneholder én av hver ID fra én til ti.
8/ Det kule er at disse klistremerkepakkene har et konsept av tilfeldighet hvis ønskelig. Fremtidige pakker kan merkes som tilfeldige, der hver token-ID har X % sjanse for å bli trukket, og hver pakke har Y antall trekk.
9/ Ingen VRF kreves her – tilfeldigheten bestemmes av selve innløsningskoden. Tilfeldige pakker gjennomgår følgende utvelgelsesmekanisme, ved å bruke en kombinasjon av innløsningskoden og eierens vekter for hvert kort for å avgjøre hvilke kort som trekkes til en stokk.
10/ Gleder meg til å se hvordan Feels utvikler seg i Otherside. Hvilke andre lokalsamfunn blir med neste gang? Hvem vil lage en gral (trekksjansen kan være så lav som 0,01 %), og hvem blir den første til å trekke den? I Metaverset trenger alle en digital flex. La oss ha det litt gøy.
183