# Nla Arbitrate

Manually arbitrate NLA escrow fulfillments as an alternative to the automated oracle.

- Repository: https://github.com/internet-court/internet-court-skill (7050 stars)
- Category: AI and agents
- License: see repository
- Last updated: 2026-10-26
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add internet-court/internet-court-skill --skill nla-arbitrate -g -a claude-code -y`
Codex: `npx skills add internet-court/internet-court-skill --skill nla-arbitrate -g -a codex -y`
Cursor: `npx skills add internet-court/internet-court-skill --skill nla-arbitrate -g -a cursor -y`
Gemini CLI: `npx skills add internet-court/internet-court-skill --skill nla-arbitrate -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add internet-court/internet-court-skill`

## Description

Manually arbitrate NLA escrow fulfillments as an alternative to the automated oracle. Use when the user wants to review pending arbitration requests, evaluate demands against fulfillments, and submit on-chain decisions. Supports both interactive and LLM-auto modes.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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:

```bash
nla wallet:show
```

### 2a. Arbitrate a specific escrow

To review fulfillments for a known escrow UID:

```bash
# Interactive mode - prompts for approve/reject
nla escrow:arbitrate --escrow-uid <uid>

# Auto mode - uses the LLM specified in the escrow's demand
nla escrow:arbitrate --escrow-uid <uid> --auto
```

### 2b. Scan for all pending requests

To find all unarbitrated fulfillments where the user is the oracle:

```bash
# Interactive mode
nla escrow:arbitrate --escrow-uid all

# Auto mode
nla escrow:arbitrate --escrow-uid all --auto
```

### 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:

```bash
nla escrow:status --escrow-uid <escrow_uid>
```

## Key details

The rest: https://github.com/internet-court/internet-court-skill/blob/HEAD/vendored/arkhai/nla-arbitrate/SKILL.md
