feat: proposal for OWS wallet plugin#6682
feat: proposal for OWS wallet plugin#6682kevarifin14 wants to merge 1 commit intoelizaOS:developfrom
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| # OWS Wallet Plugin Proposal | ||
|
|
||
| Proposes adding OWS (Open Wallet Standard) as a wallet backend for ElizaOS agents. | ||
|
|
||
| Currently, agent plugins expect private keys via environment variables | ||
| (EVM_PRIVATE_KEY, SOLANA_PRIVATE_KEY). OWS would encrypt these keys | ||
| at rest in a local vault, decrypted only during signing. | ||
|
|
||
| See https://openwallet.sh |
There was a problem hiding this comment.
Wrong location and filename for a skill
All skills in this package live under packages/skills/skills/<skill-name>/SKILL.md (e.g. skills/1password/SKILL.md, skills/crow/SKILL.md). This file is placed at the package root with a _proposal.md suffix, which means the skill loader (loadSkillsFromDir) will never discover it and it will have no effect at runtime.
If this is meant to be an actual skill, it should be moved to packages/skills/skills/ows/SKILL.md. If it is only a design proposal, it does not belong in packages/skills/ at all — a GitHub Discussion, issue, or docs/ entry would be a more appropriate home.
| # OWS Wallet Plugin Proposal | ||
|
|
||
| Proposes adding OWS (Open Wallet Standard) as a wallet backend for ElizaOS agents. | ||
|
|
||
| Currently, agent plugins expect private keys via environment variables | ||
| (EVM_PRIVATE_KEY, SOLANA_PRIVATE_KEY). OWS would encrypt these keys | ||
| at rest in a local vault, decrypted only during signing. | ||
|
|
||
| See https://openwallet.sh |
There was a problem hiding this comment.
Missing required YAML frontmatter
Every skill in this package must begin with a YAML frontmatter block. The README.md documents the required fields (name, description) and optional fields (primary-env, required-bins, required-env, etc.). Without this block the skill loader will reject the file.
A minimal valid header for this skill would look like:
---
name: ows
description: Load EVM, Solana, and other chain private keys from an OWS encrypted vault instead of plain-text environment variables.
homepage: https://openwallet.sh
primary-env: node
required-bins:
- node
---
| # OWS Wallet Plugin Proposal | ||
|
|
||
| Proposes adding OWS (Open Wallet Standard) as a wallet backend for ElizaOS agents. | ||
|
|
||
| Currently, agent plugins expect private keys via environment variables | ||
| (EVM_PRIVATE_KEY, SOLANA_PRIVATE_KEY). OWS would encrypt these keys | ||
| at rest in a local vault, decrypted only during signing. | ||
|
|
||
| See https://openwallet.sh |
There was a problem hiding this comment.
Stub content — no actionable instructions for the agent
Compare with the existing skills (e.g. skills/1password/SKILL.md or skills/crow/SKILL.md): each skill provides a full workflow, concrete commands/code examples, guardrails, and references. This file has 9 lines and only links to an external website.
The PR description already contains richer content (installation snippet, exportWallet call, multi-chain list, encryption details) — none of that made it into the file. For the skill to be usable, the body should include at minimum:
- Installation steps (
npm install @open-wallet-standard/coreor equivalent) - Vault creation / key import workflow
- Example code for reading a key at signing time
- Guardrails (never log raw keys, vault backup, passphrase rotation)
Problem
Agent plugins expect private keys via environment variables (`EVM_PRIVATE_KEY`, `SOLANA_PRIVATE_KEY`). These sit in `.env` files, shell history, CI logs, and Docker build layers.
Proposal
Add an OWS wallet plugin/skill that loads keys from an OWS encrypted vault instead of env vars. Keys encrypted at rest (AES-256-GCM, scrypt KDF), decrypted only during signing.
Multi-chain support: EVM, Solana, Sui, Bitcoin, Cosmos, Tron, TON — all from one vault.
Greptile Summary
This PR adds a single markdown file (
packages/skills/ows_proposal.md) proposing an OWS (Open Wallet Standard) wallet skill that would load private keys from an encrypted local vault instead of plain-text environment variables.\n\nThe change is not ready to merge in its current form for several reasons:\n\n- Wrong path & filename: The skill loader scanspackages/skills/skills/<name>/SKILL.md. A file placed at the package root with a_proposal.mdsuffix is never discovered and has no runtime effect.\n- Missing YAML frontmatter: The skill format requires a frontmatter block with at minimumnameanddescription; this file has none, so even if relocated it would be rejected by the loader.\n- Stub content: The body is 9 lines and only references an external URL. No installation steps, no code examples, no workflow, and no guardrails are provided — everything detailed in the PR description is absent from the actual file.\n- Proposal vs. implementation: If this is purely a design proposal, thepackages/skills/directory is the wrong venue; a GitHub Discussion ordocs/entry would be more appropriate.Confidence Score: 1/5
Not safe to merge — the file is structurally invalid as a skill and adds no functional value to the codebase in its current form.
The single changed file is misplaced (package root instead of
skills/<name>/SKILL.md), missing mandatory YAML frontmatter, and contains only a 9-line stub with no agent-actionable instructions. It cannot be loaded by the skill system as-is, and a pure proposal document does not belong in a runtime package.packages/skills/ows_proposal.md — needs to be relocated, given proper frontmatter, and filled with a complete workflow before it can function as a skill.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[Agent needs private key] --> B{Key source?} B -- "Current (env vars)" --> C["process.env.EVM_PRIVATE_KEY"] B -- "Proposed (OWS vault)" --> D["exportWallet('my-agent-wallet')"] D --> E[OWS encrypted vault\nAES-256-GCM / scrypt KDF] E --> F[Decrypt key in-memory\nonly during signing] F --> G[Sign transaction] C --> G G --> H[Broadcast to chain\nEVM / Solana / Sui / etc.] style E fill:#f9f,stroke:#333 style D fill:#bbf,stroke:#333Reviews (1): Last reviewed commit: "feat: proposal for OWS wallet plugin" | Re-trigger Greptile
(3/5) Reply to the agent's comments like "Can you suggest a fix for this @greptileai?" or ask follow-up questions!