Platform & Trust
Wallet & Security
How wallet connection works, what watch mode means, and what safety boundaries users should understand.
Supported Wallets
MetaMask, Rabby, Coinbase, Trust, OKX
Fallback Mode
Manual watch-only address
Demo Warning
Testnet-first and non-custodial UI
Wallet modes in this app
Security notes
- The app does not custody funds in the code shown here; it orchestrates wallet context, optimization output, and proof storage metadata.
- Because this is a demo-oriented product, testnet language should remain explicit unless you have a fully configured mainnet environment.
- A proof receipt is not the same thing as guaranteed profitable execution. It is evidence of what the app produced and stored, not a promise of future APY.
- Do not commit `.env.local`, API keys, private keys, access tokens, or wallet secrets into Git.
What the app stores in 0G Storage
The proof route writes a compact JSON proof package that is meant to support verification and replay of the optimization result. In the current implementation, this package can include the optimization decision, timestamp, wallet-scoped metadata, and a portfolio snapshot when the client provides it.
That means the stored record is useful for auditability, but it should be described honestly: it is proof-oriented application data, not zero-knowledge private portfolio storage.
How network switching works
When a supported injected wallet is connected, the sidebar can request a network switch or add the target chain if it is missing.
The selected network is also saved into local storage and cookies so the rest of the app can fetch portfolio and proof data consistently across reloads.
Demo wallet consistency
The current default demo wallet is 0x8a3c7524Aaed081825aC88eC7f4cCECFc583ee7D. If `NEXT_PUBLIC_DEMO_WALLET_ADDRESS` is set, the app uses that value; otherwise it falls back to the repository default.
Keep documentation, screenshots, and spoken demos aligned with the active demo wallet to avoid confusing reviewers when the address shown in the sidebar differs from the docs.