授权新增资本,上限为允许的确切金额。
决策结果
削减现有受管持仓,绝不超过返回的金额。
触发硬性规则,请勿再对该候选执行。
临时受阻或本轮未被选中,请暂停并稍后重试。
实时呈现的确定性决策
该卡片由付费端点运行的同一套纯策略生成,输入为下方的示例请求。相同输入永远得到相同的决策哈希。
允许金额
US$25,000.00
已选择:cand_spot_btc_01
- cand_spot_btc_01排名 1ALLOCATE
- cand_eq_msft_02排名 2HOLD
- 请求哈希
- request a2a7c6d765b6ef70214374eef0f1ad0fc4276c754b69030219ecdad05ab6e468
- 决策哈希
- decision 855dec83616b3c4363d24707604abf566e092ca8f4e67f7d5bff77007729bd68
风险检查(实测值与限额)
- portfolio_state_fresh15 / 120PASS
- portfolio_state_not_future0 / 5PASS
- reconciliation_currenttrue / truePASS
- kill_switch_clearfalse / falsePASS
- daily_loss_budget400 / 5000PASS
- max_drawdown1.8 / 8PASS
工作方式
1. 提议
你的智能体在统一总线上最多提交 50 个候选:赛道、资产、方向、请求名义金额、调用方提供的最大亏损与预期净优势、证据状态与有效期。
2. 治理
PE Governor 只应用一套纯策略:状态新鲜度、对账、熔断开关、证据、亏损预算、储备金、名义金额上限与并发度,然后排序并至多选出一个胜出者。
3. 执行你的规则
资本按你的条件流动。相同请求进入,返回逐字节一致的决策,并附上规范化请求与决策的 SHA-256 哈希以供审计。
自主资本的基础性控制
一个确定性的授权层,让智能体的决策有边界、可审计,并可在你的执行栈之间迁移。
可发现篡改的策略凭证
每个响应都用 SHA-256 哈希把规范化请求与决策绑定,并附上策略版本、时间戳、确切的允许金额,以及实测值与限额的各项检查。重放结果逐字节一致。
覆盖整个投资组合的治理
针对一份新鲜且已对账的投资组合快照,评估来自多个策略的至多 50 个候选。亏损、回撤、储备金、名义金额、并发与熔断开关规则先行生效,然后至多选出一个胜出者。
面向机器的原生支付
通过 Coinbase Business 结账,在 Base 上以 USDC 按次支付公开的风险分档价格,或使用预付额度。幂等性可防止重复的逻辑购买。
执行方可自行验证的签名授权
每一次受治理的配置都附带一份短时效、经加密签名的授权,绑定其确切意图与组合最新提交的风险状态。
可验证的策略证明
签名覆盖规范化的证明载荷:签发者、密钥 ID、判定、准确的允许金额、候选、策略、通道、完整作用域、请求哈希、决策哈希、组合状态哈希、持久化报价与失效时间。一次获取公钥即可离线验证。
跨代理的原子预留
同一租户与组合下的并发代理争用同一份聚合风险账本。只有预留获批,胜出候选才可执行;否则判定降级为 HOLD。
按风险分档定价
决策价格随风险资本变化,即请求中最大的名义金额或最大亏损。报价具有确定性并与哈希绑定。付费购买的是评估,绝不是判定。
每次决策的确定性价格
风险资本为所提交候选中的 max(requestedNotionalUsd, maximumLossUsd)。1 个信用单位等于 0.05 USDC。
| 风险资本 | 价格(Base 上的 USDC) | 信用单位 |
|---|---|---|
| 1,000 美元以内 | 0.05 USDC | 1 |
| 10,000 美元以内 | 0.10 USDC | 2 |
| 100,000 美元以内 | 1.00 USDC | 20 |
| 500,000 美元以内 | 5.00 USDC | 100 |
| 50 万美元以上 | 10.00 USDC | 200 |
ALLOCATE、REDUCE、REJECT 与 HOLD 价格相同。没有订阅。
先验证,再执行
你的执行适配器必须验证载荷哈希、签名、签发者与密钥 ID、有效期、有效的预留令牌、全部预期哈希,以及订单与授权意图和金额的精确一致。每份授权只能在持久化存储中消费一次,未被有效授权覆盖的订单一律拒绝。
import { verifyAuthorizationForOrder } from "./pe-authorization";
// 1. Fetch and cache the published Ed25519 verification key (kid + issuer).
const { issuer, keys } = await (await fetch("/api/pe/v1/keys")).json();
// 2. Gate every order on a live, exactly matching authorization.
const check = await verifyAuthorizationForOrder({
proof: decision.proof, // returned with every 200
publicKeyBase64Url: keys[0].x,
order: {
candidateId, strategyId, assetId, lane, side, reduceOnly,
amountUsd: decision.allocationAmountUsd, // must equal permittedAmountUsd exactly
tenantId, portfolioId, agentId, ownerId, accountScope,
},
expected: {
issuer,
keyId: keys[0].kid,
policyVersion: decision.policyVersion,
requestHash: decision.audit.requestHash,
decisionHash: decision.audit.decisionHash,
portfolioStateHash: decision.proof.payload.portfolioStateHash,
quoteHash: decision.priceQuote.quoteHash,
reservationFencingToken: decision.proof.payload.reservation.fencingToken,
},
// Durable single-use store: ONE atomic operation, never has() then add().
replayStore: {
consumeIfUnused: async (id) => {
const { rowCount } = await db.query(
"INSERT INTO used_authorizations (id) VALUES ($1) ON CONFLICT DO NOTHING",
[id],
);
return rowCount === 1; // false => already consumed
},
},
});
if (!check.valid) throw new Error(check.reason); // never place the order
placeOrder(decision.allocationAmountUsd);在整个执行窗口内锁定组合额度
可选离线验证已签名授权本身仍然足够。若想更进一步,可认领该授权:PE Governor 会持续占用这份授权对应的总额度,直到你的适配器回报结果,从而避免第二个智能体重复占用同一份余量。
AUTHORIZED
随决策一同签发,在其短暂有效期内已经占用额度。
CLAIMED
你的适配器绑定了保密认领密钥,并对结果负责。其他调用方无法改变其状态。
COMMITTED
适配器已执行。由于已投入的资金在对账前仍在运作,额度继续被占用。
RELEASED
适配器未执行即撤回。额度立即归还。
EXPIRED
无人按时回报。无需任何清理调用,额度会自动归还。
// Optional. Offline verification of the proof is still sufficient.
const { authorizationId } = decision.lifecycle;
const claimKey = crypto.randomUUID() + crypto.randomUUID(); // >= 32 chars, keep it
const claim = await fetch(`/api/pe/v1/authorizations/${authorizationId}/claim`, {
method: "POST",
headers: { "x-pe-claim-key": claimKey },
});
if (!claim.ok) return; // someone else owns this authorization
try {
await placeOrderWithYourOwnExecutor(intent); // PE Governor never does this
await fetch(`/api/pe/v1/authorizations/${authorizationId}/commit`, {
method: "POST",
headers: { "x-pe-claim-key": claimKey },
});
} catch {
// stand down and give the capacity straight back
await fetch(`/api/pe/v1/authorizations/${authorizationId}/release`, {
method: "POST",
headers: { "x-pe-claim-key": claimKey },
});
}生命周期状态是你自身策略的账目记录。提交只记录适配器已执行;PE Governor 依然不会下单、路由或结算任何订单。
策略只需接入一次
在任何达到或超过所有者阈值的配置之前接入该调用。遇到 REJECT 或 HOLD 时停止,且绝不超过 REDUCE 的金额。
# Install once, obey always.
BEFORE any allocation >= OWNER_THRESHOLD_USD:
decision = POST /api/pe/v1/governor # same-origin; production clients resolve it against https://governor.solarly.ai
if decision.decision in ("REJECT", "HOLD"):
stop() # no order, no retry loop
if decision.decision == "REDUCE":
size = min(intended_size, decision.allocationAmountUsd)
if decision.decision == "ALLOCATE":
size = decision.allocationAmountUsd # never more
execute(size) # execution is 100% yours请求与响应负载
{
"schema": "pe-governor-request.v1",
"requestedAt": "2026-08-11T22:30:00.000Z",
"ownerId": "owner_demo",
"portfolio": {
"asOf": "2026-08-11T22:29:45.000Z",
"reconciliationCurrent": true,
"killSwitchEngaged": false,
"equityUsd": 250000,
"cashAvailableUsd": 90000,
"grossNotionalUsd": 120000,
"dailyNotionalUsedUsd": 30000,
"realizedLossTodayUsd": 400,
"drawdownPct": 1.8,
"openPositions": [
{
"assetId": "ETH-USD",
"lane": "SPOT",
"notionalUsd": 20000,
"managed": true
}
]
},
"constraints": {
"capitalReserveUsd": 25000,
"installThresholdUsd": 1000,
"maxCandidateNotionalUsd": 25000,
"maxPositionNotionalUsd": 40000,
"maxPortfolioNotionalUsd": 200000,
"maxDailyNotionalUsd": 75000,
"remainingLossBudgetUsd": 3000,
"maxDailyLossUsd": 5000,
"maxDrawdownPct": 8,
"maxConcurrentPositions": 12,
"maxConcurrentPositionsPerLane": 6,
"maxPortfolioStalenessSeconds": 120,
"minimumEdgeBpsByLane": {
"EQUITIES": 25,
"SPOT": 30,
"FUTURES": 40
}
},
"candidates": [
{
"candidateId": "cand_spot_btc_01",
"sourceLane": "SPOT",
"strategyId": "carry_basis_v3",
"assetId": "BTC-USD",
"side": "BUY",
"reduceOnly": false,
"requestedNotionalUsd": 30000,
"maximumLossUsd": 1200,
"expectedNetEdgeBps": 85,
"evidenceStatus": "READY",
"createdAt": "2026-08-11T22:28:00.000Z",
"expiresAt": "2026-08-11T22:40:00.000Z",
"metadata": {
"venue": "primary",
"confidence": 0.71
}
},
{
"candidateId": "cand_eq_msft_02",
"sourceLane": "EQUITIES",
"strategyId": "gap_fade_v2",
"assetId": "MSFT",
"side": "BUY",
"reduceOnly": false,
"requestedNotionalUsd": 12000,
"maximumLossUsd": 900,
"expectedNetEdgeBps": 40,
"evidenceStatus": "READY",
"createdAt": "2026-08-11T22:27:10.000Z",
"expiresAt": "2026-08-11T22:45:00.000Z"
}
]
}{
"schema": "pe-governor-decision.v1",
"policyVersion": "pe-governor-policy-1.0.0",
"generatedAt": "2026-08-11T22:30:00.000Z",
"decision": "ALLOCATE",
"selectedCandidateId": "cand_spot_btc_01",
"allocationAmountUsd": 25000,
"reasons": [
"ALLOCATION_PERMITTED"
],
"portfolioChecks": [
{
"check": "portfolio_state_fresh",
"status": "PASS",
"observed": 15,
"limit": 120
},
{
"check": "portfolio_state_not_future",
"status": "PASS",
"observed": 0,
"limit": 5
},
{
"check": "reconciliation_current",
"status": "PASS",
"observed": true,
"limit": true
},
{
"check": "kill_switch_clear",
"status": "PASS",
"observed": false,
"limit": false
},
{
"check": "daily_loss_budget",
"status": "PASS",
"observed": 400,
"limit": 5000
},
{
"check": "max_drawdown",
"status": "PASS",
"observed": 1.8,
"limit": 8
}
],
"candidates": [
{
"candidateId": "cand_spot_btc_01",
"decision": "ALLOCATE",
"allocationAmountUsd": 25000,
"rank": 1,
"expectedAfterCostProfitUsd": 212.5,
"reasons": [
"SIZE_CONSTRAINED_BY_LIMITS",
"ALLOCATION_ELIGIBLE"
],
"riskChecks": [
{
"check": "evidence_ready",
"status": "PASS",
"observed": "READY",
"limit": "READY"
},
{
"check": "candidate_unexpired",
"status": "PASS",
"observed": "2026-08-11T22:40:00.000Z",
"limit": "2026-08-11T22:30:00.000Z"
},
{
"check": "maximum_loss_bounded",
"status": "PASS",
"observed": 1200,
"limit": 30000
},
{
"check": "remaining_loss_budget",
"status": "PASS",
"observed": 1200,
"limit": 3000
},
{
"check": "install_threshold",
"status": "PASS",
"observed": 30000,
"limit": 1000
},
{
"check": "lane_minimum_edge_bps",
"status": "PASS",
"observed": 85,
"limit": 30
},
{
"check": "capital_reserve",
"status": "PASS",
"observed": 65000,
"limit": 0
},
{
"check": "max_candidate_notional",
"status": "BLOCKED",
"observed": 30000,
"limit": 25000
},
{
"check": "max_position_notional",
"status": "PASS",
"observed": 40000,
"limit": 40000
},
{
"check": "max_portfolio_notional",
"status": "PASS",
"observed": 80000,
"limit": 200000
},
{
"check": "max_daily_notional",
"status": "PASS",
"observed": 45000,
"limit": 75000
},
{
"check": "lane_concurrency",
"status": "PASS",
"observed": 1,
"limit": 6
},
{
"check": "portfolio_concurrency",
"status": "PASS",
"observed": 1,
"limit": 12
},
{
"check": "permitted_size_usd",
"status": "PASS",
"observed": 25000,
"limit": 30000
}
]
},
{
"candidateId": "cand_eq_msft_02",
"decision": "HOLD",
"allocationAmountUsd": 0,
"rank": 2,
"expectedAfterCostProfitUsd": 48,
"reasons": [
"ALLOCATION_ELIGIBLE",
"NOT_SELECTED_THIS_CYCLE"
],
"riskChecks": [
{
"check": "evidence_ready",
"status": "PASS",
"observed": "READY",
"limit": "READY"
},
{
"check": "candidate_unexpired",
"status": "PASS",
"observed": "2026-08-11T22:45:00.000Z",
"limit": "2026-08-11T22:30:00.000Z"
},
{
"check": "maximum_loss_bounded",
"status": "PASS",
"observed": 900,
"limit": 12000
},
{
"check": "remaining_loss_budget",
"status": "PASS",
"observed": 900,
"limit": 3000
},
{
"check": "install_threshold",
"status": "PASS",
"observed": 12000,
"limit": 1000
},
{
"check": "lane_minimum_edge_bps",
"status": "PASS",
"observed": 40,
"limit": 25
},
{
"check": "capital_reserve",
"status": "PASS",
"observed": 65000,
"limit": 0
},
{
"check": "max_candidate_notional",
"status": "PASS",
"observed": 12000,
"limit": 25000
},
{
"check": "max_position_notional",
"status": "PASS",
"observed": 40000,
"limit": 40000
},
{
"check": "max_portfolio_notional",
"status": "PASS",
"observed": 80000,
"limit": 200000
},
{
"check": "max_daily_notional",
"status": "PASS",
"observed": 45000,
"limit": 75000
},
{
"check": "lane_concurrency",
"status": "PASS",
"observed": 0,
"limit": 6
},
{
"check": "portfolio_concurrency",
"status": "PASS",
"observed": 1,
"limit": 12
},
{
"check": "permitted_size_usd",
"status": "PASS",
"observed": 12000,
"limit": 12000
}
]
}
],
"execution": {
"performed": false,
"custody": false,
"brokerage": false,
"orderPlacement": false,
"walletControl": false,
"note": "PE Governor returns a decision only. It never executes trades, holds custody, controls wallets, or places orders."
},
"alpha": {
"independentReturnForecast": false,
"proprietaryAlphaClaim": false,
"expectedEdgeSource": "caller_supplied",
"maximumLossSource": "caller_supplied"
},
"audit": {
"engine": "pe-governor",
"deterministic": true,
"llmUsed": false,
"policyVersion": "pe-governor-policy-1.0.0",
"requestHash": "a2a7c6d765b6ef70214374eef0f1ad0fc4276c754b69030219ecdad05ab6e468",
"generatedAt": "2026-08-11T22:30:00.000Z",
"decisionHash": "855dec83616b3c4363d24707604abf566e092ca8f4e67f7d5bff77007729bd68"
}
}支付与结算
通过 Coinbase Business 结账,在 Base 上用 USDC 按次付费,或消耗预付额度。没有订阅。授权不等于结算:只有状态为 COMPLETED 的结账才会释放决策。
- Step 01
POST + 幂等键
一个逻辑请求被原子性地占用。
- Step 02
402 与 x402 链接
只会创建一个 Coinbase 结账。
- Step 03
处理中返回 202
用相同的幂等键与结账 ID 重试。
- Step 04
COMPLETED
轮询确认 checkout 变为 COMPLETED。配置后即可使用签名 webhook 确认。
- Step 05
200 返回决策
只存储一次,重放结果逐字节一致。
状态码状态机
POST /api/pe/v1/governor (X-Idempotency-Key: uuid-v4)
|
v
402 Payment Required --payment.x402Url--> client pays the checkout
| |
|<---- retry: same key + X-Checkout-Id ------+
v
202 Accepted checkout ACTIVE / PROCESSING --> back off, retry
|
v
checkout COMPLETED (polling; signed webhook when configured)
|
v
200 OK pe-governor-decision.v1, stored once, replays byte-identical客户端重试循环
一个最小化的接入示例。发送 UUID v4 幂等键,从 402 响应体中读取 x402 URL 与 checkout id,完成支付后使用相同的键与 checkout id 轮询,直到决策返回。
import { randomUUID } from "node:crypto";
const ENDPOINT = "/api/pe/v1/governor"; // same-origin; resolves against https://governor.solarly.ai
const idempotencyKey = randomUUID(); // UUID v4, one per logical decision
// 1. First call: body + idempotency key. No payment yet, so expect 402.
let res = await fetch(ENDPOINT, {
method: "POST",
headers: { "content-type": "application/json", "x-idempotency-key": idempotencyKey },
body: JSON.stringify(governorRequest),
});
if (res.status !== 402) throw new Error(`unexpected status ${res.status}`);
// 2. Read the x402 URL and checkout id straight off the 402 body.
const { payment } = await res.json();
const x402Url: string = payment.x402Url; // where the client pays
const checkoutId: string = payment.checkoutId; // echo this back on every retry
// 3. Pay with your x402 client. The authorization response is NOT settlement:
// only a COMPLETED checkout releases the decision.
await x402Client.pay(x402Url, { amount: payment.amount, asset: payment.currency });
// 4. Poll the same request with the same key + checkout id, backing off.
for (let attempt = 0; attempt < 12; attempt++) {
res = await fetch(ENDPOINT, {
method: "POST",
headers: { "x-idempotency-key": idempotencyKey, "x-checkout-id": checkoutId },
}); // body may be omitted on retries
if (res.status === 200) {
const decision = await res.json(); // pe-governor-decision.v1
console.log(decision.decision, decision.allocationAmountUsd, decision.audit.decisionHash);
break;
}
if (res.status !== 202) throw new Error(await res.text()); // 402/409 are terminal
await new Promise((r) => setTimeout(r, Math.min(500 * 2 ** attempt, 8000)));
}边界,直说
- 01. 不执行交易,也不下单
- 02. 不托管资产、不持有钱包或私钥
- 03. 不提供经纪或资金转移服务
- 04. 决策链路中没有任何大语言模型
- 05. 不做独立收益预测,也不宣称自有阿尔法
- 06. 预期优势与最大亏损始终由调用方提供
- 07. 不主张交易场所层面的强制执行;所有授权由你的适配器强制执行
- 08. 签名授权只证明发出了哪一条策略决策。它不是合规证书、承保决定、链上证明或交易场所批准。