Implementation status
Report date: 2026-10-19 (UTC). Everything below was verified by running it; anything not listed as verified should be treated as untested.
Implemented and tested
| Area | What exists | Verification |
|---|---|---|
| Ohge Guard program | Vault PDA as token authority; policy (assets, limits, venues, adapters, window, slippage, reference requirement, freshness, confidence, drawdown); session register/revoke; pause/resume; deposit/withdraw; execute_orca_swap with every rule enforced atomically around one Whirlpool swap CPI; trip_breaker and rebase_hwm; events. | anchor build with Anchor 1.0.2; 27 of 27 tests pass on solana-test-validator with the real Orca program, the mainnet SOL/USDC pool and the Pyth SOL/USD + USDC/USD accounts cloned from mainnet-beta (onchain/tests/ohge_guard.ts, 33 s). |
| Adversarial coverage | Non-owner policy change, session cannot withdraw/set policy/pause/register/revoke/re-base, Token-2022 mint rejected, past/over-long expiries, replayed nonce, stale policy version, expired and over-long intents, unknown adapter, stranger authority, venue/mint/adapter not allowed, per-trade and per-window limits, concurrent intents (two at once, same nonce twice), venue cannot deliver min_out (no state change), reference floor, missing/substituted/mismatched price accounts, stale price, wide confidence, pause blocks trades while withdrawals work, destination substitution, revoked and expired sessions, drawdown fail-closed until re-base, valuation accounts required, breaker trip after real fee losses, withdrawals while tripped, full deposit → session → trade → revoke → withdraw flow. | Same suite. |
| Real swaps | Session-signed SOL→USDC and owner-signed USDC→SOL swaps executed through the guard on the cloned mainnet pool, balance deltas and the TradeExecuted event decoded from the confirmed transaction. | Same suite. |
| TypeScript mirrors | Pyth decoding and the exact integer math of the program, tick-array and oracle PDAs (checked against mainnet addresses), wallet sign-in (nonce, domain, replay, tampering), job queue (dedupe, per-vault serialisation, backoff), rebalancing candidate and intent validation, intent schema. | pnpm test: 17 Vitest tests pass. |
| Web app | Landing (3D scene with static/reduced-motion/WebGL fallbacks), dashboard routes /app, /app/setup, /app/rules, /app/agent, /app/activity, /app/settings, /docs/*, API routes, CSP and security headers. | pnpm typecheck clean; pnpm lint (0 errors); pnpm build ok; pnpm smoke against the production server: 64 of 64 checks pass (headless Chrome at desktop, phone and reduced-motion widths, console-error free; screenshots in smoke-out/). |
| Worker | Durable PostgreSQL job queue, heartbeat, scheduling of proposals, reconcile pass, execution path with simulation, signer abstraction (local-file encrypted at rest, remote-http). | pnpm worker:once against the embedded PostgreSQL (reconcile job processed, heartbeat visible in /api/status). |
Deployment (2026-10-20)
- Web: https://ohge.vercel.app (Vercel team flow3515, project
ohge, CLI upload, no git), devnet build, CSP + security headers on.NEXT_PUBLIC_SITE_URLpinned to the alias. - Database: Neon Postgres
ohge-dbcreated through the Vercel integration (us-east-1); migrations applied from the operator machine with the direct (unpooled) URL;AUTO_MIGRATE=0in production. - Agent worker: Docker container
ohge-workeron the operator VPS (deploy/Dockerfile.worker,deploy/docker-compose.vps.yml), same database,local-filesigner with an encrypted volume, Anthropic provider (Claude Opus 5.5). The live/api/statusshows its heartbeat. Because the web host holds no signing material, session keys are minted by the worker through acreate_session_keyjob (the UI polls until the key appears); this path is implemented and type-checked but has not yet been exercised with a signed-in wallet. - Devnet program deployed (2026-10-20):
3Qxczmd9oWJre9ZERhkBjXjCdkQueuCoXQALivnzkM45(upgrade authority = deployer2GPNXtm59nBbLLCL1r8HokwGeKVaoJARQX5kkqdmkZsu, deployed withsolana program deployfrom the Anchor container after the faucet funded it). Site and worker run with that id. - Devnet journey verified on the public cluster with
scripts/devnet-flow.mts(owner = the deployer key, session = a throwaway key): vault8scrd54rextrwLSaSU8whBGuhQ4DfofW2qxnd4tYukm7, set_policy5P6hXrS4…, deposit2RjDpjKY…, register_session2TsLrRig…, execute_orca_swap signed by the session key `4TG8JEuABKg8fFKnBErHbBaah1M8aukFnvzQyNT4SoExAZ7RqxmaxJHGaBCpvhUiiE4evnCnEYLb5iDqqtZ9pxaw` (0.01 SOL → 0.221939 devUSDC on the Orca devnet pool,TradeExecuteddecoded from the confirmed transaction), replay rejected (nonce), revoke33cMEFBu…, withdraw WSOL5s5YDTav…and devUSDC3ybDEbGN…; vault empty afterwards. The same transactions were recorded through the live API after a wallet sign-in and appear on the landing page and in Activity. - Still untested with a browser wallet extension: the dashboard clicks themselves (Phantom/Solflare signing). The instructions they send are the ones exercised above.
Landing data and token block (2026-10-20)
- The landing page shows live reads only: Pyth SOL/USD and USDC/USD from mainnet and devnet, the Orca pool spot prices, a sample policy check (0.1 SOL at 1% slippage) computed with the program's integer arithmetic, the control-room status (program, worker heartbeat, signer, database, counts) and the latest confirmed executions decoded from their transactions (
/api/public/landing, cached 20 s). The order animation in the room remains decorative and is labelled as such; the demonstration pause button is gone and the room dims when the worker is really offline. $OHGEtoken block: published 2026-10-20 —8dksc1aUPP1hCE3Ru2oNiEtXgQvTmmP6WwdHXqd5pumpon mainnet-beta, verified on chain as a Token-2022 mint named "Ohge" (OHGE), 6 decimals, 1,000,000,000 supply, no mint authority; acquire link pump.fun.config/token.jsonholds it.pnpm token:ca <mint> [--network=…] [--acquire=<url>]verifies the mint on chain (decimals, supply, authority, Metaplex name) and ships;pnpm token:ca soonreverts.- Domain: https://ohgesol.xyz (bought on Vercel by the owner; apex canonical, www and *.vercel.app redirect to it). X: https://x.com/OhgeAI.
Network used for verification
Local solana-test-validator with mainnet-beta state cloned at startup (program, pool, tick arrays, Pyth accounts). The program keypair 3Qxczmd9oWJre9ZERhkBjXjCdkQueuCoXQALivnzkM45 is the one the tests deploy locally.
Not yet done or not exercised
- Devnet deployment: prepared (deployer
2GPNXtm59nBbLLCL1r8HokwGeKVaoJARQX5kkqdmkZsu, build artifacts on the build host) but not performed: the devnet faucet refused airdrops from both available IPs on 2026-10-19. Fund the deployer with about 3 devnet SOL and runanchor deploy --provider.cluster devnetfromonchain/, then setNEXT_PUBLIC_GUARD_PROGRAM_ID_DEVNET/GUARD_PROGRAM_ID. - End-to-end wallet journey on devnet (Phantom/Solflare signing in the browser, deposit, policy, session, trade, withdraw) could therefore not be run against a public cluster; the same instructions are exercised by the on-chain suite and the browser flows were smoke-tested without a wallet extension.
- LLM providers: Anthropic (structured output, Claude Opus 5.5 by default) and OpenAI-compatible adapters are implemented but were not called with live keys; the
scriptedprovider ran. - Remote signer (
remote-http): implemented, untested against a real service. - Mainnet: not deployed, not assessed, no audit. The program and the app are unaudited.
External services still requiring configuration
DATABASE_URL (PostgreSQL), SESSION_SECRET, LLM_PROVIDER + key, SIGNER_PROVIDER (+ OHGE_SIGNER_KEY or remote signer URL/token), RPC endpoints (SOLANA_RPC_URL for the server/worker), the deployed program id per network, and a host for the long-running worker.
Unsupported features
Leverage, lending, perps, bridging, arbitrary transfers by the agent, aggregator-routed swaps, Token-2022 assets, multiple concurrent sessions, portfolio-allocation limits enforced onchain (bands are an off-chain strategy parameter), reference-price protection for markets without a Pyth feed (shown as unsupported).
Remaining review and audit requirements
- Independent security audit of
onchain/programs/ohge_guard(arithmetic, account validation, CPI surface, breaker semantics). - Review of the worker's operational controls (key handling, RPC failure modes, restart recovery) in the target hosting environment.
- A production signer (HSM/KMS) and an operations runbook before any mainnet use.