OceanAltOceanAlt

标准贡献 · 可复现

x402 合规一致性规范 v0.1

给 Agent 支付(x402 / MCP)结算前合规的一套机读契约:每一种合规判决对应一个稳定 reason_code、一个 signal_class、一条 retry 规则。1:1 对齐线上真实的 11 道闸,可对免费端点复现。

诚实状态

端点【今天就返回】 reason_code / signal_class / retry / retry_hint(HTTP 状态码仍是 200/403/409)。 451/-4510 的换码 = 提议中、尚未上线(换 HTTP 状态码是破坏性变更,须版本协商)。

1 · 信号类别与 retry 规则

signal_class含义retry
ok已放行not_applicable
payment额度/预算(可补足)retryable_after_funding
regulatory确定性合规 FAIL(制裁/混币/吊销/重放)non_retryable
authorization归因/授权/白名单/凭证retry_after_authorization
uncertain筛查不可得/不确定policy_dependent_backoff
client_error请求格式错误retry_after_fix

要点:预算拒绝、合规拒绝、临时基础设施故障对自主客户端可能看起来一样,但各需不同处理。按类别标准化 retry,既防静默放行(silent PASS),也防无限重试循环(LangChain/AutoGen/CrewAI)。

2 · reason_code 分类(对齐真实 11 道闸)

reason_codesignal_classretry来自
kya_unattributedauthorizationretry_after_authorizationKYA
mandate_revokedauthorizationnon_retryableKYA/Revoked
kya_proof_missingauthorizationretry_after_authorizationKYA/Proof
kyc_requiredauthorizationretry_after_authorizationKYA/KYC
invalid_inputclient_errorretry_after_fixInput
over_per_tx_limitpaymentretryable_after_fundingFirewall/Limit
over_daily_limitpaymentretryable_after_fundingFirewall/Velocity
payee_not_allowlistedauthorizationretry_after_authorizationFirewall/Allowlist
mandate_intent_mismatchauthorizationretry_after_authorizationMandate
sanctioned_or_high_risk_payeeregulatorynon_retryableScreening/AML
behavioral_anomalyuncertainpolicy_dependent_backoffBehavior/Anomaly
replay_detectedauthorizationnon_retryableMandate/Replay
clearoknot_applicableallow
elevated_risk_payeeuncertainpolicy_dependent_backoffscreening: review
screening_unavailableuncertainpolicy_dependent_backoffscreening unavailable

单一事实源:lib/conformance.ts + lib/gates.ts。

3 · 可复现测试向量(对免费端点)

① 制裁地址 → regulatory / non_retryable

curl "https://oceanalt.com/api/risk?addr=0x8589427373D6D84E98730D7795D8f6f8731FDA16"
# → verdict:"risky", reason_code:"sanctioned_or_high_risk_payee", signal_class:"regulatory", retry:"non_retryable"

② 干净地址 → ok / not_applicable

curl "https://oceanalt.com/api/risk?addr=0x742d35Cc6634C0532925a3b844Bc454e4438f44e"
# → verdict:"clear", reason_code:"clear", signal_class:"ok", retry:"not_applicable"

出处与不声称:reason_code 与 retry 由线上网关(/api/pay、/api/x402/decision、/api/risk)产出,本页与机读 JSON 同源生成。多传输(stdio/SSE/streamable)的线路观测与 451/-4510 换码尚未实现,列为提议、待实现后再以可复现向量贡献,绝不作前瞻声称。合规筛查 ≠ 完整/持牌 AML 合规;clear/allow ≠ 绝对安全。