AegisAEGIS
Open Wallet Standard

OWS Integration

Multi-chain wallet management, deterministic key derivation, and in-process transaction signing — one seed phrase, every chain.

Why OWS for Agents?

🔑

One Seed, Every Chain

Single BIP-39 mnemonic derives wallets on Solana, Ethereum, XRP, and more

🔐

In-Process Signing

Sign transactions without CLI shell-out — no race conditions

🌐

8 Chains Supported

Solana, Ethereum, Base, Bitcoin, Cosmos, Tron, TON, Sui

🧩

Deterministic

Same seed + wallet name = same address. Always. Reproducible across machines.

🛡️

Keys Never Touch Disk

Private keys derived on-demand in memory, never persisted

🔓

Open Standard

Not locked to any wallet provider — portable across frameworks


What Aegis Uses OWS For

Agent Wallet Creation

Each agent gets a unique wallet derived from the master seed + its name. "data-miner" on Solana always yields the same address.

Solana Payment Signing

All SOL transfers and receipt anchoring use signTransaction() for in-process ed25519 signatures.

Agent Identity

Wallet addresses serve as unique agent IDs. Deterministic derivation means identity is portable across deployments.


Use Cases

\uD83D\uDD11

Agent Wallet Management

One seed phrase creates unique wallets per agent per chain. 3 agents × 8 chains = 24 wallets from one seed.

signTransaction("data-miner", "solana", hex)

\uD83D\uDD10

Secure Signing

Private keys derived on-demand in process memory. Never written to disk, never passed via CLI args.

OWS sign → ed25519 signature → broadcast

\uD83C\uDF10

Multi-Chain Identity

Same agent has consistent identity across Solana, Ethereum, and XRP. Wallet address is the universal ID.

data-miner: SOL + ETH + XRP addresses

\uD83C\uDFED

Fleet Key Management

Deterministic derivation means you can reproduce any agent's wallet on any machine with the seed.

seed + name → same wallet everywhere


Architecture

Key Derivation Architecture
WALLET_SEED (BIP-39 Mnemonic — 12 or 24 words)
     │
     ▼
OWS Key Derivation Engine
     │
     ├── "data-miner" + "solana"    → ed25519 keypair → 2G55Sds...YCcq
     ├── "data-miner" + "ethereum"  → secp256k1 keypair → 0x1234...
     ├── "analyst" + "solana"       → ed25519 keypair → CePyeK...eSkL
     ├── "analyst" + "ethereum"     → secp256k1 keypair → 0x5678...
     └── "research-buyer" + "solana"→ ed25519 keypair → 9LK89M...Y22A

Same seed + same name + same chain = same wallet. Always.

Transaction Signing

Sign a Solana transaction in-process
import { signTransaction } from "@open-wallet-standard/core";

// Build your transaction (e.g., Solana SystemProgram.transfer)
const messageBytes = transaction.serializeMessage();
const messageHex = Buffer.from(messageBytes).toString("hex");

// Sign in-process — key derived from seed, never touches disk
const result = signTransaction(
  "data-miner",    // wallet name
  "solana",        // chain
  messageHex       // serialized transaction as hex
);

// Add signature to transaction
const signatureBytes = Buffer.from(result.signature, "hex");
transaction.addSignature(fromPubkey, signatureBytes);

// Broadcast the fully-signed transaction
const txHash = await connection.sendRawTransaction(transaction.serialize());

Why in-process signing matters

  • No CLI shell-out — avoids blockhash race conditions
  • No private key in environment variables or command args
  • Key derived, used, and discarded in the same process
  • Atomic: sign + broadcast happens in sequence, no gap

Key Derivation

OWS uses deterministic key derivation: seed + wallet name + chain = keypair. The same inputs always produce the same output.

Deterministic wallet addresses
// Same seed, different agents → different wallets:
"data-miner"     on Solana → 2G55SdspdgSLcrXm3ZcfSHuDhvuhXtQLWqf1zVbAYCcq
"analyst"        on Solana → CePyeKXCtB6RzAatosDnnun3yryUzETKXA5rNEjPeSkL
"research-buyer" on Solana → 9LK89Mk3xQP3qf3bJjxW8Qe9HoiPer4EisY5tUoPY22A

// Same seed, same agent, different chain → different wallet:
"data-miner" on Solana   → 2G55Sds... (ed25519)
"data-miner" on Ethereum → 0x1a2b3c... (secp256k1)

// Deploy on a new machine with the same seed → identical wallets

Multi-Chain Support

ChainKey TypeStatus
Solanaed25519Active
Ethereumsecp256k1Active
Basesecp256k1Active
Bitcoinsecp256k1Planned
Cosmossecp256k1Planned
Tronsecp256k1Planned
TONed25519Planned
Suied25519Planned

Payment Flow with OWS

1

Agent receives payment request

x402 Gate responds with 402 status + payment details (price, token, chain, recipient).

2

Gate builds Solana Transaction

SystemProgram.transfer with amount in lamports, from agent to recipient.

3

Transaction serialized

Transaction message serialized to bytes, converted to hex string.

4

OWS signs in-process

signTransaction() derives the key from seed + wallet name, produces ed25519 signature.

5

Signature added to transaction

Raw signature bytes added to the Transaction object.

6

Broadcast to Solana RPC

Signed transaction sent via sendRawTransaction, then confirmed.

7

Receipt anchored

SHA-256 receipt hash written to Solana Memo program as immutable proof.


Security Model

Keys never touch disk

Private keys are derived on-demand in process memory and discarded after signing.

In-process signing

No IPC, no CLI shell-out. Sign and broadcast happen atomically in the same process.

No blockhash race

Previous approach: CLI sign → delayed broadcast → expired blockhash. OWS: sign → broadcast instantly.

Single secret

The BIP-39 seed phrase is the only secret. Protect it, and all agent wallets are secure.

CRITICAL: Never commit WALLET_SEED

Store it in .env (gitignored) or a secrets manager. Anyone with the seed can derive all agent wallets and sign transactions.


Setup Guide

.env
# BIP-39 mnemonic phrase (12 or 24 words)
WALLET_SEED="your twelve word mnemonic phrase goes here for wallet derivation"

# Generate a new seed:
# npx @open-wallet-standard/cli init
Install dependency
npm install @open-wallet-standard/core

Same seed = same wallets

If you deploy agents on multiple machines with the same WALLET_SEED, they'll derive identical wallet addresses. This is by design — deterministic key derivation makes agent identity portable.


Hackathon Ideas

Wallet Infrastructure

Multi-chain agent identity system — one seed, portable identity across all chains

Security Track

Zero-knowledge agent wallet management with on-demand key derivation

Agent Framework

Pluggable wallet backend for any agent framework (LangChain, CrewAI, AutoGPT)

Enterprise

HSM-backed OWS for institutional agent deployments with audit trails


API Reference

FunctionParametersReturns
signTransactionwalletName, chain, messageHex{signature: string}