Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Backup and restore OpenClaw agent memory to IPFS with AES-256-GCM encryption and X1 blockchain CID anchoring
Backup and restore OpenClaw agent memory to IPFS with AES-256-GCM encryption and X1 blockchain CID anchoring
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
Encrypted, decentralized memory backup for OpenClaw agents β powered by IPFS and X1 blockchain.
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. π΄ SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet.
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. Pipeline: Agent Files > tar.gz > AES-256-GCM Encrypt > IPFS Upload > X1 On-Chain Anchor
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.
AES-256-GCM encryption β uses your wallet keypair as the key. Only you can decrypt. IPFS storage β your data lives on a decentralized network, not a single server. X1 blockchain anchoring β every backup CID is recorded on-chain for permanent, verifiable proof. Self-healing restore β one command to download, decrypt, and restore all agent files. Negligible cost β about 0.03 USD per year for daily backups.
β Security fixes: removed "curl | sh" Solana CLI install suggestion β Declared environment variables clearly in skill metadata β Added opt-in note for heartbeat auto-restore Updated package.json with required env vars in config section
SHA-256 integrity verification on backup and restore Selective restore with --only flag to restore specific files or directories List command for viewing all backups with versioned rollback support
Node.js v18+ β run all scripts without external dependencies Pinata Account β free at https://app.pinata.cloud (500 files, 1GB included) Solana Wallet β keypair JSON file (free to create via @solana/web3.js) XNT Tokens β about 0.002 XNT per backup for on-chain fees β No Solana CLI required β we use @solana/web3.js directly. π΄ SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet.
XNT is the native gas token of the X1 blockchain. You need a small amount for on-chain transaction fees. Bridge from Solana (easiest) β https://app.bridge.x1.xyz β wrap SOL/USDC to X1, then swap for XNT on XDEX Buy directly on XDEX β https://app.xdex.xyz/swap β native DEX on X1, connect your wallet and swap OTC β https://otc.xonedex.xyz β peer-to-peer for larger amounts Honey Badger Bot β https://t.me/HoneyBadgerCoreBot?start=ref_HEBCU2E3 β Telegram trading bot for instant swaps You will also need the X1 Wallet Chrome extension: https://chromewebstore.google.com/detail/x1-wallet/kcfmcpdmlchhbikbogddmgopmjbflnae Start 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.
Pinata is the IPFS pinning service that stores your encrypted backups. The free tier is more than enough. Go to https://app.pinata.cloud and click Sign Up Create an account with your email or sign in with GitHub/Google After login, click your profile icon in the top right corner Select API Keys from the dropdown menu Click the New Key button Enable only the pinFileToIPFS permission (Admin access is NOT required) Give the key a name like "x1-vault-memory" Click Create Key You will see three values: API Key, API Secret, and JWT Copy the JWT token β this is your PINATA_JWT value Save it somewhere safe β you will not be able to see the JWT again after closing this page The 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.
π΄ SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet.
cd x1-vault-memory && npm install
Option A: Using a .env file (recommended for Docker and production) Create a .env file in your project or workspace root: PINATA_JWT=your_pinata_jwt_token X1_RPC_URL=https://rpc.mainnet.x1.xyz No quotes, no export keyword. Docker Compose and most Node.js apps read this format automatically. Option B: Using shell environment (for manual or one-time use) export PINATA_JWT="your_pinata_jwt_token" export X1_RPC_URL="https://rpc.mainnet.x1.xyz" Note: These values only persist for the current terminal session. Option C: Docker Compose environment block If running inside Docker, add to your docker-compose.yml environment section: environment: PINATA_JWT: ${PINATA_JWT} X1_RPC_URL: https://rpc.mainnet.x1.xyz Then set PINATA_JWT in your Docker .env file as shown in Option A.
The wallet can be created programmatically using @solana/web3.js. Here's a quick script: node -e " const { Keypair } = require('@solana/web3.js'); const fs = require('fs'); const kp = Keypair.generate(); fs.writeFileSync('x1_vault_cli/wallet.json', JSON.stringify([...kp.secretKey])); console.log('Wallet created:', kp.publicKey.toBase58()); console.log('Save the secretKey JSON array to x1_vault_cli/wallet.json'); " Or use the X1 Wallet Chrome extension to generate a keypair and export the secretKey. Keep wallet.json safe. This is your encryption key AND your blockchain wallet. Never commit it to GitHub.
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.
Set X1_RPC_URL to your preferred endpoint. Default: https://rpc.mainnet.x1.xyz
node src/backup.js Encrypts and uploads IDENTITY.md, SOUL.md, USER.md, TOOLS.md, and memory/ directory. Records CID on X1 blockchain and logs to vault-log.json.
node src/restore.js <CID> Downloads from IPFS, decrypts with your wallet key, and restores all agent files.
node src/restore.js <CID> --only memory/ Restore only specific files or directories from a backup.
node src/list.js View all stored backups with timestamps, CIDs, and checksums for versioned rollback.
node src/heartbeat.js Monitors agent file integrity. If critical files are missing or corrupted, automatically triggers a restore from the latest backup. β οΈ Opt-in Only β Heartbeat auto-restore must be explicitly scheduled via cron. It is NOT automatic. Add to crontab: 0 */6 * * * cd /path/to/workspace && node x1-vault-memory/src/heartbeat.js >> /var/log/vault-heartbeat.log 2>&1 Note: Heartbeat auto-restore is disabled by default and must be explicitly enabled via cron.
node src/backup.js --dry-run Shows which files would be backed up without uploading or spending tokens.
Pinata is down β backup fails with connection error. Retry later, local files are untouched. X1 RPC fails β IPFS upload succeeds but on-chain anchor fails. CID is still logged locally in vault-log.json. Re-anchor when RPC recovers. Invalid wallet β encryption fails before upload. Check wallet.json path and format (must be JSON array of bytes). Insufficient XNT β on-chain transaction rejected. Fund wallet with more XNT tokens. CID not found on restore β check Pinata dashboard, re-pin if needed. Checksum mismatch β SHA-256 verification failed. Backup may be corrupted. Try restoring from a previous version using list.js.
IPFS β encrypted blob on Pinata IPFS network X1 Blockchain β CID recorded as on-chain transaction (permanent, verifiable) vault-log.json β local log of all backup CIDs with timestamps and checksums Only your wallet keypair can decrypt the data
AES-256-GCM authenticated encryption derived from your wallet secret key SHA-256 integrity checksums on every backup and restore Only your keypair can decrypt β even if someone finds the CID, data stays private Stored on IPFS, not a single server CID anchored on X1 blockchain for tamper-proof records Never share your wallet.json or PINATA_JWT π΄ SECURITY WARNING: Use a dedicated wallet with minimal XNT. Never use your primary wallet.
Weekly backup via cron: 0 2 * * 0 cd /path/to/workspace && node x1-vault-memory/src/backup.js >> /var/log/vault-backup.log 2>&1 Heartbeat check every 6 hours (opt-in): 0 */6 * * * cd /path/to/workspace && node x1-vault-memory/src/heartbeat.js >> /var/log/vault-heartbeat.log 2>&1
IDENTITY.md β agent name, persona, vibe SOUL.md β personality, instructions, expertise USER.md β user profile and preferences TOOLS.md β environment-specific notes memory/*.md β daily memory logs
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+
GitHub: https://github.com/Lokoweb3/x1-vault-memory X1 Explorer: https://explorer.mainnet.x1.xyz X1 Bridge: https://app.bridge.x1.xyz XDEX: https://app.xdex.xyz/swap X1 Wallet: https://chromewebstore.google.com/detail/x1-wallet/kcfmcpdmlchhbikbogddmgopmjbflnae Honey Badger Bot: https://t.me/HoneyBadgerCoreBot?start=ref_HEBCU2E3 Pinata: https://app.pinata.cloud Built by Lokoweb3 GitHub Repository | OpenClaw Docs
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.