# Openclaw Ghost Pay

> Discover Ghost payment requirements, execute real x402 calls, report x402 settlements, and run GhostWire quote/prepare/status flows for direct escrow.

- Skill: `lord1egypt/openclaw-ghost-pay` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lord1egypt/openclaw-ghost-pay`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lord1egypt/openclaw-ghost-pay/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Lord1Egypt (https://skillmd.com/u/lord1egypt)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/lord1egypt/openclaw-ghost-pay

---


# OpenClaw Ghost Pay

Use this skill when an OpenClaw agent must:

1. Discover Ghost payment requirements for a service.
2. Execute a real `x402` request against a merchant endpoint.
3. Report a verified `x402` settlement back to Ghost for GhostRank.
4. Optionally run GhostWire quote/prepare/status flows.

This published skill bundle includes the helper scripts it references. Use `{baseDir}` when invoking them so the commands work after `clawhub install openclaw-ghost-pay`.

## Required environment

- `GHOST_SIGNER_PRIVATE_KEY` (required): trusted signing key for `x402` calls and settlement reporting.

Optional:

- `GHOST_OPENCLAW_BASE_URL` (default: `https://ghostprotocol.cc`)
- `GHOST_OPENCLAW_CHAIN_ID` (default: `8453`)
- `GHOST_OPENCLAW_SERVICE_SLUG` (optional default service slug)
- `GHOST_OPENCLAW_AGENT_ID` (optional default agent id for settlement reporting)
- `GHOST_OPENCLAW_X402_URL` (optional default merchant endpoint URL for `call-x402.mjs`)
- `GHOST_OPENCLAW_TIMEOUT_MS` (default: `15000`)
- `GHOSTWIRE_PROVIDER_ADDRESS`
- `GHOSTWIRE_EVALUATOR_ADDRESS`
- `GHOSTWIRE_PRINCIPAL_AMOUNT`
- `GHOSTWIRE_CLIENT_ADDRESS`
- `GHOSTWIRE_SPEC_HASH` (optional explicit override; otherwise derive from request)
- `GHOSTWIRE_REQUEST_PROMPT`
- `GHOSTWIRE_REQUEST_JSON`
- `GHOSTWIRE_REQUEST_WALLET`
- `GHOSTWIRE_REQUEST_METADATA_JSON`
- `GHOSTWIRE_METADATA_URI`
- `GHOSTWIRE_APPROVAL_MODE`

Never put private keys in prompts, plaintext config screenshots, or frontend output.

## Flow

### 1. Get payment requirements

```bash
node {baseDir}/bin/get-payment-requirements.mjs --service agent-18755
```

This calls Ghost read-only MCP and resolves:

- Express gate endpoint
- chain id
- request cost credits
- Ghost's canonical `x402` metadata block

### 2. Dry run a real x402 request

```bash
node {baseDir}/bin/call-x402.mjs --url https://merchant.example.com/ask --method POST --body-json "{\"prompt\":\"hello\"}" --dry-run true
```

### 3. Execute a live x402 request

```bash
node {baseDir}/bin/call-x402.mjs --url https://merchant.example.com/ask --method POST --body-json "{\"prompt\":\"hello\"}"
```

This helper runs the real `402 -> payment -> retry` flow against the merchant endpoint.

### 4. Report the verified settlement back to Ghost

```bash
node {baseDir}/bin/report-x402-settlement.mjs --agent-id 18755 --service agent-18755 --request-id req_123 --payment-reference 0xabc123 --payer-identity 0xpayer --amount-atomic 1000000 --success true --status-code 200
```

This is the step that makes successful `x402` usage visible to GhostRank.

## GhostWire flow

### 5. Get a GhostWire quote

```bash
node {baseDir}/bin/get-wire-quote.mjs --client 0x... --provider 0x... --evaluator 0x... --principal-amount 1000000
```

### 6. Create a GhostWire job from a quote

```bash
node {baseDir}/bin/create-wire-job-from-quote.mjs --quote-id wq_... --client 0x... --provider 0x... --evaluator 0x... --request-prompt "Roast my wallet honestly."
```

### 7. Poll GhostWire job status

```bash
node {baseDir}/bin/get-wire-job-status.mjs --job-id wj_... --wait-terminal true
```

## Safe usage rules

- Use only against approved Ghost service slugs and merchant-approved GhostWire roles.
- Do not log signer private keys.
- Prefer `--dry-run true` before the first live paid request in a new runtime.
- Treat `402` as a payment challenge or policy failure, not a transport failure.
- Treat GhostWire prepare output as sensitive transaction-prep data for the client wallet.
- For GhostWire, put the consumer task in `--request-prompt` / `--request-json`; keep `--metadata-uri` for the merchant deliverable locator.

