{
  "schemaVersion": "1.0",
  "item": {
    "slug": "x1-vault-memory",
    "name": "X1 Vault Memory",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/Lokoweb3/x1-vault-memory",
    "canonicalUrl": "https://clawhub.ai/Lokoweb3/x1-vault-memory",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/x1-vault-memory",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=x1-vault-memory",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "package-lock.json",
      "package.json",
      "scripts/backup.sh",
      "scripts/restore.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/x1-vault-memory"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/x1-vault-memory",
    "agentPageUrl": "https://openagent3.xyz/skills/x1-vault-memory/agent",
    "manifestUrl": "https://openagent3.xyz/skills/x1-vault-memory/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/x1-vault-memory/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "X1 Vault Memory",
        "body": "Encrypted, decentralized memory backup for OpenClaw agents — powered by IPFS and X1 blockchain."
      },
      {
        "title": "Required Configuration",
        "body": "VariableRequiredDefaultDescriptionPINATA_JWT✅ Yes—Your Pinata API token for IPFS uploads. Get it at https://app.pinata.cloudX1_RPC_URL❌ Nohttps://rpc.mainnet.x1.xyzThe X1 RPC endpoint. Change only if using testnet or custom endpointx1_vault_cli/wallet.json✅ Yes—Your X1 wallet keypair file. Used for encryption and blockchain anchoring.\n\n🔴 SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet."
      },
      {
        "title": "What It Does",
        "body": "Backs up your agent's brain (identity, personality, memories) with AES-256-GCM military-grade encryption, stores it on IPFS, and anchors the CID on the X1 blockchain. Only your wallet keypair can decrypt.\n\nPipeline: Agent Files > tar.gz > AES-256-GCM Encrypt > IPFS Upload > X1 On-Chain Anchor"
      },
      {
        "title": "Why This Exists",
        "body": "Servers die. Containers get wiped. One bad rm -rf and your agent's identity is gone. X1 Vault Memory makes your agent's brain indestructible — encrypted, decentralized, and recoverable from anywhere."
      },
      {
        "title": "Key Features",
        "body": "AES-256-GCM encryption — uses your wallet keypair as the key. Only you can decrypt.\nIPFS storage — your data lives on a decentralized network, not a single server.\nX1 blockchain anchoring — every backup CID is recorded on-chain for permanent, verifiable proof.\nSelf-healing restore — one command to download, decrypt, and restore all agent files.\nNegligible cost — about 0.03 USD per year for daily backups."
      },
      {
        "title": "New in v1.1.2",
        "body": "✅ Security fixes: removed \"curl | sh\" Solana CLI install suggestion\n✅ Declared environment variables clearly in skill metadata\n✅ Added opt-in note for heartbeat auto-restore\nUpdated package.json with required env vars in config section"
      },
      {
        "title": "New in v1.1.0",
        "body": "SHA-256 integrity verification on backup and restore\nSelective restore with --only flag to restore specific files or directories\nList command for viewing all backups with versioned rollback support"
      },
      {
        "title": "Requirements",
        "body": "Node.js v18+ — run all scripts without external dependencies\nPinata Account — free at https://app.pinata.cloud (500 files, 1GB included)\nSolana Wallet — keypair JSON file (free to create via @solana/web3.js)\nXNT Tokens — about 0.002 XNT per backup for on-chain fees\n\n✅ No Solana CLI required — we use @solana/web3.js directly.\n\n🔴 SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet."
      },
      {
        "title": "How to Get XNT Tokens",
        "body": "XNT is the native gas token of the X1 blockchain. You need a small amount for on-chain transaction fees.\n\nBridge from Solana (easiest) — https://app.bridge.x1.xyz — wrap SOL/USDC to X1, then swap for XNT on XDEX\nBuy directly on XDEX — https://app.xdex.xyz/swap — native DEX on X1, connect your wallet and swap\nOTC — https://otc.xonedex.xyz — peer-to-peer for larger amounts\nHoney Badger Bot — https://t.me/HoneyBadgerCoreBot?start=ref_HEBCU2E3 — Telegram trading bot for instant swaps\n\nYou will also need the X1 Wallet Chrome extension: https://chromewebstore.google.com/detail/x1-wallet/kcfmcpdmlchhbikbogddmgopmjbflnae\n\nStart with bridge + XDEX if you are coming from Solana. That is the smoothest path. Each backup costs approximately 0.002 XNT, so even a small amount goes a long way."
      },
      {
        "title": "How to Set Up Pinata and Get Your JWT Token",
        "body": "Pinata is the IPFS pinning service that stores your encrypted backups. The free tier is more than enough.\n\nGo to https://app.pinata.cloud and click Sign Up\nCreate an account with your email or sign in with GitHub/Google\nAfter login, click your profile icon in the top right corner\nSelect API Keys from the dropdown menu\nClick the New Key button\nEnable only the pinFileToIPFS permission (Admin access is NOT required)\nGive the key a name like \"x1-vault-memory\"\nClick Create Key\nYou will see three values: API Key, API Secret, and JWT\nCopy the JWT token — this is your PINATA_JWT value\nSave it somewhere safe — you will not be able to see the JWT again after closing this page\n\nThe JWT token does not expire unless you manually revoke it in the Pinata dashboard. Free tier includes 500 files and 1GB storage. Each encrypted backup is around 10-50KB, so you can store thousands of backups without paying anything."
      },
      {
        "title": "Setup",
        "body": "🔴 SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet."
      },
      {
        "title": "1. Install Node dependencies",
        "body": "cd x1-vault-memory && npm install"
      },
      {
        "title": "2. Configure environment variables",
        "body": "Option A: Using a .env file (recommended for Docker and production)\n\nCreate a .env file in your project or workspace root:\n\nPINATA_JWT=your_pinata_jwt_token\nX1_RPC_URL=https://rpc.mainnet.x1.xyz\n\nNo quotes, no export keyword. Docker Compose and most Node.js apps read this format automatically.\n\nOption B: Using shell environment (for manual or one-time use)\n\nexport PINATA_JWT=\"your_pinata_jwt_token\"\nexport X1_RPC_URL=\"https://rpc.mainnet.x1.xyz\"\n\nNote: These values only persist for the current terminal session.\n\nOption C: Docker Compose environment block\n\nIf running inside Docker, add to your docker-compose.yml environment section:\n\nenvironment:\n  PINATA_JWT: ${PINATA_JWT}\n  X1_RPC_URL: https://rpc.mainnet.x1.xyz\n\nThen set PINATA_JWT in your Docker .env file as shown in Option A."
      },
      {
        "title": "3. Create a wallet keypair (Node.js only, no CLI)",
        "body": "The wallet can be created programmatically using @solana/web3.js. Here's a quick script:\n\nnode -e \"\nconst { Keypair } = require('@solana/web3.js');\nconst fs = require('fs');\nconst kp = Keypair.generate();\nfs.writeFileSync('x1_vault_cli/wallet.json', JSON.stringify([...kp.secretKey]));\nconsole.log('Wallet created:', kp.publicKey.toBase58());\nconsole.log('Save the secretKey JSON array to x1_vault_cli/wallet.json');\n\"\n\nOr use the X1 Wallet Chrome extension to generate a keypair and export the secretKey.\n\nKeep wallet.json safe. This is your encryption key AND your blockchain wallet. Never commit it to GitHub."
      },
      {
        "title": "4. Fund the wallet",
        "body": "Get your wallet address from x1_vault_cli/wallet.json (the public key derived from the secret key), then send XNT tokens to that address."
      },
      {
        "title": "5. X1 RPC URL",
        "body": "Set X1_RPC_URL to your preferred endpoint. Default: https://rpc.mainnet.x1.xyz"
      },
      {
        "title": "Backup",
        "body": "node src/backup.js\n\nEncrypts and uploads IDENTITY.md, SOUL.md, USER.md, TOOLS.md, and memory/ directory. Records CID on X1 blockchain and logs to vault-log.json."
      },
      {
        "title": "Restore",
        "body": "node src/restore.js <CID>\n\nDownloads from IPFS, decrypts with your wallet key, and restores all agent files."
      },
      {
        "title": "Selective Restore",
        "body": "node src/restore.js <CID> --only memory/\n\nRestore only specific files or directories from a backup."
      },
      {
        "title": "List All Backups",
        "body": "node src/list.js\n\nView all stored backups with timestamps, CIDs, and checksums for versioned rollback."
      },
      {
        "title": "Heartbeat Check",
        "body": "node src/heartbeat.js\n\nMonitors agent file integrity. If critical files are missing or corrupted, automatically triggers a restore from the latest backup.\n\n⚠️ Opt-in Only — Heartbeat auto-restore must be explicitly scheduled via cron. It is NOT automatic.\nAdd to crontab:\n0 */6 * * * cd /path/to/workspace && node x1-vault-memory/src/heartbeat.js >> /var/log/vault-heartbeat.log 2>&1\n\nNote: Heartbeat auto-restore is disabled by default and must be explicitly enabled via cron."
      },
      {
        "title": "Dry Run",
        "body": "node src/backup.js --dry-run\n\nShows which files would be backed up without uploading or spending tokens."
      },
      {
        "title": "Error Handling",
        "body": "Pinata is down — backup fails with connection error. Retry later, local files are untouched.\nX1 RPC fails — IPFS upload succeeds but on-chain anchor fails. CID is still logged locally in vault-log.json. Re-anchor when RPC recovers.\nInvalid wallet — encryption fails before upload. Check wallet.json path and format (must be JSON array of bytes).\nInsufficient XNT — on-chain transaction rejected. Fund wallet with more XNT tokens.\nCID not found on restore — check Pinata dashboard, re-pin if needed.\nChecksum mismatch — SHA-256 verification failed. Backup may be corrupted. Try restoring from a previous version using list.js."
      },
      {
        "title": "Where Data Is Stored",
        "body": "IPFS — encrypted blob on Pinata IPFS network\nX1 Blockchain — CID recorded as on-chain transaction (permanent, verifiable)\nvault-log.json — local log of all backup CIDs with timestamps and checksums\nOnly your wallet keypair can decrypt the data"
      },
      {
        "title": "Security",
        "body": "AES-256-GCM authenticated encryption derived from your wallet secret key\nSHA-256 integrity checksums on every backup and restore\nOnly your keypair can decrypt — even if someone finds the CID, data stays private\nStored on IPFS, not a single server\nCID anchored on X1 blockchain for tamper-proof records\nNever share your wallet.json or PINATA_JWT\n\n🔴 SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet."
      },
      {
        "title": "Automation",
        "body": "Weekly backup via cron:\n\n0 2 * * 0 cd /path/to/workspace && node x1-vault-memory/src/backup.js >> /var/log/vault-backup.log 2>&1\n\nHeartbeat check every 6 hours (opt-in):\n\n0 */6 * * * cd /path/to/workspace && node x1-vault-memory/src/heartbeat.js >> /var/log/vault-heartbeat.log 2>&1"
      },
      {
        "title": "Files Backed Up",
        "body": "IDENTITY.md — agent name, persona, vibe\nSOUL.md — personality, instructions, expertise\nUSER.md — user profile and preferences\nTOOLS.md — environment-specific notes\nmemory/*.md — daily memory logs"
      },
      {
        "title": "Tech Stack",
        "body": "ComponentTechnologyEncryptionAES-256-GCM (authenticated encryption)IntegritySHA-256 checksumsIPFS StoragePinata API (JWT auth)BlockchainX1 Mainnet (SVM-compatible L1)Wallet@solana/web3.js (Node.js, no CLI needed)RuntimeNode.js v18+"
      },
      {
        "title": "Links",
        "body": "GitHub: https://github.com/Lokoweb3/x1-vault-memory\nX1 Explorer: https://explorer.mainnet.x1.xyz\nX1 Bridge: https://app.bridge.x1.xyz\nXDEX: https://app.xdex.xyz/swap\nX1 Wallet: https://chromewebstore.google.com/detail/x1-wallet/kcfmcpdmlchhbikbogddmgopmjbflnae\nHoney Badger Bot: https://t.me/HoneyBadgerCoreBot?start=ref_HEBCU2E3\nPinata: https://app.pinata.cloud\n\nBuilt by Lokoweb3\n\nGitHub Repository | OpenClaw Docs"
      }
    ],
    "body": "X1 Vault Memory\n\nEncrypted, decentralized memory backup for OpenClaw agents — powered by IPFS and X1 blockchain.\n\nRequired Configuration\nVariable\tRequired\tDefault\tDescription\nPINATA_JWT\t✅ Yes\t—\tYour Pinata API token for IPFS uploads. Get it at https://app.pinata.cloud\nX1_RPC_URL\t❌ No\thttps://rpc.mainnet.x1.xyz\tThe X1 RPC endpoint. Change only if using testnet or custom endpoint\nx1_vault_cli/wallet.json\t✅ Yes\t—\tYour X1 wallet keypair file. Used for encryption and blockchain anchoring.\n\n🔴 SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet.\n\nWhat It Does\n\nBacks up your agent's brain (identity, personality, memories) with AES-256-GCM military-grade encryption, stores it on IPFS, and anchors the CID on the X1 blockchain. Only your wallet keypair can decrypt.\n\nPipeline: Agent Files > tar.gz > AES-256-GCM Encrypt > IPFS Upload > X1 On-Chain Anchor\n\nWhy This Exists\n\nServers die. Containers get wiped. One bad rm -rf and your agent's identity is gone. X1 Vault Memory makes your agent's brain indestructible — encrypted, decentralized, and recoverable from anywhere.\n\nKey Features\nAES-256-GCM encryption — uses your wallet keypair as the key. Only you can decrypt.\nIPFS storage — your data lives on a decentralized network, not a single server.\nX1 blockchain anchoring — every backup CID is recorded on-chain for permanent, verifiable proof.\nSelf-healing restore — one command to download, decrypt, and restore all agent files.\nNegligible cost — about 0.03 USD per year for daily backups.\nNew in v1.1.2\n✅ Security fixes: removed \"curl | sh\" Solana CLI install suggestion\n✅ Declared environment variables clearly in skill metadata\n✅ Added opt-in note for heartbeat auto-restore\nUpdated package.json with required env vars in config section\nNew in v1.1.0\nSHA-256 integrity verification on backup and restore\nSelective restore with --only flag to restore specific files or directories\nList command for viewing all backups with versioned rollback support\nRequirements\nNode.js v18+ — run all scripts without external dependencies\nPinata Account — free at https://app.pinata.cloud (500 files, 1GB included)\nSolana Wallet — keypair JSON file (free to create via @solana/web3.js)\nXNT Tokens — about 0.002 XNT per backup for on-chain fees\n\n✅ No Solana CLI required — we use @solana/web3.js directly.\n\n🔴 SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet.\n\nHow to Get XNT Tokens\n\nXNT is the native gas token of the X1 blockchain. You need a small amount for on-chain transaction fees.\n\nBridge from Solana (easiest) — https://app.bridge.x1.xyz — wrap SOL/USDC to X1, then swap for XNT on XDEX\nBuy directly on XDEX — https://app.xdex.xyz/swap — native DEX on X1, connect your wallet and swap\nOTC — https://otc.xonedex.xyz — peer-to-peer for larger amounts\nHoney Badger Bot — https://t.me/HoneyBadgerCoreBot?start=ref_HEBCU2E3 — Telegram trading bot for instant swaps\n\nYou will also need the X1 Wallet Chrome extension: https://chromewebstore.google.com/detail/x1-wallet/kcfmcpdmlchhbikbogddmgopmjbflnae\n\nStart with bridge + XDEX if you are coming from Solana. That is the smoothest path. Each backup costs approximately 0.002 XNT, so even a small amount goes a long way.\n\nHow to Set Up Pinata and Get Your JWT Token\n\nPinata is the IPFS pinning service that stores your encrypted backups. The free tier is more than enough.\n\nGo to https://app.pinata.cloud and click Sign Up\nCreate an account with your email or sign in with GitHub/Google\nAfter login, click your profile icon in the top right corner\nSelect API Keys from the dropdown menu\nClick the New Key button\nEnable only the pinFileToIPFS permission (Admin access is NOT required)\nGive the key a name like \"x1-vault-memory\"\nClick Create Key\nYou will see three values: API Key, API Secret, and JWT\nCopy the JWT token — this is your PINATA_JWT value\nSave it somewhere safe — you will not be able to see the JWT again after closing this page\n\nThe JWT token does not expire unless you manually revoke it in the Pinata dashboard. Free tier includes 500 files and 1GB storage. Each encrypted backup is around 10-50KB, so you can store thousands of backups without paying anything.\n\nSetup\n\n🔴 SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet.\n\n1. Install Node dependencies\ncd x1-vault-memory && npm install\n\n2. Configure environment variables\n\nOption A: Using a .env file (recommended for Docker and production)\n\nCreate a .env file in your project or workspace root:\n\nPINATA_JWT=your_pinata_jwt_token\nX1_RPC_URL=https://rpc.mainnet.x1.xyz\n\n\nNo quotes, no export keyword. Docker Compose and most Node.js apps read this format automatically.\n\nOption B: Using shell environment (for manual or one-time use)\n\nexport PINATA_JWT=\"your_pinata_jwt_token\"\nexport X1_RPC_URL=\"https://rpc.mainnet.x1.xyz\"\n\n\nNote: These values only persist for the current terminal session.\n\nOption C: Docker Compose environment block\n\nIf running inside Docker, add to your docker-compose.yml environment section:\n\nenvironment:\n  PINATA_JWT: ${PINATA_JWT}\n  X1_RPC_URL: https://rpc.mainnet.x1.xyz\n\n\nThen set PINATA_JWT in your Docker .env file as shown in Option A.\n\n3. Create a wallet keypair (Node.js only, no CLI)\n\nThe wallet can be created programmatically using @solana/web3.js. Here's a quick script:\n\nnode -e \"\nconst { Keypair } = require('@solana/web3.js');\nconst fs = require('fs');\nconst kp = Keypair.generate();\nfs.writeFileSync('x1_vault_cli/wallet.json', JSON.stringify([...kp.secretKey]));\nconsole.log('Wallet created:', kp.publicKey.toBase58());\nconsole.log('Save the secretKey JSON array to x1_vault_cli/wallet.json');\n\"\n\n\nOr use the X1 Wallet Chrome extension to generate a keypair and export the secretKey.\n\nKeep wallet.json safe. This is your encryption key AND your blockchain wallet. Never commit it to GitHub.\n\n4. Fund the wallet\n\nGet your wallet address from x1_vault_cli/wallet.json (the public key derived from the secret key), then send XNT tokens to that address.\n\n5. X1 RPC URL\n\nSet X1_RPC_URL to your preferred endpoint. Default: https://rpc.mainnet.x1.xyz\n\nUsage\nBackup\nnode src/backup.js\n\n\nEncrypts and uploads IDENTITY.md, SOUL.md, USER.md, TOOLS.md, and memory/ directory. Records CID on X1 blockchain and logs to vault-log.json.\n\nRestore\nnode src/restore.js <CID>\n\n\nDownloads from IPFS, decrypts with your wallet key, and restores all agent files.\n\nSelective Restore\nnode src/restore.js <CID> --only memory/\n\n\nRestore only specific files or directories from a backup.\n\nList All Backups\nnode src/list.js\n\n\nView all stored backups with timestamps, CIDs, and checksums for versioned rollback.\n\nHeartbeat Check\nnode src/heartbeat.js\n\n\nMonitors agent file integrity. If critical files are missing or corrupted, automatically triggers a restore from the latest backup.\n\n⚠️ Opt-in Only — Heartbeat auto-restore must be explicitly scheduled via cron. It is NOT automatic.\n\nAdd to crontab:\n\n0 */6 * * * cd /path/to/workspace && node x1-vault-memory/src/heartbeat.js >> /var/log/vault-heartbeat.log 2>&1\n\n\nNote: Heartbeat auto-restore is disabled by default and must be explicitly enabled via cron.\n\nDry Run\nnode src/backup.js --dry-run\n\n\nShows which files would be backed up without uploading or spending tokens.\n\nError Handling\nPinata is down — backup fails with connection error. Retry later, local files are untouched.\nX1 RPC fails — IPFS upload succeeds but on-chain anchor fails. CID is still logged locally in vault-log.json. Re-anchor when RPC recovers.\nInvalid wallet — encryption fails before upload. Check wallet.json path and format (must be JSON array of bytes).\nInsufficient XNT — on-chain transaction rejected. Fund wallet with more XNT tokens.\nCID not found on restore — check Pinata dashboard, re-pin if needed.\nChecksum mismatch — SHA-256 verification failed. Backup may be corrupted. Try restoring from a previous version using list.js.\nWhere Data Is Stored\nIPFS — encrypted blob on Pinata IPFS network\nX1 Blockchain — CID recorded as on-chain transaction (permanent, verifiable)\nvault-log.json — local log of all backup CIDs with timestamps and checksums\nOnly your wallet keypair can decrypt the data\nSecurity\nAES-256-GCM authenticated encryption derived from your wallet secret key\nSHA-256 integrity checksums on every backup and restore\nOnly your keypair can decrypt — even if someone finds the CID, data stays private\nStored on IPFS, not a single server\nCID anchored on X1 blockchain for tamper-proof records\nNever share your wallet.json or PINATA_JWT\n\n🔴 SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet.\n\nAutomation\n\nWeekly backup via cron:\n\n0 2 * * 0 cd /path/to/workspace && node x1-vault-memory/src/backup.js >> /var/log/vault-backup.log 2>&1\n\n\nHeartbeat check every 6 hours (opt-in):\n\n0 */6 * * * cd /path/to/workspace && node x1-vault-memory/src/heartbeat.js >> /var/log/vault-heartbeat.log 2>&1\n\nFiles Backed Up\nIDENTITY.md — agent name, persona, vibe\nSOUL.md — personality, instructions, expertise\nUSER.md — user profile and preferences\nTOOLS.md — environment-specific notes\nmemory/*.md — daily memory logs\nTech Stack\nComponent\tTechnology\nEncryption\tAES-256-GCM (authenticated encryption)\nIntegrity\tSHA-256 checksums\nIPFS Storage\tPinata API (JWT auth)\nBlockchain\tX1 Mainnet (SVM-compatible L1)\nWallet\t@solana/web3.js (Node.js, no CLI needed)\nRuntime\tNode.js v18+\nLinks\nGitHub: https://github.com/Lokoweb3/x1-vault-memory\nX1 Explorer: https://explorer.mainnet.x1.xyz\nX1 Bridge: https://app.bridge.x1.xyz\nXDEX: https://app.xdex.xyz/swap\nX1 Wallet: https://chromewebstore.google.com/detail/x1-wallet/kcfmcpdmlchhbikbogddmgopmjbflnae\nHoney Badger Bot: https://t.me/HoneyBadgerCoreBot?start=ref_HEBCU2E3\nPinata: https://app.pinata.cloud\n\nBuilt by Lokoweb3\n\nGitHub Repository | OpenClaw Docs"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Lokoweb3/x1-vault-memory",
    "publisherUrl": "https://clawhub.ai/Lokoweb3/x1-vault-memory",
    "owner": "Lokoweb3",
    "version": "0.1.10",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/x1-vault-memory",
    "downloadUrl": "https://openagent3.xyz/downloads/x1-vault-memory",
    "agentUrl": "https://openagent3.xyz/skills/x1-vault-memory/agent",
    "manifestUrl": "https://openagent3.xyz/skills/x1-vault-memory/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/x1-vault-memory/agent.md"
  }
}