Kontrakt w liczbach — terazThe contract in numbers — right now
Dlaczego kontrakt trzyma większość tokenówWhy the contract holds most of the supply
Bo tak działa ten model. Nagrody nodów istnieją najpierw jako uprawnienia (liście drzewa Merkle), a tokeny, które je pokrywają, fizycznie leżą na kontrakcie, dopóki właściciel ich nie odbierze. Saldo kontraktu to nie skarbiec zespołu — to zabezpieczenie cudzych, jeszcze nieodebranych nagród plus depozyty userów i recykling wydatków.
Because that's how the model works. Node rewards exist first as entitlements (Merkle tree leaves), and the tokens backing them physically sit in the contract until their owner claims them. The contract balance is not a team treasury — it is collateral for other people's not-yet-claimed rewards, plus user deposits and recycled network spending.
Nie musisz nam wierzyć na słowo — porównaj powyżej pool balance z outstanding claims. Wypłacalność wymusza sam kontrakt: po każdym mincie sprawdza, że balanceOf(pool) ≥ entitlement − claimed, a claim, który przekracza saldo puli, jest odrzucany on-chain.
You don't have to take our word for it — compare pool balance with outstanding claims above. Solvency is enforced by the contract itself: after every mint it checks that balanceOf(pool) ≥ entitlement − claimed, and any claim exceeding the pool balance is rejected on-chain.
Czego nie może nikt — nawet myWhat nobody can do — including us
Zero premintaNo premine
Konstruktor nie mintuje nic. Podaż zaczęła od zera; każdy istniejący GALU powstał w dobowej emisji nagród.The constructor mints nothing. Supply started at zero; every GALU in existence came from the daily reward emission.
Mint tylko do puliMint goes only into the pool
Jedyny mint w kodzie to _mint(address(this)) — świeże tokeny mogą trafić wyłącznie na kontrakt. Minter fizycznie nie umie zmintować na swój (ani żaden inny) adres.The only mint in the code is _mint(address(this)) — fresh tokens can only land in the contract. The minter physically cannot mint to its own (or any other) address.
Sufit 40 M — niezmienialny40M cap — immutable
Hard cap z ERC20Capped (OpenZeppelin), zapisany jako constant. Nie ma funkcji, która go zmienia.Hard cap via ERC20Capped (OpenZeppelin), declared constant. There is no function that can change it.
Dławik emisjiEmission throttle
Maks. 40 000 GALU na epokę i minimum 10 h między mintami — stałe w kodzie. Nawet skradziony klucz mintera nie wyemituje więcej.Max 40,000 GALU per epoch and at least 10 h between mints — constants in the code. Even a stolen minter key cannot emit more.
Kod niezmienialnyImmutable code
To nie jest proxy — kontrakt nie ma żadnej ścieżki aktualizacji. Reguły, które widzisz w źródle, są ostateczne.This is not a proxy — the contract has no upgrade path. The rules you see in the source are final.
Jedyne wyjście: claimThe only outflow: claim
Tokeny wychodzą z puli wyłącznie przez claim z dowodem Merkle, na adres, którego dotyczy uprawnienie. Nie istnieje funkcja „wypłać pulę".Tokens leave the pool only via claim with a Merkle proof, to the address the entitlement belongs to. A "withdraw the pool" function does not exist.
Kto może co — dokładnieWho can do what — exactly
mintEpoch — rozliczenie dobowej epoki: mint do puli (w limitach), burn z puli, nowy korzeń Merkle.Can: call mintEpoch — settle the daily epoch: mint into the pool (within limits), burn from the pool, set the new Merkle root.claim (z dowodem Merkle), deposit (własne GALU do wydawania w sieci), fundPool (zasilenie puli), transfery ERC-20, burn własnych tokenów.claim (with a Merkle proof), deposit (your own GALU to spend in the network), fundPool (top up the pool), ERC-20 transfers, burning your own tokens.