Skip to main content
ClaudeWave
Skill5.3k repo starsupdated 17d ago

nla-fulfill

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.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/internet-court/internet-court-skill /tmp/nla-fulfill && cp -r /tmp/nla-fulfill/vendored/arkhai/nla-fulfill ~/.claude/skills/nla-fulfill
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# 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 fulfillment text is permanently recorded on-chain
- The commit-reveal process requires gas for multiple transactions
- If rejected, the tokens stay in escrow - another fulfillment attempt can be made by anyone
- The oracle address must match what was specified when the escrow was created (visible in status output)
- Collection only succeeds after the oracle records an approval

## Prerequisites

- `nla` CLI installed and configured
- Private key set via `nla wallet:set`, `--private-key` flag, or `PRIVATE_KEY` env var
- ETH in the fulfiller's account for gas
- The oracle must be running (or use the public demo on Sepolia)

## Example full flow

```bash
# 1. Check what the escrow demands
nla escrow:status --escrow-uid 0xabc123...

# 2. Submit fulfillment
nla escrow:fulfill \
  --escrow-uid 0xabc123... \
  --fulfillment "The sky appears blue due to Rayleigh scattering" \
  --oracle 0x70997970C51812dc3A010C7d01b50e0d17dc79C8

# 3. Check arbitration result
nla escrow:status --escrow-uid 0xabc123...

# 4. Collect if approved
nla escrow:collect \
  --escrow-uid 0xabc123... \
  --fulfillment-uid 0xdef456...
```
internet-courtSkill

Entry point for Internet Court — the trust layer for agent-to-agent commerce. Use whenever an agent needs to transact with another agent or a paid service, or a user mentions agent payments, paid APIs (HTTP 402/x402), wallet custody or trust concerns, spending mandates, delegated permissions (ERC-7710/7715), escrow, agent identity or reputation (ERC-8004), negotiation between agents (A2A), agent jobs (ERC-8183), machine payments (MPP, AP2), supervision of agent behavior, revocation, verification, or dispute resolution (GenLayer) — even if they never say "Internet Court". Routes to the vendored protocol skills and connector skills in this package.

genlayer-erc7710-connectorSkill

Connect GenLayer Intelligent Contract decisions to ERC-7710-style delegated authority. Use when an agent needs to design the interface, message schema, relayer/bridge path, EVM revocation controller, constraint updates, proof/finality assumptions, and failure handling that turn a GenLayer agent-performance review into ERC-7710 revocation or policy changes.

genlayer-intelligent-contractsSkill

Internet Court adapter for GenLayer Intelligent Contract supervision. Use to specify agent-performance rubrics, evidence schemas, decision outputs, and ERC-7710 connector expectations, while delegating actual GenLayer contract writing, linting, testing, deployment, and CLI interaction to the official GenLayer skills at https://skills.genlayer.com/.

x402-erc7710Skill

Design and implement demos combining x402 HTTP payments with ERC-7710 smart contract delegations and ERC-7715 wallet permission requests for subscriptions, bounded agent budgets, recurring spend, pay-per-use APIs, and agentic commerce.

0g-computeSkill

0G Compute Network guide for decentralized AI inference, fine-tuning, and GPU services. Covers chatbots, image generation, speech-to-text, SDK integration (0g-serving-broker), processResponse API, broker.inference methods, CLI commands (0g-compute-cli), and account management. Use this skill for any 0G compute, 0G AI, or decentralized GPU question.

altllm-portal-api-keysSkill

Use this skill when the user asks to list, create, inspect, update, disable, re-enable, or revoke AltLLM Portal API keys for external agents or applications. Do NOT use for wallet login, billing history, or payment links.

altllm-portal-authSkill

Use this skill when the user asks to log in or out with a wallet session, fetch a wallet sign-in challenge, verify an externally signed challenge, or troubleshoot AltLLM Portal wallet login for the local altllm CLI. Do NOT use for API key management, billing history, or payment links.

altllm-portal-billingSkill

Use this skill when the user asks to inspect AltLLM Portal balance, redeem a promo code, review billing transactions, or view usage analytics by period, model, or API key using the local altllm CLI. Do NOT use for API key lifecycle management or payment-link execution.