Skip to content

Add crypto wallet and trading workflows to the OpenHuman agent #104

@ElioNeto

Description

@ElioNeto

Issue imported from tinyhumansai/openhuman#1394
Created at: unknown


Summary

Add a first-class crypto workflow to OpenHuman so the desktop app can onboard a recovery phrase, expose chain-specific wallets to the core agent runtime, and safely execute crypto and prediction-market actions through explicit tool boundaries.

Problem

OpenHuman already hints at this direction in several places, but the feature is not actually wired end-to-end today:

  • app/src/pages/Mnemonic.tsx and app/src/components/settings/panels/RecoveryPhrasePanel.tsx already manage a BIP39 recovery phrase for encryption setup.
  • app/src/utils/cryptoKeys.ts can derive an AES key and a first EVM address from a mnemonic.
  • src/openhuman/app_state/ops.rs persists a single primary_wallet_address locally.
  • app/src/components/settings/panels/ConnectionsPanel.tsx and src/openhuman/about_app/catalog.rs already advertise Web3 wallet / crypto exchange connections as coming soon.

What is missing is the real product path: chain-aware wallet state in the Rust core, a permissioned tool surface for onchain actions, an agent specialized for these transactions, and exchange / market integrations that fit the existing controller + agent architecture.

Constraints:

  • Desktop-first Tauri app; wallet logic should live in the Rust core and React app, not in ad hoc shell-only flows.
  • Recovery phrases, private keys, and signing material must remain local and never be logged.
  • The implementation should follow the existing controller registry, built-in agent, capability-catalog, and E2E-first workflow described in AGENTS.md and gitbooks/developing/architecture.md.

Solution (optional)

Break the work into four implementation tasks:

The preferred architecture is:

  • React app for UX, consent, confirmations, and wallet status.
  • Rust core for key custody, chain adapters, controller schemas, tool implementations, and policy gates.
  • Built-in agent definitions under src/openhuman/agent/agents/ for domain-specific execution.
  • Capability-catalog updates under src/openhuman/about_app/ whenever user-facing capability scope changes.

Acceptance criteria

  • Recovery phrase + wallets — the app can set up or import a recovery phrase, derive supported chain wallet identities, and expose them through core-owned state with explicit privacy handling.
  • Crypto tools — the core exposes permissioned wallet tools for balances, sends, swaps, and contract interactions through the normal controller / tool registry path.
  • Dedicated agent — a crypto-specialized built-in agent exists with a narrow tool allowlist and clear routing guidance.
  • Trading integrations — Polymarket, Kalshi, and Hyperliquid integration work is scoped and landed behind explicit tool / controller seams.
  • Capability catalog + docssrc/openhuman/about_app/ and relevant architecture / feature docs reflect the new user-visible capabilities and privacy boundaries.
  • Diff coverage ≥ 80% — the implementing PR meets the changed-lines coverage gate (Vitest + cargo-llvm-cov, enforced by .github/workflows/coverage.yml).
  • Follow-up issues created — the implementation streams remain split into the linked task issues.

Related

  • app/src/pages/Mnemonic.tsx
  • app/src/components/settings/panels/RecoveryPhrasePanel.tsx
  • app/src/components/settings/panels/ConnectionsPanel.tsx
  • app/src/utils/cryptoKeys.ts
  • src/openhuman/app_state/ops.rs
  • src/openhuman/app_state/schemas.rs
  • src/openhuman/about_app/catalog.rs
  • src/openhuman/agent/agents/loader.rs
  • gitbooks/developing/architecture.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    agentBuilt-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/.featureNet-new user-facing capability or product behavior.rust-coreCore Rust runtime in src/: CLI, core_server, shared infrastructure.securitySecurity, encryption, approvals, credentials, and trust boundaries.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions