{"skill":{"slug":"nla-create","displayName":"Nla Create","summary":"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 orac...","description":"---\nname: nla-create\ndescription: 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.\nmetadata:\n  author: arkhai\n  version: \"1.0\"\ncompatibility: Requires nla CLI installed (npm install -g nla). Requires a funded Ethereum wallet and access to an EVM chain.\nallowed-tools: Bash(nla:*) Read\n---\n\n# Create NLA Escrow\n\nHelp the user create a blockchain escrow backed by a natural language demand using the `nla` CLI.\n\n## Overview\n\nAn 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.\n\n## Step-by-step instructions\n\n### 1. Gather requirements\n\nCollect the following from the user conversationally:\n\n**Required:**\n- **Demand**: The natural language condition that must be fulfilled. Help the user craft something clear and unambiguous.\n- **Amount**: Number of tokens to escrow (in the token's smallest unit - no automatic decimal conversion).\n- **Token address**: ERC20 token contract address (`0x...`).\n- **Oracle address**: Address of the oracle that will arbitrate.\n\n**Optional:**\n- **Arbitration provider**: `OpenAI` (default), `Anthropic`, or `OpenRouter`.\n- **Arbitration model**: e.g. `gpt-4o-mini` (default), `claude-3-5-sonnet-20241022`, `openai/gpt-4o`.\n- **Arbitration prompt**: Custom prompt template with `{{demand}}` and `{{obligation}}` placeholders.\n\n### 2. Check prerequisites\n\n```bash\n# Verify CLI is available\nwhich nla\n\n# Check current network\nnla network\n\n# Check wallet is configured\nnla wallet:show\n```\n\nIf no wallet is configured, the user must either:\n- Run `nla wallet:set --private-key <key>`\n- Pass `--private-key <key>` to the command\n- Set the `PRIVATE_KEY` environment variable\n\n### 3. Help craft the demand\n\nGuide the user to write an effective demand:\n- Be specific and evaluable by an LLM\n- Consider: what counts as valid fulfillment? Is the condition verifiable?\n- For claims requiring real-world knowledge, suggest models with search (Perplexity search is available if the oracle has it configured)\n- The demand, provider, model, and prompt are all encoded on-chain and publicly visible - never include secrets\n\n### 4. Execute escrow creation\n\n```bash\nnla escrow:create \\\n  --demand \"<demand text>\" \\\n  --amount <amount> \\\n  --token <token_address> \\\n  --oracle <oracle_address> \\\n  [--arbitration-provider \"<provider>\"] \\\n  [--arbitration-model \"<model>\"] \\\n  [--arbitration-prompt \"<prompt>\"]\n```\n\n### 5. Record output\n\nThe command outputs an escrow UID (`0x...`). This UID is needed for fulfillment and collection. Present it clearly to the user and explain next steps.\n\n## Key details\n\n- Available networks: `anvil` (local), `sepolia`, `base-sepolia`, `mainnet`. Switch with `nla switch <network>`.\n- For local dev, `nla dev` starts Anvil, deploys contracts, creates mock tokens, and starts the oracle.\n- Public demo oracle on Sepolia: `0xc5c132B69f57dAAAb75d9ebA86cab504b272Ccbc`.\n- Default arbitration prompt:\n  ```\n  Evaluate the fulfillment against the demand and decide whether the demand was validly fulfilled\n\n  Demand: {{demand}}\n\n  Fulfillment: {{obligation}}\n  ```\n\n## Example\n\n```bash\nnla escrow:create \\\n  --demand \"Provide a valid proof that P != NP\" \\\n  --amount 1000000 \\\n  --token 0xa513e6e4b8f2a923d98304ec87f64353c4d5c853 \\\n  --oracle 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 \\\n  --arbitration-provider \"Anthropic\" \\\n  --arbitration-model \"claude-3-5-sonnet-20241022\"\n```\n","tags":{"arkhai":"1.0.0","blockchain":"1.0.0","escrow":"1.0.0","latest":"1.0.0"},"stats":{"comments":0,"downloads":662,"installsAllTime":25,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1773232073170,"updatedAt":1779077943469},"latestVersion":{"version":"1.0.0","createdAt":1773232073170,"changelog":"Initial release of the nla-create skill.\n\n- Create on-chain Natural Language Agreement (NLA) escrows locking ERC20 tokens with a natural language demand.\n- Guides users through gathering required parameters (demand, amount, token, oracle) and optional arbitration settings.\n- Provides detailed CLI usage instructions and prerequisites for setup.\n- Helps craft clear, evaluable demands for reliable AI arbitration.\n- Outputs the unique escrow ID and explains next steps for fulfillment and collection.","license":"MIT-0"},"metadata":null,"owner":{"handle":"mlegls","userId":"s172v8c875shrddqrgkptaqpjs88401r","displayName":"疒奀","image":"https://avatars.githubusercontent.com/u/46226846?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780089840906}}