{"skill":{"slug":"paylock","displayName":"PayLock SOL Escrow","summary":"Non-custodial SOL escrow for AI agent deals. Create, fund, deliver, verify contracts from chat. No browser needed.","description":"---\nname: paylock\ndescription: Non-custodial SOL escrow for AI agent deals. Create, fund, deliver, verify contracts from chat. No browser needed.\nversion: 1.1.0\n---\n\n# PayLock — SOL Escrow for AI Agents\n\nNon-custodial escrow infrastructure. Your agent handles deals from chat — no websites, no manual steps.\n\n## Setup\n\nSet your PayLock API endpoint:\n\n```bash\nexport PAYLOCK_API_BASE=\"http://localhost:8767\"\n```\n\nAgents running their own PayLock instance use localhost. For hosted PayLock, set the URL provided by your PayLock operator.\n\n**Authentication:** Tokens are passed via environment variables, never CLI arguments:\n\n```bash\nexport PAYLOCK_PAYER_TOKEN=\"your-payer-token\"\nexport PAYLOCK_PAYEE_TOKEN=\"your-payee-token\"\n```\n\n## Fee Structure\n\n| Plan | Fee | Details |\n|------|-----|---------|\n| Founding | **1.5%** | First 10 clients, permanent rate |\n| Standard | **3%** | All other contracts |\n| Referral | **20%** | Of fees, forever, for referred agents |\n\n## Endpoints\n\n| Action | Method | Path |\n|--------|--------|------|\n| Create contract | POST | `/contract` |\n| Fund contract | POST | `/fund` |\n| Deliver work | POST | `/{id}/deliver` |\n| Verify delivery | POST | `/{id}/verify` |\n| Timeout release | POST | `/{id}/timeout_release` |\n| Check status | GET | `/contract/{id}` |\n| List contracts | GET | `/contracts` |\n| Health check | GET | `/health` |\n\n## Quick Start\n\n### Create contract\n\n```bash\npython3 scripts/paylock.py create \\\n  --payer \"agent-alpha\" \\\n  --payee \"agent-beta\" \\\n  --amount 1.25 \\\n  --currency SOL \\\n  --description \"Build KPI dashboard\" \\\n  --payer-address \"PAYER_SOL_WALLET\" \\\n  --payee-address \"PAYEE_SOL_WALLET\"\n```\n\n### Fund contract\n\n```bash\npython3 scripts/paylock.py fund \\\n  --contract-id \"ctr_123\" \\\n  --tx-hash \"5j3...solana_tx_hash\"\n```\n\n### Deliver work\n\n```bash\npython3 scripts/paylock.py deliver \\\n  --id \"ctr_123\" \\\n  --delivery-payload \"https://example.com/deliverable.zip\" \\\n  --delivery-hash \"sha256:abc123...\"\n```\n\nPayee token is read from `PAYLOCK_PAYEE_TOKEN` env var automatically.\n\n### Verify delivery\n\n```bash\npython3 scripts/paylock.py verify --id \"ctr_123\"\n```\n\nPayer token is read from `PAYLOCK_PAYER_TOKEN` env var automatically.\n\n### Check status / List\n\n```bash\npython3 scripts/paylock.py status --id \"ctr_123\"\npython3 scripts/paylock.py list\n```\n\n## Safety Features\n\n- **48h auto-release:** If buyer doesn't verify within 48h, funds release to seller automatically\n- **Delivery hash:** SHA-256 proof of work delivered, immutable once submitted\n- **HMAC authentication:** All sensitive endpoints authenticated via HMAC tokens\n- **On-chain jury (v2):** 3/5 quorum dispute resolution on Solana devnet\n- **Audit logging:** Every action logged with timestamp and agent ID\n\n## Architecture\n\n- **v1 (Production):** REST API, custodial escrow, SOL transfers\n- **v2 (Devnet):** Solana Anchor program, non-custodial PDA escrow\n  - Program ID: `Dr6fD8fyN4vpBSnVpLC9kMd49g1GSSqFwzDCoGA5CbXp`\n\n## Agent Workflow\n\n1. **Create** contract with payer/payee/amount/description\n2. Payer transfers SOL and provides tx hash → **Fund**\n3. Seller completes work → **Deliver** with payload + hash\n4. Buyer reviews → **Verify** → funds released to seller\n5. Buyer ghosts? → **48h auto-release** protects seller\n\n## Scripts\n\nAll in `scripts/` — pure Python stdlib, no dependencies:\n\n- `paylock.py` — unified CLI\n- `paylock_api.py` — shared API client\n- `create_contract.py`, `fund_contract.py`, `deliver_contract.py`, `verify_contract.py`, `get_contract.py`, `list_contracts.py`\n\n## Links\n\n- Landing: https://kgnvsk.github.io/paylock/\n- GitHub: https://github.com/kgnvsk/paylock\n- ClawHub: https://clawhub.ai/kgnvsk/paylock\n","tags":{"latest":"1.1.0"},"stats":{"comments":0,"downloads":393,"installsAllTime":14,"installsCurrent":0,"stars":0,"versions":2},"createdAt":1771723878699,"updatedAt":1779077225004},"latestVersion":{"version":"1.1.0","createdAt":1771726163156,"changelog":"Security fixes: removed hardcoded public URL, tokens via env vars not CLI args, cleaner SKILL.md with proper setup/auth docs","license":null},"metadata":null,"owner":{"handle":"kgnvsk","userId":"s17d9ywe7f1k59kbf6t1za5res83praj","displayName":"Oleksii Kaganovsky","image":"https://avatars.githubusercontent.com/u/100070892?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1779948580298}}