# Nla Fulfill

Fulfill an existing NLA escrow and collect tokens.

- Repository: https://github.com/internet-court/internet-court-skill (7050 stars)
- Category: Engineering
- 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-fulfill -g -a claude-code -y`
Codex: `npx skills add internet-court/internet-court-skill --skill nla-fulfill -g -a codex -y`
Cursor: `npx skills add internet-court/internet-court-skill --skill nla-fulfill -g -a cursor -y`
Gemini CLI: `npx skills add internet-court/internet-court-skill --skill nla-fulfill -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add internet-court/internet-court-skill`

## Description

Fulfill an existing NLA escrow and collect tokens. Use when the user wants to submit fulfillment text for an on-chain escrow, check arbitration results, and collect approved funds. Covers the full fulfill-arbitrate-collect lifecycle.

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

# Fulfill NLA Escrow

Help the user fulfill an on-chain escrow by submitting text that satisfies the escrow's demand, then collect the tokens if approved.

## Step-by-step instructions

### 1. Understand the escrow

Get the escrow UID from the user, then check what it demands:

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

This shows:
- The demand text
- Arbitration model and provider
- Oracle address
- Any existing fulfillments and their arbitration status

### 2. Craft the fulfillment

Help the user write fulfillment text that satisfies the demand:
- Read the demand carefully
- The fulfillment text is what the AI arbitrator evaluates against the demand
- Be specific and directly address what the demand asks for
- The default arbitration prompt evaluates whether the "fulfillment" satisfies the "demand" and returns true/false

### 3. Submit the fulfillment

```bash
nla escrow:fulfill \
  --escrow-uid <escrow_uid> \
  --fulfillment "<fulfillment text>" \
  --oracle <oracle_address>
```

This runs a multi-step on-chain commit-reveal flow:
1. Computes a commitment hash
2. Submits the commitment with a bond
3. Waits for next block confirmation
4. Reveals the fulfillment obligation and returns the bond
5. Requests arbitration from the oracle

The command outputs a **fulfillment UID** - record this for collection.

### 4. Monitor arbitration

Check if the oracle has made a decision:

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

The oracle typically responds within seconds if it's running. Look for "APPROVED" or "REJECTED" in the output.

### 5. Collect tokens (if approved)

Once the oracle approves:

```bash
nla escrow:collect \
  --escrow-uid <escrow_uid> \
  --fulfillment-uid <fulfillment_uid>
```

This transfers the escrowed tokens to the fulfiller.

## Key details

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