Skip to content

Latest commit

 

History

History
109 lines (70 loc) · 4.04 KB

File metadata and controls

109 lines (70 loc) · 4.04 KB

Wallet Runtime Compatibility

PrivateDAO is prepared for real wallet-based review and operator use on Devnet, but wallet compatibility is treated as a runtime property that must be observable rather than assumed.

Supported Runtime Surface

The current browser surface detects and works with injected Solana wallet providers such as:

  • Phantom
  • Solflare
  • Backpack
  • Glow
  • compatible injected providers exposed through window.solana

Why This Matters

For a governance product, wallet behavior is part of the security surface.

If provider detection, signing, or transaction broadcast paths are brittle, reviewers will correctly treat the product as operationally weak even if the protocol logic is solid.

Current Browser-Side Protections

The current frontend hardening includes:

  • provider-specific detection and fallback resolution
  • connection-path fallback across connect, request, and enable
  • wallet public-key extraction across multiple provider response shapes
  • delayed public-key readiness polling after connection so injected providers have time to expose the selected account
  • transaction-path fallback across:
    • sendTransaction
    • signAndSendTransaction
    • signTransaction
  • runtime session rehydration
  • disconnect and account-change handling
  • interactive diagnostics for provider and RPC visibility

Diagnostics Entry Point

Use the live diagnostics page:

  • https://privatedao.org/diagnostics/

This surface exposes:

  • connected provider identity
  • connected public key
  • detected provider states
  • runtime wallet capabilities
  • browser capability flags
  • current RPC health
  • canonical program and PDAO anchors

Compatibility Matrix

The repository now also publishes a generated wallet compatibility matrix:

  • docs/wallet-compatibility-matrix.generated.md
  • docs/wallet-compatibility-matrix.generated.json

This makes the supported wallet surface reviewer-visible in a structured way instead of leaving it implied by scattered UI text.

Real-Device Runtime Intake

Repository-side diagnostics are no longer the only runtime-facing proof surface.

PrivateDAO now publishes a real-device runtime intake package:

  • docs/runtime/real-device.md
  • docs/runtime/real-device-captures.json
  • docs/runtime/real-device.generated.md
  • docs/runtime/real-device.generated.json

This keeps desktop and mobile wallet QA tied to a canonical capture registry instead of leaving that work as an informal future note.

PrivateDAO also publishes a browser-wallet runtime intake package for the live web lane:

  • docs/runtime/browser-wallet.md
  • docs/runtime/browser-wallet-captures.json
  • docs/runtime/browser-wallet.generated.md
  • docs/runtime/browser-wallet.generated.json

This keeps browser-wallet runtime claims tied to captured injected-wallet runs instead of treating build success as runtime proof.

Sustained Runtime Signal

The repository also publishes a read-only Devnet operational canary:

  • docs/devnet-canary.generated.md
  • docs/devnet-canary.generated.json

This canary is intentionally lighter than the multi-wallet stress harness. It exists to provide a sustainable operational signal for RPC health and canonical Devnet anchor visibility between heavier stress runs.

Runtime Connection To Additive Hardening

Wallet compatibility matters even more for the additive hardening path, because the stricter proposal lifecycle still depends on normal wallet-based signing and broadcast.

When validating that stricter path, pair wallet runtime evidence with:

  • docs/test-wallet-live-proof-v3.generated.md
  • docs/governance-hardening-v3.md
  • docs/settlement-hardening-v3.md

This keeps runtime QA connected to the exact governance and settlement hardening flows rather than treating wallet checks as a separate surface.

Honest Boundary

The repository can harden wallet logic and diagnostics, but it cannot claim universal compatibility for every wallet release on every platform without real runtime testing.

That is why the browser surface now exposes diagnostics directly instead of hiding wallet assumptions behind static text.