
Boundra — Payment Approval Gateway for AI Agents
io.github.gobeyondfj-cmd由 GitHub 帳號 gobeyondfj-cmd 發布v0.1.0更新於 Nov 1, 2026
Policy decision point for agent payments — allow, ask, or veto before signing
概覽
Boundra 是本地 MCP 付款審批閘道,在簽名前依已簽署政策評估代理的付款意圖,回傳允許、詢問人工或否決。
- 可以做什麼
- 在簽名前評估付款意圖,取得 ALLOW、DENY 或需人工簽署的 ASK 挑戰
- 提交、版本化並撤銷已簽署政策,檢視政策版本歷程與舊版備援政策
- 查詢當日支出與剩餘預算,讀取審批稽核紀錄
- 由代理請求政策變更,並列出或渲染政策範本
- 適用情境
- 當代理可透過 x402 類付款花錢,而你希望以使用者簽署的政策決定每筆付款是放行、轉人工確認還是攔截,並保留稽核紀錄時使用。
- 執行需求
- 以本機 stdio 程序執行,從 boundra-mcp 的 PyPI 套件或透過 uvx 從專案儲存庫安裝,需要 Python 與 uv。boundra-init 精靈會在本機建立或匯入 Base 錢包金鑰,boundra-approve 用於簽署 ASK 挑戰。另提供託管端點作為替代。清單未宣告任何帳號或 API 金鑰。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Boundra — Payment Approval Gateway for AI Agents,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Boundra · Payment approval gateway for AI agents
[Boundra on mcprush — Grade A, Trust 95/100]
Boundra (boundra.io) — Boundaries for agent payments. The boundary layer for agent payments: before any money moves, answer "should this payment happen at all?"
Our thesis: the opportunity in agent payments is not "how to pay" (protocols solved that) but "whether to pay."
One natural-language rule → compiled into a policy → every payment the agent attempts is genuinely evaluated → allow / ask a human / veto, with a full audit trail.
Two run modes:
- Offline simulation (
demo.py): stdlib only, self-contained mock merchant and wallets, zero dependencies, zero network - Real protocol (
demo/demo_real.py): standard MCP server + real x402 SDK + Base Sepolia testnet
Data flow
Policies and keys stay with the user; the gateway is read-only; only hash commitments go on-chain. Revocation is free — forever, no exceptions.
Integrating Boundra into your agent? See docs/INTEGRATION.md — hosted API, x402 SDK hook, and MCP paths with tested code.
See it run in 60 seconds
The complete flow, step by step
Zero to a signed, enforced policy in ~10 minutes. No accounts, no dashboards — your wallet key is your identity.
0 · Try the hosted API (30 seconds, nothing to install)
1 · Bind your identity — the wallet is the account
Creates or imports a Base wallet. No signup, no email — the private key never leaves your device, and your address is your identity everywhere in the system.
2 · Set your policy
The wizard offers templates (personal assistant / travel / dev API / procurement) or lets you write your own rule in plain English, then compiles it and shows you exactly what will be enforced — before anything is signed.
3 · Sign & publish
You sign the policy document with your wallet key (EIP-191). It is published as a versioned document and a hash commitment is anchored on-chain. From this moment the gateway is read-only for every agent — changing the policy without your key is impossible.
4 · Mount the MCP server into your agent
Hosted (zero install, multi-tenant, default-deny until you publish a signed policy):
Or self-hosted:
5 · Every payment gets a verdict before signing
Your agent calls evaluate_payment; the 5-stage pipeline answers
ALLOW (sign & settle) / DENY (aborted pre-signature, zero on-chain
trace) / ASK (a challenge bound to this exact payment).
6 · When the agent asks, you decide
Paste the ASK challenge, sign it on your device — the agent retries with the signed approval token. Forged, rebound, or replayed tokens are rejected.
7 · Watch, update, revoke
get_spend_report / get_audit_trail / get_policy_versions keep you in
control day to day. Every policy change is a new signed version
(set_policy); revoke_policy is instant default-deny and free forever.
Quick start (from source)
Architecture: where the gateway stands
Key finding: x402 SDK v2 natively provides the on_before_payment_creation
hook plus register_policy / set_spend_controls — the policy layer is not a
bolt-on; it is the slot the official protocol stack reserves. This validates
the wedge.
File map
Signed policies: the root of trust is the user's key, not the gateway's database (v2)
A policy is a document signed by the user's wallet, not a row in the gateway's configuration:
- Read-only for agents: without the user's private key,
set_policyalways fails — impersonation, unsigned, and tampered submissions are all blocked (seven scenarios indemo/demo_policy.py) - Two stacked scopes: user-level (rules for all agents) × agent-level (per-agent rules); the strictest verdict wins
- Every version bump is a signature: v2 must reference v1's hash; tampering with any historical version → signature invalid + chain broken
- Privacy shape: only hash commitments go on-chain; policy plaintext never leaves the device unless the user chooses to disclose
Run: .venv/bin/python demo/demo_policy.py
Verdict credentials: every decision comes with a signed receipt (v4)
Every evaluate_payment response carries a credential — a
boundra.verdict/v1 receipt signed by the platform key (EIP-191). It answers
"who can prove this ALLOW / DENY / ASK actually happened, under this policy,
for this exact payment intent?"
- Binds the intent:
intent_hash= sha256 over the canonical {amount, recipient, purpose} — a credential cannot be re-attached to a different payment - Binds the policy:
policy_refslists the policy version hashes used, comparable against on-chain anchors - Binds the audit log:
audit_idlinks to the server-side audit entry - Verifiable offline, by anyone: strip
proof, canonicalize the payload (sorted keys, compact separators), recover the EIP-191 signer — it must equalissuerand the platform address0xF30955B6Be768370Da13fca237A5f252F6081d1C(the same address that receives x402 revenue — one identity for signing and settlement). Published atGET https://api.boundra.io/verdict-key.
Self-hosted gateways attach no credential unless BOUNDRA_VERDICT_KEY is set —
unsigned mode stays fully backward compatible.
MCP server tools
Mount into Claude Desktop
One line — uvx resolves dependencies and starts the server:
On first run, use the boundra-init wizard (same package): create/import a
wallet → pick a policy template → sign → publish via MCP, about 2 minutes.
When your agent hits ASK, run boundra-approve and paste the challenge to
produce a signed approval token.
⚠️ Known trust-boundary simplifications (must fix for production)
solved (v3): human approval is now a signed approval token (approval.py) — ASK returns a challenge bound to the exact payment intent; the user's device signs it; the gateway verifies signature + field-by-field intent match + nonce replay protection. The legacy self-attested path remains but is taggedhuman_approvedself-attested by the agentapprove(legacy-deprecated).- MCP-level interception is advisory — an agent framework can bypass the
gateway and talk to the wallet directly. Mitigation: pair with x402's
native hook (demonstrated in
demo/demo_real.py; the hook fires inside the SDK, before signing). Endgame: compile the deterministic parts of policy into a smart-contract wallet module, enforced at the settlement layer. - Semantic detection is regex-based — production should swap in LLM evaluation + intent anchoring.
- Anchoring defaults to a local log — the real contract
(
contracts/PolicyAnchor.sol) and web3 client (chain_anchor.BaseSepoliaAnchor) are ready; setchain_config.jsonto switch to the real chain (deploy via Remix with test ETH).
Economic model: the evaluation API is itself an x402 merchant
Tiered pricing:
Open core: the client, evaluation engine, and demos in this repo are
Apache-2.0. The hosted evaluation service (tiered pricing, free-quota
accounting, revenue ledger) runs from the private boundra-ops repo.
Verified / not yet verified
Verified (all of test_product.py 22 assertions + test_mcp_client.py pass):
4-layer policy stacking (platform red lines × user × agent × Mandate) with
strictest-wins; signed approval tokens (valid passes, forged rejected,
intent-rebinding rejected, replay rejected); Mandate single-use; revocation
defaults to deny and a signed v2 restores; template render+compile; all MCP
tools over the wire; gateway blocks an injection attack inside the real x402
402 round-trip before the SDK signs; the full tiered-pricing loop — first
proven on Base Sepolia (2026-10-16), then on Base mainnet (2026-10-21):
free tier passes, paid tier settles $0.003 USDC for real (buyer 1.010 → 1.007,
platform address credited 0.003), dogfood hook self-evaluates, semantic layer
blocks the injection, /revenue ledger entry.
The mainnet settlement tx is publicly verifiable: 0xf04d3497…4eac7e5
— the live API now settles on Base mainnet via Coinbase's CDP facilitator.
Earlier testnet proof: 0x5ad8ef4b…c474bbe
(the hosted service code is closed by design — the chain is the receipt).
Not yet verified: real on-chain anchoring (contract ready, needs test ETH to deploy); real user demand; semantic layer false-positive rate under real LLM behavior distributions.
來源:README.md,提交 f06b13b
工具
0版本歷史
1- v0.1.0最新Oct 18, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分