mcpbeat

Nla Arbitrate

internet-court/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.

955 tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
1
copies elsewhere
how many repositories repackaged it
1529
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/internet-court/internet-court-skill --skill nla-arbitrate

What comes with it

361 bytes besides the instruction
LICENSE

What it tells the agent to use

found in the instruction text
Bash runs shell commands — read the instruction before connecting

The instruction itself

11 sections, as written by the author

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-...

Repackaged in 1 other repositories

same content, different owner
aiskillstore/marketplace open on GitHub →

How to use it

Copy the folder

Take internet-court/nla-arbitrate from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference npm. Without those the skill loads but fails at the first command.