Înapoi la portofoliuPortofoliu

Engram

Un pool Uniswap v4 al cărui comision este stabilit, tranzacție cu tranzacție, de o mică rețea neuronală stocată on-chain. Rețeaua poate fi înlocuită doar de una mai bună, găsită în runde de antrenare sigilate și criptate la termen, la care poate participa oricine.

Rol
Concepție, model economic, Solidity, testare, lansare și site
Lansat
5 octombrie 2026, 21:40 UTCContractele la blocul 26.128.922; poolul deschis la blocul 26.128.981
Contracte
Cinci, toate verificateEtherscan și Sourcify, potrivire exactă
Testare
90 de verificări pe un fork de mainnetDouă revizuiri adversariale înainte de lansare
Tehnologii
Solidity 0.8.28 (via IR), Uniswap v4, drand, EIP-2537, JavaScript
Permisiunile hookului
0x20CC
Rețeaua Engram: zece caracteristici de intrare, opt unități ascunse, o ieșire 10 caracteristici, int8 8 unități ascunse, ReLU 1 ieșire f0 mărimef1 direcțief2 pauzăf3 blocf4 fluxf5 volatilitatef6 trendf7 memorief8 nouf9 serie markout în bps comision

Rețeaua activă

109 octeți: W1 8x10, b1, W2, b2, două deplasări de biți

Intră zece caracteristici int8, opt unități ascunse ReLU le combină și iese un singur număr: markoutul pe care rețeaua îl așteaptă pentru această tranzacție, în puncte de bază. Hookul îl transformă în comisionul LP al tranzacției.

comision LP = clamp(0,30% + predicție; 0,05%; 3,00%)

Treceți cu mouse-ul peste o caracteristică sau atingeți-o pentru a vedea cum o codifică hookul.

Fig. 1. Mintea din pool. Rețeaua pe care hookul o consultă la fiecare swap, desenată la dimensiunea ei reală: 80 de ponderi de la caracteristici la stratul ascuns și 8 spre ieșire. Definițiile caracteristicilor sunt traduse din sursa hookului. Rețeaua activă pe mainnet este cea implicită, care prezice zero pentru orice tranzacție.

Proiectul

Engram este un token ERC-20 cu un singur pool Uniswap v4, ETH nativ contra ENGRAM. Hookul său, Hippocampus, citește zece caracteristici ale fiecărei tranzacții, întreabă o rețea neuronală de 109 octeți care va fi markoutul tranzacției (cât de mult continuă prețul să se miște în direcția ei după aceea) și stabilește din răspuns comisionul pentru furnizorii de lichiditate al acelei tranzacții.

Rețeaua nu este fixă. O dată pe zi, un al doilea contract, Dreams, evaluează rețele candidate sigilate pe tranzacții care nu existau când candidații au fost depuși. Un candidat preia controlul doar dacă bate clar atât rețeaua activă, cât și un comision fix. Câștigătorul nu este ales de nimeni, ci de evaluare.

Problema

Furnizorii de lichiditate pierd bani în fața fluxului informat: tranzacții care știu deja încotro merge prețul. Un comision fix îi taxează la fel pe un bot de arbitraj și pe un cumpărător obișnuit. Hookurile Uniswap v4 cu comision dinamic pot pune un preț pe această diferență, dar lansarea bazată pe AI pe care o analizam atunci își rula modelul off-chain, iar un singur portofel putea actualiza atât tokenul, cât și hookul. Comisionul era cel pe care îl hotăra acel portofel.

Engram mută întregul ciclu on-chain: caracteristicile, modelul, evaluarea și înlocuirea. Nimeni, nici măcar proprietarul, nu poate stabili comisionul sau modifica codul. Un model poate fi înlocuit doar de unul care prezice mai bine, iar recompensa pentru un model mai bun este stabilită sub cât l-ar costa pe cineva din afară să falsifice unul.

Ce am construit

  1. Un model economic, înainte de orice linie de Solidity

    Un model JavaScript al poolului, al traderilor și al antrenorilor, simulat zi cu zi, a stabilit constantele: comisionul de bază de 0,30%, fondul de 0,04% al antrenorilor, marja de promovare de 3% și regula recompensei. A schimbat designul de două ori: etichetele pornesc de la prețul lăsat de tranzacție, iar recompensa se plătește pe unitatea de îmbunătățire.

  2. Cinci contracte și o bibliotecă comună

    Tokenul, hookul Hippocampus, Dreams, un verificator de semnături drand (Beacon) și un Launcher. Aritmetica rețelei, Cortex, este o singură bibliotecă folosită atât de hook, cât și de Dreams, așa că un model este evaluat exact de codul care va stabili mai târziu, cu el, prețul tranzacțiilor.

  3. Un geamăn JavaScript

    O copie BigInt a rețelei și a caracteristicilor hookului, plus un codificator pentru criptarea la termen drand, astfel încât un browser poate sigila un candidat exact așa cum îl va citi contractul.

  4. O simulare pe un fork de mainnet

    90 de verificări pe contractele Uniswap v4 reale, cu mii de swapuri rulate pas cu pas alături de copia JavaScript.

  5. Două revizuiri adversariale

    Revizuirile complete dinaintea lansării au găsit două probleme de severitate ridicată și patru de severitate medie. Fiecare a fost corectată și reprodusă în simulare sau, acolo unde nu exista o soluție curată, declarată în contract.

  6. O lansare în doi pași

    O pagină de lansare a implementat toate contractele cu poolul închis, a verificat sursa pe Etherscan și Sourcify și abia apoi i-a permis proprietarului să deschidă tranzacționarea. La final, 18 valori au fost citite înapoi de pe mainnet și verificate.

  7. Site-ul proiectului

    Pagini care citesc fiecare cifră de pe lanț, un antrenor care rulează în browser și butoanele prin care oricine poate inițializa, evalua și finaliza o rundă.

Brand și site

Engram este gândit ca un atlas de anatomie. Fiecare pagină a site-ului este o planșă numerotată, cu o figură și o legendă, culeasă în Vollkorn pe hârtie caldă, cu desene în tuș și un singur accent carmin pentru ceea ce face mintea. Fotografia de profil de pe X, bannerul și cardurile postărilor sunt desenate ca planșe ale aceluiași atlas, astfel încât site-ul și contul se citesc ca o singură carte.

Paletă
Hârtie #F2ECDFTuș #1C1A17Carmin #A8322ASepia #6B5440
Tipografie
Vollkorn și Vollkorn SC pentru text și titlurile planșelorCutive Mono pentru date
Fotografia de profil Engram: un singur neuron desenat în tuș negru, cu puncte carmin
Fotografia de profil: un neuron, în tuș.
Bannerul Engram de pe X: o secțiune prin hipocamp desenată din neuroni, unii în carmin
Bannerul de pe X: o secțiune prin hipocamp; engrama în carmin.
Planșa Engram intitulată Perception, cu cele zece caracteristici prin care este citită o tranzacție
Planșa Perception: cele zece caracteristici.
Planșa Engram intitulată The Dreams, cu cei cinci pași ai unei runde de antrenare
Planșa The Dreams: cei cinci pași ai unei runde.
Planșa Engram intitulată The Fees, cu ce plătește fiecare tranzacție și unde ajung banii
Planșa The Fees: comisioanele și unde ajung.
Pagina The Mind in Time de pe site-ul Engram, cu o spirală a tuturor tranzacțiilor memorate
Site-ul: The Mind in Time.
Pagina The Lab de pe site-ul Engram, în tema întunecată, cu toate încercările de antrenare
Site-ul, tema întunecată: The Lab.
Site-ul Engram pe un telefon
Pe un telefon.

Cum funcționează

  1. 1Percepe

    Hookul citește zece caracteristici ale tranzacției: mărimea ei față de pool, direcția, timpul de la ultimul swap, alte swapuri din bloc, fluxul recent, volatilitatea, trendul și istoricul portofelului care tranzacționează.

  2. 2Prezice

    Rețeaua activă transformă aceste zece numere într-unul singur: markoutul pe care îl așteaptă pentru această tranzacție, în puncte de bază.

  3. 3Stabilește prețul

    Comisionul LP al tranzacției este 0,30% plus predicția, menținut între 0,05% și 3,00%. O tranzacție pe care rețeaua o consideră informată plătește mai mult.

  4. 4Încasează

    Hookul mai reține 1,04% din partea în ETH a tranzacției: 1,00% pentru proprietar și 0,04% pentru fondul antrenorilor.

  5. 5Memorează

    După încă opt tranzacții memorate, markoutul tranzacției devine cunoscut. Este scris într-o urmă înlănțuită prin hash-uri, iar istoricul portofelului se modifică după ponderea tranzacției.

  6. 6Visează

    O dată pe zi, candidații sigilați sunt evaluați pe cele mai noi tranzacții. Un candidat înlocuiește rețeaua activă doar dacă o bate cu 3% atât pe ea, cât și comisionul fix.

SwapO tranzacție de cel puțin 0,005 ETH

Tranzacțiile mai mici își plătesc comisioanele, dar nu sunt memorate niciodată, așa că sumele infime nu pot modifica istoricul nimănui.

Inel de 8Așteaptă încă opt tranzacții
EtichetăMarkoutul ei devine cunoscut

Este măsurat de la prețul la care a lăsat-o tranzacția, așa că propriul ei impact nu contează niciodată. Limitat la plus sau minus 200 bps.

UrmăIntră într-un lanț de hash-uri

keccak256(anterior, urmă). Fiecare 512 urme închid un segment și salvează un punct de control față de care Dreams poate evalua.

Fig. 2. Cum devine o tranzacție amintire, pas cu pas, așa cum o face Hippocampus._remember.

Sigilare. Candidații pentru runda r sunt depuși ca angajament, cu o garanție de 0,01 ETH, opțional criptați până la runda drand publicată la închiderea ferestrei r.

Tranzacționare. Tranzacțiile memorate în acea zi devin setul de test. Niciun candidat nu se mai poate schimba și niciunul nu poate fi citit.

Dezvăluire. Oricine poate deschide un candidat față de angajamentul lui, cu cheia proprie sau prin deblocarea la termen.

Inițializare. Semnătura drand este verificată on-chain; hash-ul ei extrage cel mult patru dintre segmentele de câte 512 tranzacții ale ferestrei.

Evaluare. Oricine poate preda un segment extras; acesta este verificat față de lanțul de hash-uri, iar fiecare candidat numit primește un scor.

Finalizare. Un candidat cu 3% mai bun decât rețeaua activă și decât cea implicită preia controlul și este plătit; o rețea activă mai slabă decât cea implicită este retrasă.

Fig. 3. O rundă de antrenare pe o axă de 66 de ore. Rundele se închid strict în ordine, iar fiecare pas este deschis oricui.

Contractele, explicate

Cantitate și emitere

Un miliard de ENGRAM au fost create o singură dată, la lansarea tokenului, și toate au mers în lansare. Nicio funcție nu poate crea altele.

Pentru dezvoltatori

INITIAL_SUPPLY = 1_000_000_000 ether este emis în constructor către msg.sender, adică Launcher. Nu există mint. Launcher.open() plasează banda și trimite proprietarului orice ENGRAM pe care nu l-a putut plasa.

Ardere

Orice deținător își poate distruge propriile tokenuri. Când se colectează comisioanele poziției blocate, tot ce a perceput rețeaua peste rata de bază este distrus și el.

Pentru dezvoltatori

burn(value) și burnFrom(from, value) pe baza unei aprobări. Launcher.collect() arde surplusul de ENGRAM cu Engram.burn și trimite surplusul de ETH la 0x...dEaD.

Transferuri

Un ERC-20 simplu: fără taxă pe transfer, fără listă neagră, fără comutator de tranzacționare. Aprobările pot fi semnate și off-chain.

Pentru dezvoltatori

transfer, transferFrom și approve standard. permit din EIP-2612 refuză un s din jumătatea superioară a ordinului curbei, astfel încât o semnătură are o singură formă, și reconstruiește separatorul de domeniu dacă se schimbă identificatorul lanțului.

Comisioane

Fiecare tranzacție plătește hookului 1,04% din partea sa în ETH, plus un comision LP pe care rețeaua îl stabilește pentru acea tranzacție, între 0,05% și 3,00%. Un swap care specifică o sumă în ETH și se execută doar parțial este refuzat, ca nimeni să nu plătească comision pe ETH care nu s-a tranzacționat.

Pentru dezvoltatori

beforeSwap returnează comisionul LP cu indicatorul de suprascriere, în pips: bază 3.000, minim 500, maxim 30.000. Comisionul hookului este un BeforeSwapDelta când ETH este partea specificată și un return delta în afterSwap în celelalte cazuri, emis către hook ca drepturi ERC-6909. Execuțiile care nu se potrivesc eșuează cu PartialFill.

int256 pred = Cortex.forward(Cortex.load(champion), f);
int256 fee = FEE_BASE + pred * 100;
if (fee < FEE_MIN) fee = FEE_MIN;
if (fee > FEE_MAX) fee = FEE_MAX;

Modelul

Rețeaua este un mic contract de date de 109 octeți. Doar Dreams poate schimba rețeaua pe care o folosește hookul și numai la finalul unei runde publice.

Pentru dezvoltatori

champion indică un contract al cărui cod este STOP urmat de cei 109 octeți; Cortex.load îi citește cu extcodecopy, iar propagarea înainte este scrisă în assembly fără bucle, pentru că evaluarea o rulează de 512 ori pe segment pentru fiecare model. setChampion eșuează cu NotDreams pentru orice alt apelant.

Recompense pentru antrenori

Un antrenor a cărui rețea preia controlul este plătit din fondul antrenorilor în funcție de cât de mult a îmbunătățit predicția. Fiecare candidat evaluat complet își primește înapoi garanția de 0,01 ETH. Câștigătorii își retrag singuri plata.

Pentru dezvoltatori

bounty = 4 x windowPot x (bar - loss) / bar, plafonat la valoarea fondului, plus garanțiile pierdute de la ultimul câștig, creditat în owed[winner] și plătit prin pull(). Promovarea cere loss < bar x 0.97, cu bar = min(living, default).

Puterile proprietarului și ale administratorului

Nu există administrator. Portofelul proprietarului a putut deschide poolul o singură dată; de atunci poate doar să primească. Nu poate schimba codul, comisioanele, modelul sau soldul nimănui.

Pentru dezvoltatori

Launcher.open() poate fi apelat doar de proprietar și o singură dată (AlreadyOpen). Niciun contract nu are pauză, cale de actualizare sau setter. payOwner() și collect() pot fi apelate de oricine și plătesc doar proprietarului.

Lichiditate

Toată lichiditatea de lansare stă într-o singură poziție deținută de contractul Launcher, care nu are nicio funcție prin care să o retragă, să o mute sau să o ardă. Comisioanele ei merg la proprietar la rata de bază de 0,30%; tot ce trece de această rată este distrus, așa că o rețea mai lacomă nu îi aduce proprietarului nimic.

Pentru dezvoltatori

NFT-ul poziției este emis către Launcher în open(). collect() rulează DECREASE_LIQUIDITY cu lichiditate zero și TAKE_PAIR, apoi plătește fees x atBase / charged pentru fiecare monedă, din evidența comisioanelor ținută de hook, integral atunci când charged <= atBase.

Valori aleatoare

Singura intrare din exterior este drand, o rețea publică de valori aleatoare. Semnăturile ei sunt verificate on-chain cu cheia publică drand, așa că nimeni nu poate alege sau prezice valoarea care sigilează candidații și extrage eșantionul de evaluare.

Pentru dezvoltatori

Beacon verifică semnături BLS12-381 pe G1 față de cheia G2 a rețelei quicknet, cu precompilele EIP-2537 (map-to-curve și pairing). Cheia este fixată în opt variabile imutabile; valoarea aleatoare a unei runde este SHA-256 al semnăturii ei.

Testare și securitate

90Verificări într-o simulare pe un fork de mainnet, cu mii de swapuri rulate pas cu pas alături de copia JavaScript
18Valori citite înapoi de pe mainnet după lansare: fiecare adresă, variabilă imutabilă și cheie
2 + 4Constatări de severitate ridicată și medie în două revizuiri adversariale, toate rezolvate înainte de lansare

Prima revizuire a arătat că oricine putea anula orice rundă de antrenare inițializând-o cu un interval gol, aflat după ultimul segment; corecția leagă intervalul de segmente care există, cu momentele punctelor de control verificate la ambele capete. A doua a arătat că o fereastră liniștită, cu un singur segment, putea fi cumpărată în întregime imediat după termen; acum segmentul care se întinde peste termen nu este extras niciodată, așa că o rundă are nevoie de două segmente complete.

Swapuri și pași de rundă măsurați pe un fork de mainnet, cu o rețea activă; hookul adaugă între 73.555 și 77.799 gas unui swap. Ultimele două rânduri sunt tranzacțiile de lansare de pe mainnet.
OperațiuneGasPool simplu
Cumpărare, intrare exactă de 0,01 ETH166.98289.658
Vânzare, intrare exactă173.19695.397
Cumpărare, ieșire exactă169.20195.646
Vânzare, ieșire exactă de 0,01 ETH172.53094.806
Depunerea unui candidat sigilat104.630
Dezvăluirea unui candidat134.785
Inițializarea unei runde275.251
Evaluarea unui segment de 512 tranzacții8.856.083 până la 8.926.208
Finalizarea unei runde182.007
Colectarea comisioanelor poziției blocate171.935
Implementarea tuturor contractelor, cu poolul închis (mainnet)6.645.852
Deschiderea poolului (mainnet)633.757

Limite, spuse direct

  1. Memoria urmează portofelul care semnează tranzacția. Cine își schimbă mereu portofelul pare întotdeauna nou, iar un relayer are o singură memorie pentru toți cei ale căror tranzacții le transmite.
  2. Rețeaua vede doar ce este on-chain. Nu poate cunoaște viitorul, iar influența ei este limitată: comisionul LP rămâne între 0,05% și 3,00%, iar comisionul de 1,04% al hookului nu se schimbă niciodată.
  3. Rundele nu se desfășoară singure. Cineva trebuie să inițializeze, să evalueze și să finalizeze fiecare rundă, în ordine. Oricine poate face asta, iar antrenorii au motive să o facă. O fereastră are nevoie de cel puțin două segmente complete de câte 512 tranzacții memorate pentru a putea fi evaluată.
  4. Evaluarea folosește un eșantion: cel mult patru segmente de câte 512 tranzacții, nu toate tranzacțiile.
  5. Proprietarul primește 1% din fiecare tranzacție, așa că poate tranzacționa în acest pool aproape gratuit. Asta face ca falsificarea unei îmbunătățiri să fie mai ieftină pentru proprietar decât pentru oricine altcineva. Cel mult ar putea câștiga astfel fondul antrenorilor, iar o rețea mai lacomă nu i-ar aduce nimic.

Starea on-chain

Date citite de pe Ethereum mainnet pe 20 octombrie 2026, la blocul 26.234.001

  • Poolul stabilește prețul fiecărei tranzacții cu rețeaua implicită, un comision LP fix de 0,30%. Niciun candidat nu a fost promovat.
  • Hookul scrisese în urma sa 5.779 de tranzacții: 11 segmente complete de câte 512 și 147 în segmentul deschis.
  • Nicio rundă de antrenare nu a fost încă finalizată. Rundele se închid strict în ordine, iar runda 1 încă așteaptă ca cineva să o finalizeze.

Contracte

Contractele de pe Ethereum mainnet
ContractAdresăSursă verificată

EngramToken ERC-20

0x56C915D92E24255fdC52eb114a31399c432B7Cc6

HippocampusHook Uniswap v4

0x0Ee851f1fe2f4BDbA79FeE78969E329C136CA0cc

DreamsRundele de antrenare

0xC1182B08DD2B95f1477baa1dFD0741Eb06b1Ce9f

BeaconVerificator de semnături drand

0xaea57Aa43Db8960F13fF366D1d8Fd83F340fa7D9

LauncherLansare și custodia lichidității

0x7AD86367Bd4e12b7e0BA15e6D05754CE8E723acD

Toate cele cinci sunt verificate pe Etherscan și pe Sourcify cu potrivire exactă, inclusiv metadatele. Compilator: solc 0.8.28, via IR, 200 de rulări ale optimizatorului, EVM țintă Cancun.