safeeyes
Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder
Make small pacts with friends: steps, sleep, reading, less phone. Keep them together, earn gems, and let a cat cheer you on. For iPhone, coming soon to TestFlight.
HealthJavaScript · SolidityGitHub @girginomer10OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Pact V6 settlement contracts — unaudited Avalanche Fuji prototype
Translation pending
Loading the full README.
Read the full README ↗Solidity contracts behind Pact, an iPhone and Mac app for keeping commitments with friends. Friends agree on a goal, each puts a small stake into a shared pool, and the pool is split by the result when the Pact ends.
There are two contract generations on Fuji:
Status: unaudited prototype, Avalanche Fuji testnet only. These contracts have not had an independent security review. They are deployed only on Fuji and hold only test USDC and zero-value gems. Do not use them with real funds. The constructors accept Fuji (43113), Avalanche C-Chain (43114) and a local test chain (31337); a mainnet deployment would need an explicit owner decision and an independent audit first, and neither has happened.
The sources here are exactly what runs on Fuji. Some code comments are out of date. They are left unchanged on purpose. See Source comments.
Deployed on Fuji at block 59391986 (13 October 2026) by one deployer in seven consecutive transactions. All seven contracts are source-verified on Routescan/Snowtrace.
| Contract | Address | Source |
|---|---|---|
| PactGemV6 (gem token) | 0x5363a4A19e5aDAA02b85D4d72066214299Bf6f46 | Verified |
| PactGemVaultV6 | 0x275e11A3DD34C68234291a3aecdD3EA8231E6a78 | Verified |
| PactGemRegistryV6 | 0x4B567feDdEaa8E464a32F599F92AF19AE02FbA04 | Verified |
| PactSettlementModuleV6 (Walking) | 0x7e2d4443d461cEd7A261a7A64088E6De1AFE497B | Verified |
| PactSettlementModuleV6 (Working) | 0x0666Ba7Cc3bCeEf4e5Db79bC7825dee3Ee7b7bE5 | Verified |
| PactSettlementModuleV6 (Proof) | 0xB1822298a40aD9e24BbCbFC09cE4C5c0D82FCB54 | Verified |
| PactCatCardsV6 | 0x3538E2Ad1e9CC0e2e97E0C9352406936f72bB49E |
The manifest, with runtime code hashes, the minter, invite signer and guardian addresses and
the timing, is in
deployments/avalanche-fuji-v6-gem-prototype.json.
How it differs from the USDC generation:
PactGemV6 is an ERC-20 with 6 decimals and an immutable minter.
The only movements are a mint by the minter, holder to vault (the vault's own
transferFrom), vault to holder, and a holder burning its own gems. approve works only for
the vault. The minter cannot burn. Gems cannot be bought, sold or sent to another person.PactCatCardsV6 is an ERC-1155 whose transfers and approvals
always revert; only the minter can mint.PactGemRegistryV6 runs Walking (0), Working (1) and Proof
(2) pacts, each with its own settlement module and verifier. Every action names the domain it
expects. The settlement module is the same contract as in the USDC generation.The first gem-registry pact settled on 19 October 2026 in
0x6997f716…daae:
a two-person photo-proof pact where nobody sent proof, so each member got their 50 gems back.
App users never see a wallet, gas or a chain. They sign in with a passkey, and their passkey smart account sends sponsored transactions for them. Underneath:
This is the beginning of the README. Read the rest at the original. Read the full README ↗