面向自主资本的可验证交易前授权层

已经有交易智能体了?
为它加上 Profit Engine Governor。
自托管不变,控制权不变。

PE Governor 按你的规则评估每一个提交的下单意图,在多个智能体之间协调组合容量,并针对允许的确切金额返回一份短时效的签名授权。由你的执行方负责验证;PE Governor 从不托管资产,也从不下单。

PE Governor,由 Solarly 出品

决策结果

Verdict 01ALLOCATE

授权新增资本,上限为允许的确切金额。

Verdict 02REDUCE

削减现有受管持仓,绝不超过返回的金额。

Verdict 03REJECT

触发硬性规则,请勿再对该候选执行。

Verdict 04HOLD

临时受阻或本轮未被选中,请暂停并稍后重试。

01实时呈现的确定性决策

实时呈现的确定性决策

该卡片由付费端点运行的同一套纯策略生成,输入为下方的示例请求。相同输入永远得到相同的决策哈希。

ALLOCATEpe-governor-policy-1.0.0

允许金额

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

工作方式

Phase 01

1. 提议

你的智能体在统一总线上最多提交 50 个候选:赛道、资产、方向、请求名义金额、调用方提供的最大亏损与预期净优势、证据状态与有效期。

Phase 02

2. 治理

PE Governor 只应用一套纯策略:状态新鲜度、对账、熔断开关、证据、亏损预算、储备金、名义金额上限与并发度,然后排序并至多选出一个胜出者。

Phase 03

3. 执行你的规则

资本按你的条件流动。相同请求进入,返回逐字节一致的决策,并附上规范化请求与决策的 SHA-256 哈希以供审计。

02自主资本的基础性控制

自主资本的基础性控制

一个确定性的授权层,让智能体的决策有边界、可审计,并可在你的执行栈之间迁移。

可发现篡改的策略凭证

每个响应都用 SHA-256 哈希把规范化请求与决策绑定,并附上策略版本、时间戳、确切的允许金额,以及实测值与限额的各项检查。重放结果逐字节一致。

覆盖整个投资组合的治理

针对一份新鲜且已对账的投资组合快照,评估来自多个策略的至多 50 个候选。亏损、回撤、储备金、名义金额、并发与熔断开关规则先行生效,然后至多选出一个胜出者。

面向机器的原生支付

通过 Coinbase Business 结账,在 Base 上以 USDC 按次支付公开的风险分档价格,或使用预付额度。幂等性可防止重复的逻辑购买。

强制执行从你的执行适配器开始

PE Governor 返回授权;在下单前由你的适配器校验并遵守它。Coinbase 目前不会在交易场所强制执行 PE 的决策,支付也永远不会改变判定结果。

查看接入策略
03执行方可自行验证的签名授权

执行方可自行验证的签名授权

每一次受治理的配置都附带一份短时效、经加密签名的授权,绑定其确切意图与组合最新提交的风险状态。

可验证的策略证明

签名覆盖规范化的证明载荷:签发者、密钥 ID、判定、准确的允许金额、候选、策略、通道、完整作用域、请求哈希、决策哈希、组合状态哈希、持久化报价与失效时间。一次获取公钥即可离线验证。

跨代理的原子预留

同一租户与组合下的并发代理争用同一份聚合风险账本。只有预留获批,胜出候选才可执行;否则判定降级为 HOLD。

按风险分档定价

决策价格随风险资本变化,即请求中最大的名义金额或最大亏损。报价具有确定性并与哈希绑定。付费购买的是评估,绝不是判定。

每次决策的确定性价格

风险资本为所提交候选中的 max(requestedNotionalUsd, maximumLossUsd)。1 个信用单位等于 0.05 USDC。

每次决策的确定性价格
风险资本价格(Base 上的 USDC)信用单位
1,000 美元以内0.05 USDC1
10,000 美元以内0.10 USDC2
100,000 美元以内1.00 USDC20
500,000 美元以内5.00 USDC100
50 万美元以上10.00 USDC200

ALLOCATE、REDUCE、REJECT 与 HOLD 价格相同。没有订阅。

先验证,再执行

你的执行适配器必须验证载荷哈希、签名、签发者与密钥 ID、有效期、有效的预留令牌、全部预期哈希,以及订单与授权意图和金额的精确一致。每份授权只能在持久化存储中消费一次,未被有效授权覆盖的订单一律拒绝。

verify-authorization.ts
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);
验证密钥
04在整个执行窗口内锁定组合额度

在整个执行窗口内锁定组合额度

可选

离线验证已签名授权本身仍然足够。若想更进一步,可认领该授权:PE Governor 会持续占用这份授权对应的总额度,直到你的适配器回报结果,从而避免第二个智能体重复占用同一份余量。

  1. AUTHORIZED

    随决策一同签发,在其短暂有效期内已经占用额度。

  2. CLAIMED

    你的适配器绑定了保密认领密钥,并对结果负责。其他调用方无法改变其状态。

  3. COMMITTED

    适配器已执行。由于已投入的资金在对账前仍在运作,额度继续被占用。

  4. RELEASED

    适配器未执行即撤回。额度立即归还。

  5. EXPIRED

    无人按时回报。无需任何清理调用,额度会自动归还。

authorization-lifecycle.ts
// 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 依然不会下单、路由或结算任何订单。

05策略只需接入一次

策略只需接入一次

在任何达到或超过所有者阈值的配置之前接入该调用。遇到 REJECT 或 HOLD 时停止,且绝不超过 REDUCE 的金额。

install-policy.txt
# 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

请求与响应负载

06请求 — pe-governor-request.v1
request.json
{
  "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"
    }
  ]
}
07响应 — pe-governor-decision.v1
decision.json
{
  "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"
  }
}
08支付与结算

支付与结算

通过 Coinbase Business 结账,在 Base 上用 USDC 按次付费,或消耗预付额度。没有订阅。授权不等于结算:只有状态为 COMPLETED 的结账才会释放决策。

  1. Step 01

    POST + 幂等键

    一个逻辑请求被原子性地占用。

  2. Step 02

    402 与 x402 链接

    只会创建一个 Coinbase 结账。

  3. Step 03

    处理中返回 202

    用相同的幂等键与结账 ID 重试。

  4. Step 04

    COMPLETED

    轮询确认 checkout 变为 COMPLETED。配置后即可使用签名 webhook 确认。

  5. Step 05

    200 返回决策

    只存储一次,重放结果逐字节一致。

状态码状态机

客户端重试循环

一个最小化的接入示例。发送 UUID v4 幂等键,从 402 响应体中读取 x402 URL 与 checkout id,完成支付后使用相同的键与 checkout id 轮询,直到决策返回。

retry-loop.ts
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)));
}

完整指南:首次购买

09边界,直说

边界,直说

  1. 01. 不执行交易,也不下单
  2. 02. 不托管资产、不持有钱包或私钥
  3. 03. 不提供经纪或资金转移服务
  4. 04. 决策链路中没有任何大语言模型
  5. 05. 不做独立收益预测,也不宣称自有阿尔法
  6. 06. 预期优势与最大亏损始终由调用方提供
  7. 07. 不主张交易场所层面的强制执行;所有授权由你的适配器强制执行
  8. 08. 签名授权只证明发出了哪一条策略决策。它不是合规证书、承保决定、链上证明或交易场所批准。