Skip to content

Dashboard — Architecture ​

🏛️ Application Layout & Data Flow ​

┌─────────────────────────────────────────────────────────┐
│                 REACT / NEXT.JS FRONTEND                │
│  - Form State Management (PolicyDraft)                  │
│  - Status Cards & Telemetry Feed                        │
└────────────────────────────┬────────────────────────────┘
                             │
            Call Operations via lib/guard/*
                             │
                             ▼
┌─────────────────────────────────────────────────────────┐
│                    LIB / GUARD MODULES                  │
│  - guardOps.ts (deploy, initialize, set_policy, freeze) │
│  - policyForm.ts (validates draft & serializes ScVal)   │
│  - wallet.ts (Freighter Wallet API integration)         │
│  - chain.ts (Soroban RPC read queries)                  │
└────────────────────────────┬────────────────────────────┘
                             │
            Sign & Broadcast via Freighter Wallet
                             │
                             ▼
                    Soroban RPC Network

🔒 Client-Side Operations ​

  • deployGuard(): Computes salt, predicts contract address pre-signing, deploys WASM instance, and re-reads bytecode to confirm verification.
  • initializeGuard(): Binds admin wallet address and agent's 32-byte Ed25519 public key.
  • installPolicy(): Validates form fields, encodes GuardPolicy struct into ScVal map, and submits set_policy.
  • freezeGuard(): Submits admin freeze() transaction.
  • unfreezeGuard(): Submits admin unfreeze() transaction.
  • rotateAgentKey(): Submits admin rotate_agent_key() transaction.