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.
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-createSKILL.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"
```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.
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.
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/.
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 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.
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.
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.
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.