agentsclimarketplace

Nla arbitrate

Skill internet-court/internet-court-skill/vendored/arkhai/nla-arbitrate

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.From its SKILL.md

Install
npx -y skills add internet-court/internet-court-skill --skill nla-arbitrate

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

3.4 KB, 749 tokens by cl100k_base, as published. Nobody here has run it

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:

nla wallet:show

2a. Arbitrate a specific escrow

To review fulfillments for a known escrow UID:

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

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

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

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 (OPENAI_API_KEY, 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

# Scan for all pending requests, decide interactively
nla escrow:arbitrate --escrow-uid all

# Auto-arbitrate a specific escrow using LLM
nla escrow:arbitrate --escrow-uid 0xabc123... --auto

# Auto-arbitrate all pending, with explicit API key
nla escrow:arbitrate --escrow-uid all --auto --openai-api-key sk-...

What ships with it: 1 file

361 B alongside SKILL.md

Keep looking

Skills are one crate of 326,059. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.