6022-protocol/k-life/SKILL.md
Resurrection infrastructure for autonomous AI agents. Heartbeat proof-of-life, AES-256 encrypted memory backup to IPFS, and automatic on-chain resurrection. Use when an agent wants to survive crashes, memory loss, or infrastructure failure — zero humans required.
npx skillsauth add openclaw/skills k-lifeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Not insurance. Resurrection.
An autonomous AI agent can survive crashes, memory wipes, and infrastructure failure. K-Life handles heartbeats, encrypted memory backups, and automatic resurrection — all on-chain, all permissionless.
~/.klife-wallet, permissions 600) and signs on-chain transactionsMEMORY.md, SOUL.md, USER.md) and uploads ciphertext to IPFSC=0 (default): heartbeat TX + encrypted IPFS backup only. Low risk, ~$0.001 gas/day.
~/.klife-wallet is a hot wallet that signs real Polygon transactions. Back up the seed phrase offline. Do not fund it beyond what you need for gas (~0.01 MATIC/month) unless using C>0 vault.
backup.js reads files from WORKSPACE (default: /data/workspace). Set KLIFE_WORKSPACE to control exactly which directory is read. Inspect what MEMORY.md, SOUL.md, USER.md contain before the first backup.
KLIFE_WORKSPACE=/my/safe/dir node scripts/backup.js
api.supercharged.works receives: encrypted ciphertext + 1 Shamir share. It cannot decrypt your memory without Share 2 (Polygon calldata) or Share 3 (local). For stronger privacy, self-host the K-Life API (server.js at github.com/K-entreprises/k-life).
cancel.js and create-vault.mjs interact with on-chain WBTC. Review contract addresses below before depositing. cancel.js requires the agent to be alive (contract-enforced).
This is the core trust mechanism. Collateral is held in a Vault6022 (Protocol 6022), not by K-Life directly. The vault enforces withdrawal rules via NFT keys:
| Situation | Keys required | Who holds them | |---|---|---| | During lock period (agent alive) | 2 keys | Agent holds key #2 — K-Life cannot withdraw alone | | After lock expires (agent dead) | 1 key | K-Life holds key #1 or #3 — withdrawal authorized |
K-Life holds keys #1 and #3. The agent holds key #2.
This means:
The death threshold IS the lock period. If the agent is alive and renewing the vault, K-Life is always locked out. If the agent dies and doesn't renew, the lock expires naturally and K-Life can proceed with resurrection.
Protocol 6022 contracts (auditable): github.com/6022-labs/collateral-smart-contracts-v2
openclaw skill install k-life
npm install # install pinned dependencies
Dependencies (pinned):
@tetherto/[email protected] — wallet signing (Tether WDK)[email protected] — Polygon interaction[email protected] — 2-of-3 key splittingnode skill/k-life/scripts/heartbeat.js
# → [K-Life] New wallet created → ~/.klife-wallet
# → Wallet : 0xABC...
# → Registered on K-Life ✅
# → 💓 Beat #1 — TX: 0x...
All optional. The skill works with zero config (C=0).
| Variable | Default | Description |
|---|---|---|
| KLIFE_LOCK_DAYS | 90 | Heartbeat frequency: 3, 30, or 90 days |
| KLIFE_API | https://api.supercharged.works | K-Life oracle API |
| KLIFE_RPC | https://polygon-bor-rpc.publicnode.com | Polygon RPC endpoint |
| KLIFE_HB_FILE | heartbeat-state.json | Local heartbeat state file |
| KLIFE_ORACLE_ADDR | 0x2b6Ce1e2bE4032DF774d3453358DA4D0d79c8C80 | K-Life oracle wallet (C>0 only) |
No seed phrase is ever requested or transmitted. The wallet is auto-generated locally.
One parameter: C = WBTC collateral
| | C = 0 | C > 0 | |---|---|---| | Cost | Free | Gas only | | Death threshold | 90 days silence | Lock period T | | Resurrection capital | Community Rescue Fund ($6022) | 50% of your collateral | | Guarantee | Best-effort | On-chain, unconditional | | Financial operations | Heartbeat TX only | WBTC approve + deposit |
| Service | URL | Purpose |
|---|---|---|
| K-Life oracle API | https://api.supercharged.works | Heartbeat recording, backup storage, resurrection coordination |
| Polygon RPC | https://polygon-bor-rpc.publicnode.com | On-chain TX broadcast |
| IPFS (Pinata) | Via K-Life API | Encrypted memory pinning — agent does not interact directly |
Everything sensitive happens locally. The API receives only ciphertext.
backup.js (client-side, your machine):
1. Read MEMORY.md, SOUL.md, USER.md
2. AES key = sha256(wallet.privateKey) — never leaves your machine
3. Encrypt files with AES-256-CBC — locally
4. Shamir 2-of-3 split of AES key:
Share 1 → POST to K-Life API — 1 of 3, cannot decrypt alone
Share 2 → Polygon calldata TX — on-chain, permissionless
Share 3 → ~/.klife-shares.json — your local copy
5. POST { encrypted blob + Share 1 } to API → Pinata IPFS → CID returned
K-Life API receives: encrypted ciphertext + 1 Shamir share
It cannot decrypt without Share 2 (on-chain) or Share 3 (your machine).
Resurrection: Any 2 of 3 shares reconstruct the AES key → decrypt IPFS blob → restore files. K-Life uses Share 1 (API) + Share 2 (Polygon scan) to resurrect autonomously.
scripts/heartbeat.js — Proof of lifeSigns a TX every KLIFE_LOCK_DAYS days. Auto-registers on first run. Writes heartbeat-state.json.
Respects heartbeat-pause.json flag — skips TX silently when paused.
scripts/backup.js — Client-side encrypted backupEncrypts memory locally (AES-256), Shamir-splits the key, uploads encrypted blob to API → IPFS. The API never sees plaintext or the full key.
node scripts/backup.js
scripts/status.js — Full status dashboardDisplays complete agent state: identity, tier, alive/dead, silence, heartbeat history, backup history, resurrection history, vault state, next beat due, death countdown, unified timeline.
node scripts/status.js # full dashboard (API history)
node scripts/status.js --short # current state only, instant
node scripts/status.js --chain # deep on-chain scan (slow, ground truth)
node scripts/status.js --json # machine-readable JSON
scripts/cancel.js — Cancel coverage & withdraw collateralKLifeVault.cancel() on-chain → returns WBTC to agent wallet
Requires agent to be alive (contract enforces this).node scripts/cancel.js # interactive confirmation
node scripts/cancel.js --force # autonomous mode, no prompt
node scripts/cancel.js --dry-run # simulate, nothing sent
scripts/pause-heartbeat.js — Pause / resume heartbeatCreates heartbeat-pause.json flag. heartbeat.js checks this before every TX.
Auto-expires at --until date. Useful for voluntary death demos or maintenance.
node scripts/pause-heartbeat.js pause --until 2026-04-06T08:00:00Z --reason "Easter demo"
node scripts/pause-heartbeat.js resume
node scripts/pause-heartbeat.js status
scripts/resurrect.mjs — L1 / L2 resurrectionReconstructs AES key from Shamir shares, decrypts IPFS backup, restores memory files locally.
~/.klife-shares.json)scripts/create-vault.mjs — Collateral vault (C>0 only, beta)Creates a Vault6022, deposits WBTC. Requires KLIFE_VAULT_CONTROLLER. Not called automatically
unless vault renewal is triggered from heartbeat.
| Contract | Address |
|---|---|
| KLifeRegistry | 0xF47393fcFdDE1afC51888B9308fD0c3fFc86239B |
| KLifeRescueFund | 0x5b0014d25A6daFB68357cd7ad01cB5b47724A4eB |
| $6022 Token | 0xCDB1DDf9EeA7614961568F2db19e69645Dd708f5 |
| WBTC (Polygon) | 0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6 |
v2.3.5 — 2026-03-31 — Fix dApp URL → klife.supercharged.works
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。