Policyvault

io.github.zapsoblige-hash由 GitHub 账号 zapsoblige-hash 发布v1.6.2更新于 Oct 24, 2026

Non-custodial Kaspa policy enforcement for AI agents; signers retain custody.

概览

AI 生成的概览

PolicyVault 的 MCP 客户端:让 AI 代理在所有者设定的 Kaspa 金库契约限额内发起非托管的支出请求。

可以做什么
  • 向 PolicyVault 金库发起委托支出请求,由契约执行单笔上限、周期预算与收款白名单
  • 执行受支持的模拟与试运行检查
  • 校验具体操作,供外部签名者在签名前核对
  • 读取凭据权限范围内的金库、策略与审计信息
  • 对无权处理的请求进行报告或拒绝
  • 不提供签名、提交或创世工具,工具本身不持有密钥
适用场景
适用于希望让代理、机器人或服务在所有者设定的限额内发起 Kaspa 金库付款、但绝不掌握托管权或签名权的场景。适合已运行 PolicyVault 金库(托管或自建)并希望由代理准备和校验请求、由人工或外部签名者保管密钥的团队。
运行要求
以 stdio 方式在本地运行 npm 包 policyvault-mcp(需 Node.js)。需要 POLICYVAULT_MCP_SERVER_URL(托管或自建 PolicyVault 服务器的裸源地址)以及密钥 POLICYVAULT_MCP_TOKEN(由金库运营方按所需权限铸造的机器身份 bearer 凭据)。可选的 POLICYVAULT_MCP_SCOPES 用于收窄对外公布的工具有效范围。需要能访问 PolicyVault 服务器的网络。
安装前请注意
该令牌是 bearer 凭据,拥有运营方授予的全部权限,应妥善保管并尽量缩小范围;可选的作用域列表只影响工具展示,实际限制在服务端执行。工具可创建支出请求并拒绝或撤回请求,会改变金库状态。托管访问目前免费,但 Kaspa 网络手续费仍需支付。项目声明未进行外部专业安全审计,其移动端应用尚不具备生产可用性。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Policyvault,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

PolicyVault

Non-custodial delegated-spending vaults on Kaspa L1 — for people and AI agents.

PolicyVault lets a vault owner hand a spending key to an agent — an employee, a service, a bot, or an AI agent — without handing over control of the funds. The spending policy is enforced by Kaspa L1 consensus through a covenant: even an agent who bypasses this entire application and talks directly to a Kaspa node cannot exceed the owner's policy.

The authority model, stated once and everywhere enforced:

AI MAY REQUEST. POLICYVAULT DETERMINISTICALLY DECIDES. THE COVENANT ENFORCES. SIGNERS RETAIN CUSTODY.

Production status (honest labels)

SurfaceStatus
Web / Agent platformService at https://app.policy-vault.org; served health identifies the active build. This tree corresponds to fullscale-rc45 build 1fa26b33, the reconciliation and delegate period-start remediation successor of fullscale-rc44 (df5b8de).
Current production sourceThis tree is v1.10.11 (fullscale-rc45), image sha256:32d45a3096b29eefc0dd97f2fc1e582ee00cb32236bbd7293c6626fd8bd4652d; its published predecessor is v1.10.10. Preparation does not imply deployment; served health identifies the active build.
Organizational M-of-N owner root (covenant v0.7)The existing RC40 mainnet generation policy is retained. This release does not change creation authority, covenant bytes or native-KAS status labels.
Rooted-vault owner operations in the browser (R7-05) + reservation/withdrawal guidance (F-6)Retained; signing-threshold behavior is unchanged. Rooted-vault owner operations and approvals change in this release; the changelog's delegate period-start and organization-root items list the changes, among them: a delegate rule change of a policyvault-0.7-kas treasury must collect every owner approval and be finalized within the new or changed delegate's budget period minus ten minutes of the build (never less than one minute; 50 minutes for a 1-hour period), and the root request shows its finalize deadline; after it PolicyVault does not finalize the request, which can then only be withdrawn and built again (the web has no input for a later start), and such a request that was never attempted can be withdrawn although it carries owner approvals; a new delegate of a policyvault-0.7-kas treasury starts its budget period at the network position read when Build is pressed and an installed delegate's wallet on such a treasury is changed by removing and re-adding the delegate; a root request is refused when it spends an output that the node does not report unspent; hosted builds, finalize and broadcast on a treasury that Verify left UNRESOLVED are refused (an approval of an existing delegate request on it is still recorded but cannot reach the chain, and a withdrawal of a delegate request on it and a Verify of it still answer); Verify can attribute a root move broadcast outside PolicyVault to the recorded request whose transaction made it; and a finalized root request's Submit first reads its inputs and, after an input was spent by another transaction, the request can be withdrawn in two steps. Five served assets (app-v4.js, app.js, kas-vault-ui.js, org-root-ui.js, refusal-explain.js) change for v0.4-family Verify, request, delegate period-start, legacy-console and organization-root presentation.
Hosted tenancy for every route family + generation gate (rc11 remediation)LIVE — closes the rc8 findings (unauthenticated hosted builds, prototype-derived version selection, unsafe mainnet creation of the non-standard v0.4 generation)
Post-launch live-stack review corrections (rc29: webhook target policy + DNS transport, SDK transport recovery key, legacy same-effect completion ownership, image/package LICENSE + NOTICE, privacy-safe runtime artifacts, recovery guidance)IN THIS SOURCE and in the fullscale-rc29 image — every finding of the independent read-only review of the running rc28 stack corrected RED-first with a permanent regression; the hosted deployment carries them once the served buildId reads f217011; installed SDK / mobile clients must upgrade for the transport correction
Second post-launch review corrections (rc30: webhook response-socket lifetime bound; upstream Silverscript ISC notice beside the compiler and the reference program)IN THIS SOURCE and in the fullscale-rc30 image — both findings of the independent read-only launch review of the running rc29 stack corrected RED-first with a permanent real-socket regression; the hosted deployment carries them once the served buildId reads 9dbc5f7; no SDK / mobile client byte changed
Organization UI availability correction (rc31: organizational-root creation offered only where capability discovery advertises it; generation refusals say that address/amount changes cannot enable an unsupported mainnet generation; build errors scoped to the wizard)IN THIS SOURCE and in the fullscale-rc31 image — the owner-observed RC30 finding, corrected RED-first with a 13-case DOM regression that drives the real page and scripts (synthetic wallet, intercepted HTTP); browser presentation only — the server / SDK generation gates are unchanged and remain the authority; no SDK / mobile client byte changed
MCP package (policyvault-mcp on npm)Unchanged [email protected], SHA256 128403f81d4af7b73ae86a31a750d39ec21c28f518d214f4e678807c3dff0c14. No genesis, signature or submission tool is exposed. Against this server, retrying the same MCP request after an uncertain outcome is refused (IDEMPOTENCY_OUTCOME_UNKNOWN, or IDEMPOTENCY_IN_PROGRESS after a server or store failure) or returns the retained result, instead of executing the operation again. The reject tool reports 403 REQUEST_FORBIDDEN when the credential's wallet takes part in the vault but is neither the request's signer nor the vault owner. A delegate period start sent through MCP is a lower bound; 422 PERIOD_START_REQUIRED reaches the caller as a REFUSED envelope (no MCP tool reaches the later checks that answer 409 PERIOD_START_STALE).
Flagship wave 1 (v1.6.0 / v1.7.0) and wave 2 (v1.8.0) sourceINCLUDED and LIVE where applicable (see their CHANGELOG entries; v0.6 stays FIXTURE VENUE ONLY / no mainnet swap; x402 facilitator PRODUCTION-READY, NOT deployed; MCP usage telemetry OFF)
Covenant protocol v0.6 (atomic composability)COVENANT-BYTE-FROZEN (2026-09-03): VM-verified on the real engine with production bytes and testnet-verified (live testnet-10 SELL + BUY). FIXTURE VENUE ONLY — no real DEX venue, no mainnet swap, no server/web/mobile/MCP surface, deadlineDaa is a pre-sign boundary and not a consensus expiry, and swaps are not economically viable below roughly 10 KAS. PolicyVault is not a DEX and will not become one. See docs/postlaunch/v0.6-covenant-byte-freeze.md
v0.5 token-controller covenant (byte-frozen) + least-privilege discovery / console correctives + MCP 1.4.2 (v1.5.0)LIVE — production runtime successor fullscale-rc8 (buildId 1c02162) deployed and automated-accepted on 2026-09-02: principal-scoped capability discovery, no dev-signer probe on production, zero privileged reads while signed out, opt-in wallet diagnostics; [email protected] advertises only the tools a credential's scopes cover (server-side enforcement unchanged). The v0.5 TOKEN CONTROLLER covenant (contracts/PolicyVault.v0.5.sil, sha256 c693aeff…) ships as SOURCE — COVENANT-BYTE-FROZEN, VM-verified with production bytes and testnet-verified with one live lifecycle; NOT production (no v0.5 surface, no mainnet v0.5 vault). Illustrated onboarding walkthrough (presentation only). See CHANGELOG
Distribution: MCP registry, agent examples, self-hosting (v1.4.0)Source/distribution release — NO runtime change (production keeps buildId 6c3177f): the MCP server is npm/registry-packaged (policyvault-mcp, io.github.zapsoblige-hash/policyvault), thin OpenAI-Agents-SDK/LangChain/CrewAI wiring examples ship in examples/agents/, and one-command self-hosting ships in deploy/selfhost.sh + docs/selfhost-quickstart.md; see CHANGELOG
Bearer wallet-sessions + native mobile transport (v1.3.0)LIVE: opt-in bearer wallet-session authentication for non-browser clients (authentication only — never signing authority or custody; cookie web auth unchanged), plus the native Android transport (explicit CapacitorHttp at the platform seam; no CORS widening, web client stays strict same-origin). The full bearer lifecycle was proven from the real packaged Android runtime against live production; see CHANGELOG
Responsive client + quiet signed-out UX (v1.2.0)Faster signed-in navigation (retained state, parallel reads, truthful progress states — pending is never success) and no spurious signed-out error toasts; see CHANGELOG
Network-identity banner fix (v1.1.1)The web client's network banner now derives from the server's node-verified /network/status and FAILS CLOSED to an explicit UNKNOWN state — never a stale or assumed network; see CHANGELOG
In-app documentation discovery (v1.1.0)Docs link + contextual help in the web client, deep-linking to https://docs.policy-vault.org — presentation-only successor; see CHANGELOG
External-approver discovery fix (2026-08-27)DEPLOYED + AUTOMATED-ACCEPTED (fail-closed availability defect, no funds/authority/privacy exposure; see CHANGELOG "Fixed". Acceptance was automated; no human acceptance test is claimed)
Covenant protocol v0.4.1Mainnet-operational (real mainnet lifecycle evidence; see SECURITY.md for exactly what is proven and how)
Covenant protocol v0.5 (token controller)COVENANT-BYTE-FROZEN (2026-09-02): VM-verified on the real engine with production bytes and testnet-verified (live testnet-10 lifecycle, consensus-rejected negatives); not production — no server/API/web surface, no mainnet instance; see docs/postlaunch/v0.5-covenant-byte-freeze.md
Python client, MCP server, x402/AP2 adapters, platform agent APIShipped; covered by the automated conformance/integration suites in this repository
Native mobile (iOS/Android)DEVELOPMENT — NOT YET PRODUCTION-CAPABLE. The Android app (full Capacitor project in mobile/, incl. the native production transport and bearer sign-in) has been validated on a real emulator against live production — reads, full bearer auth lifecycle, fail-closed negatives — but production signing, store packaging, and camera/QR capture remain pending; do not build custody workflows on it yet
Security assuranceINTERNAL and evidence-based only: independent internal AI falsification reviews of each exact candidate (the reviewer never repairs its own candidate), hostile / adversarial testing on the real Kaspa script engine with production bytes, RED-first reproduction with permanent regressions, production-shaped mechanical verification, live testnet-10 evidence, exact artifact and frozen-byte verification, and the owner's own live mainnet validation after each deployment. No external professional security audit has occurred and none is part of PolicyVault's process (owner policy, 2026-09-05); nothing in this repository claims otherwise
  • x402 FACILITATOR (integrations/x402-facilitator/, 2026-09-02): DESIGN FROZEN (owner-authorized; docs/postlaunch/x402-facilitator-design-freeze.md) · IMPLEMENTED · UNIT-TESTED · ADVERSARIAL-TESTED · INTEGRATION-TESTED (real HTTP service + real PostgreSQL claim store) · TESTNET-VERIFIED (real KAS + real frozen-v0.5 token payments on testnet-10; docs/testnet-x402-facilitator-evidence.json). A separately deployed, unprivileged, READ-ONLY chain verification / settlement attestation service for the proposed Kaspa scheme pv-x402-kaspa-exact-upfront/1 (network identifiers kaspa:mainnet / kaspa:testnet-10 are PolicyVault's provisional CAIP-2-syntax identifiers — no upstream registration is claimed). It never signs, broadcasts, escrows, or charges. NOT a hosted production service (a separate owner gate); no upstream Kaspa x402 scheme exists, so it is not "x402-compatible" without that qualification.

What the covenant enforces (consensus, not software)

  • Owner-controlled vaults — create, manage, pause, recover, close.
  • Delegated spending — up to 10 independent agents per vault, each with its own policy, spending real KAS within owner-defined limits.
  • Per-transaction caps and cumulative periodic budgets (DAA-score-based accounting verified by consensus).
  • Recipient allowlists — Merkle-committed; an agent can pay only owner-approved recipients.
  • M-of-N approvals above an owner-set threshold.
  • Covenant-controlled fee reserve — agents need no gas wallet; network fees come from a reserve the covenant accounts for exactly.
  • Break-glass owner pause and terminal recovery — never gated by any hosted workflow.

What the platform adds ABOVE the covenant (hosted coordination, not authority)

  • Intent manifests + independent browser verification — before any signature, the browser re-derives what the transaction does from the exact bytes to be signed and refuses on any mismatch (web/verify-intent.js, docs/postlaunch/intent-manifest-spec.md, docs/postlaunch/browser-verification.md).
  • Governance — proposal/approval ceremony (Schnorr-verified, domain-separated) for authority-expanding policy changes (docs/postlaunch/governance-spec.md).
  • Risk pipeline — restrictive-only configurable review/deny adapters (docs/postlaunch/risk-adapter-spec.md).
  • Budget reservations, hash-chained audit, webhooks/notifications, machine identities + scoped capabilities, idempotency, dry-run simulation (docs/postlaunch/*).
  • Universal Signer Interface with KasWare mapping and an offline CLI signer reference (docs/postlaunch/signer-interface-spec.md, signer-kasware-mapping.md, signer-cli-reference.md).
  • Agent surfaces: REST platform API, MCP server, Python client, x402 + AP2 payment-protocol adapters — all thin consumers of one deterministic core; none holds independent financial authority.

PolicyVault's API and shipped MCP tools provide scoped reads, supported simulations and unsigned requests. The MCP tools hold no signing keys and expose no signing or submission operation. PolicyVault's verification tools let an external signer check the exact operation before signing. The broader API supports attaching externally produced signatures and separately authorized submission; the browser also uses an external wallet. An authorized delegate, including an agent using an external wallet or signer, operates within covenant limits, permitted recipients, budgets and required approvals. Requesting, signing, submitting and verified on-chain acceptance are distinct stages. Kaspa consensus enforces the covenant.

Repository map

PathWhat it is
contracts/The covenant sources (v0.1…v0.6), regenerable byte-identically (tools/gen_v3.js, gen_v4.js, gen_v4_1.js, gen_v5.js, gen_v6.js)
core/Portable deterministic core: model, intent manifests, explanations, governance, risk, signer (v1 + the additive v2 interface), execution attestations, cross-runtime equivalence
sdk/The Node SDK: builders, freeze/sign/finalize, VM preflight, submission + chain proof, reconciliation, stores (JSON + PostgreSQL)
server/Hosted runtime: API, auth/tenancy/request protection, governance/risk enforcement, audit chain, webhooks, notifications, attestation export, optional MCP telemetry (off), migrations 001–010
web/Browser client + browser-local independent verification (verify-intent.js, core-bundle.js)
mcp/, python/, integrations/MCP server, Python client, x402 + AP2 adapters
conformance/One matrix driving JS + Python + MCP + x402 + AP2 through identical scenarios (cross-path byte equivalence)
security/Internal adversarial (hostile-AI) test suites over the agent-facing boundaries
mobile/Native mobile app (Capacitor Android project + portable web payload, native production transport, bearer sign-in) — DEVELOPMENT status (see above)
tests/vm/Real Kaspa VM covenant verification workspace (Rust; TxScriptEngine)
deploy/Container build + staging/production/self-host compose examples + env templates + the reproducible deployment pipeline (deploy/pipeline/, local proof only)
docs/Protocol specs, architecture, threat model, invariants, hosted design, per-surface specs, covenant freeze records
tools/, release-signers.jsonCovenant generators, acceptance harnesses, the attestation verifier, and the release manifest/sign/verify tooling (the signer public key is an unfilled OWNER-TO-FILL placeholder; no release has been signed)

Quick start (self-hosted, testnet-10)

bash
# prerequisites: Node 20.x; a local Kaspa testnet-10 node with --utxoindex#   (rusty-kaspa; JSON wRPC on ws://127.0.0.1:18210)cd sdk && npm ci && npm test          # the SDK suite (serialized)cd ../server && node src/server.js    # self-hosted mode, JSON persistence# open http://127.0.0.1:3080 — connect a testnet KasWare wallet

Full instructions, including PostgreSQL-backed hosted mode, container builds, covenant regeneration + byte-identity verification, and the VM suite: docs/deployment.md, docs/hosted-deployment.md, docs/test-plan.md. The VM workspace expects sibling checkouts of the public silverscript and rusty-kaspa projects (see tests/vm/ and tools/stage-vendor.sh).

Product policy (permanent)

Free software and self-hosting — Apache 2.0, including commercial use. Official hosted access is currently free. Kaspa network transaction fees still apply. No patents on the protocol or its mechanisms. Voluntary KAS donations support continued development and hosting: kaspa:qyppakv5y7kmeynffldl9zshwgkjrl3fy9jjj8wf24v7f64v0gnuragz7ehdqhn (public receiving address; nothing in this software ever asks for or handles donation-wallet keys). Details: docs/product-policy.md.

Security

Read SECURITY.md for the security model, the exact claim → enforcement → test → evidence discipline, what is PROVEN versus DESIGN TARGET, and how to report vulnerabilities.

来源:README.md,提交 99a52d1

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.6.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分