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

nla-create

Create a Natural Language Agreement escrow on-chain. Use when the user wants to lock ERC20 tokens in an escrow with a natural language demand that an AI oracle will arbitrate. Handles demand crafting, parameter gathering, and CLI execution.

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

SKILL.md

# Create NLA Escrow

Help the user create a blockchain escrow backed by a natural language demand using the `nla` CLI.

## Overview

An NLA escrow locks ERC20 tokens on-chain. Anyone can attempt to fulfill the escrow's natural language demand. An AI oracle evaluates fulfillments and releases the tokens if the demand is satisfied.

## Step-by-step instructions

### 1. Gather requirements

Collect the following from the user conversationally:

**Required:**
- **Demand**: The natural language condition that must be fulfilled. Help the user craft something clear and unambiguous.
- **Amount**: Number of tokens to escrow (in the token's smallest unit - no automatic decimal conversion).
- **Token address**: ERC20 token contract address (`0x...`).
- **Oracle address**: Address of the oracle that will arbitrate.

**Optional:**
- **Arbitration provider**: `OpenAI` (default), `Anthropic`, or `OpenRouter`.
- **Arbitration model**: e.g. `gpt-4o-mini` (default), `claude-3-5-sonnet-20241022`, `openai/gpt-4o`.
- **Arbitration prompt**: Custom prompt template with `{{demand}}` and `{{obligation}}` placeholders.

### 2. Check prerequisites

```bash
# Verify CLI is available
which nla

# Check current network
nla network

# Check wallet is configured
nla wallet:show
```

If no wallet is configured, the user must either:
- Run `nla wallet:set --private-key <key>`
- Pass `--private-key <key>` to the command
- Set the `PRIVATE_KEY` environment variable

### 3. Help craft the demand

Guide the user to write an effective demand:
- Be specific and evaluable by an LLM
- Consider: what counts as valid fulfillment? Is the condition verifiable?
- For claims requiring real-world knowledge, suggest models with search (Perplexity search is available if the oracle has it configured)
- The demand, provider, model, and prompt are all encoded on-chain and publicly visible - never include secrets

### 4. Execute escrow creation

```bash
nla escrow:create \
  --demand "<demand text>" \
  --amount <amount> \
  --token <token_address> \
  --oracle <oracle_address> \
  [--arbitration-provider "<provider>"] \
  [--arbitration-model "<model>"] \
  [--arbitration-prompt "<prompt>"]
```

### 5. Record output

The command outputs an escrow UID (`0x...`). This UID is needed for fulfillment and collection. Present it clearly to the user and explain next steps.

## Key details

- Available networks: `anvil` (local), `sepolia`, `base-sepolia`, `mainnet`. Switch with `nla switch <network>`.
- For local dev, `nla dev` starts Anvil, deploys contracts, creates mock tokens, and starts the oracle.
- Public demo oracle on Sepolia: `0xc5c132B69f57dAAAb75d9ebA86cab504b272Ccbc`.
- Default arbitration prompt:
  ```
  Evaluate the fulfillment against the demand and decide whether the demand was validly fulfilled

  Demand: {{demand}}

  Fulfillment: {{obligation}}
  ```

## Example

```bash
nla escrow:create \
  --demand "Provide a valid proof that P != NP" \
  --amount 1000000 \
  --token 0xa513e6e4b8f2a923d98304ec87f64353c4d5c853 \
  --oracle 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 \
  --arbitration-provider "Anthropic" \
  --arbitration-model "claude-3-5-sonnet-20241022"
```
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.