Manual NLA Arbitration
Manually arbitrate escrow fulfillments using the nla escrow:arbitrate CLI command, bypassing the automated oracle listener.
When to use this
- - The user wants to manually review and decide on escrow fulfillments
- The user is the oracle (their wallet address was specified as the oracle when escrows were created)
- The automated oracle is not running, or the user wants more control over decisions
Step-by-step instructions
1. Verify oracle identity
The user's wallet must be the oracle address specified in the escrow:
CODEBLOCK0
2a. Arbitrate a specific escrow
To review fulfillments for a known escrow UID:
CODEBLOCK1
2b. Scan for all pending requests
To find all unarbitrated fulfillments where the user is the oracle:
CODEBLOCK2
3. Review and decide
In interactive mode, the command displays each pending fulfillment with:
- - Escrow UID and fulfillment UID
- The demand text
- The fulfillment text
- The arbitration provider/model specified
Then prompts for a decision: approve, reject, or skip.
In auto mode (--auto), the command uses the LLM provider/model specified in the escrow's demand to arbitrate automatically. Requires at least one LLM API key via environment variables or flags (--openai-api-key, --anthropic-api-key, --openrouter-api-key).
4. Verify
After arbitration, check the result:
CODEBLOCK3
Key details
- - The user's wallet address MUST match the oracle address in the escrow - otherwise the on-chain contract rejects the decision
- Each arbitration decision is recorded as a permanent on-chain attestation
- In interactive mode, type
skip or s to skip a fulfillment without deciding - Auto mode reads LLM API keys from environment variables (OPENAIAPIKEY, etc.) or CLI flags
- If no pending requests are found, the command explains possible reasons (no fulfillments yet, already arbitrated, or wrong oracle address)
Prerequisites
- -
nla CLI installed and configured - Private key set via
nla wallet:set, --private-key flag, or PRIVATE_KEY env var - ETH in the oracle's account for gas (submitting decisions costs gas)
- For auto mode: at least one LLM provider API key
Examples
CODEBLOCK4
手动NLA仲裁
使用nla escrow:arbitrate CLI命令手动仲裁托管履行,绕过自动预言机监听器。
何时使用
- - 用户希望手动审查并决定托管履行事项
- 用户是预言机(创建托管时其钱包地址被指定为预言机)
- 自动预言机未运行,或用户希望对决策拥有更多控制权
分步说明
1. 验证预言机身份
用户的钱包必须是托管中指定的预言机地址:
bash
nla wallet:show
2a. 仲裁特定托管
审查已知托管UID的履行情况:
bash
交互模式 - 提示批准/拒绝
nla escrow:arbitrate --escrow-uid
自动模式 - 使用托管需求中指定的LLM
nla escrow:arbitrate --escrow-uid --auto
2b. 扫描所有待处理请求
查找用户为预言机的所有未仲裁履行:
bash
交互模式
nla escrow:arbitrate --escrow-uid all
自动模式
nla escrow:arbitrate --escrow-uid all --auto
3. 审查并决定
在交互模式下,命令显示每个待处理履行,包含:
- - 托管UID和履行UID
- 需求文本
- 履行文本
- 指定的仲裁提供商/模型
然后提示做出决定:approve、reject或skip。
在自动模式(--auto)下,命令使用托管需求中指定的LLM提供商/模型自动仲裁。需要至少一个LLM API密钥,可通过环境变量或标志(--openai-api-key、--anthropic-api-key、--openrouter-api-key)提供。
4. 验证
仲裁后,检查结果:
bash
nla escrow:status --escrow-uid
关键细节
- - 用户的钱包地址必须与托管中的预言机地址匹配 - 否则链上合约将拒绝该决定
- 每个仲裁决定都记录为永久的链上证明
- 在交互模式下,输入skip或s可跳过履行而不做决定
- 自动模式从环境变量(OPENAIAPIKEY等)或CLI标志读取LLM API密钥
- 如果未找到待处理请求,命令会解释可能的原因(尚无履行、已仲裁或预言机地址错误)
前提条件
- - 已安装并配置nla CLI
- 通过nla wallet:set、--private-key标志或PRIVATE_KEY环境变量设置私钥
- 预言机账户中有ETH用于支付Gas(提交决策需要Gas)
- 自动模式:至少一个LLM提供商API密钥
示例
bash
扫描所有待处理请求,交互式决定
nla escrow:arbitrate --escrow-uid all
使用LLM自动仲裁特定托管
nla escrow:arbitrate --escrow-uid 0xabc123... --auto
自动仲裁所有待处理请求,使用显式API密钥
nla escrow:arbitrate --escrow-uid all --auto --openai-api-key sk-...