GALU · Polygon

Przejrzystość tokenaToken transparency

Jeden kontrakt jest jednocześnie tokenem ERC-20 i pulą nagród. Każda liczba na tej stronie jest czytana na żywo z Polygonu, prosto z kontraktu — nie z naszej bazy.

A single contract is both the ERC-20 token and the reward pool. Every number on this page is read live from Polygon, straight from the contract — not from our database.

0x9d797D0E642D9EADdbDbD34ACFCFd07bf0043c6C
Stan na żywoLive state

Kontrakt w liczbach — terazThe contract in numbers — right now

total supply
wyemitowane GALUGALU minted so far
% of hard cap
z limitu 40 000 000of the 40,000,000 cap
pool balance
GALU na kontrakcieGALU held by the contract
outstanding claims
nieodebrane nagrody userówusers' unclaimed rewards
claimed to date
wypłacone na portfelewithdrawn to wallets
deposited
wpłacone przez userówdeposited by users
burned
spalone (deflacja)burned (deflation)
epoch / status
Koncentracja podażySupply concentration

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.

Twarde limityHard limits

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.

Role uprzywilejowanePrivileged roles

Kto może co — dokładnieWho can do what — exactly

owner
Może: pauzować/odpauzować kontrakt, wskazać adres mintera, przekazać ownership (dwustopniowo, Ownable2Step).Can: pause/unpause the contract, set the minter address, transfer ownership (two-step, Ownable2Step).
Nie może: mintować, wypłacić puli, zmienić czyjegokolwiek salda ani reguł claimów. Pauza wstrzymuje mint/depozyty/claimy (hamulec awaryjny); zasilanie puli działa też w pauzie.Cannot: mint, withdraw the pool, alter anyone's balance or the claim rules. Pause halts mint/deposits/claims (an emergency brake); funding the pool works even while paused.
minter
Może: wywołać 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.
Nie może: mintować na dowolny adres, przekroczyć 40 000 GALU/epokę ani odstępu 10 h, złamać guardu wypłacalności.Cannot: mint to an arbitrary address, exceed 40,000 GALU/epoch or the 10 h spacing, or violate the solvency guard.
team
Bez żadnej specjalnej ścieżki. Udział zespołu to zwykły adres w drzewie Merkle — zarabia z tej samej puli i claimuje dokładnie tak samo jak każdy node. Osobnego mintu dla zespołu nie ma.No special path at all. The team share is an ordinary address in the Merkle tree — it earns from the same pool and claims exactly like any node. There is no separate team mint.
everyone
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.
Audyt na żywo: strona /epochs pokazuje każdą epokę — depozyty, wydatki, naliczenia i hash transakcji on-chain. Korzeń Merkle każdej epoki możesz porównać z tym w kontrakcie.Live audit: the /epochs page shows every epoch — deposits, spending, accruals and the on-chain transaction hash. You can compare each epoch's Merkle root with the one in the contract.