manage-bap-backup

b-open-io's avatarfrom b-open-io

Manage BAP identity backups - list members, export member identities, and view backup details using the bap CLI. Works with encrypted .bep BAP identity files.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 3, 2026

When & Why to Use This Skill

This Claude skill facilitates the comprehensive management of BAP (Bitcoin Attestation Protocol) identity backups. It empowers developers to export, import, and list identity members through the `bsv-bap` library and CLI, while also supporting encrypted `.bep` files for secure identity handling and recovery in decentralized applications.

Use Cases

  • Exporting BAP identities to JSON format for secure backup and long-term storage.
  • Importing identity backups into new development environments to restore user profiles and cryptographic keys.
  • Auditing identity members by listing keys, root addresses, and current addresses directly from backup files.
  • Managing encrypted identity files (.bep) using AES-256-GCM for secure data transmission and enhanced privacy.
namemanage-bap-backup
descriptionThis skill should be used when the user asks to "export BAP identity", "import BAP backup", "view BAP backup", "manage BAP backup", "backup BAP identity", or needs to work with BAP identity backup files using the bap CLI.

Manage BAP Backup

Export and import BAP identity backups using the bsv-bap library.

Installation

bun add bsv-bap @bsv/sdk

Export Identity

import { BAP } from "bsv-bap";

// Load existing identity
const bap = new BAP({ rootPk: storedWif });
bap.importIds(encryptedIds);

// Export for backup
const backup = bap.exportForBackup("My Identity");
// {
//   ids: "QklFMQ...",
//   createdAt: "2026-01-17T02:45:04.015Z",
//   rootPk: "L1SJx4SfhuGkZHwjgYatQfe2yn8iqHpenvHxsDt9Vnsz7wMT8FqG"
// }

// Save to file
import { writeFileSync } from "node:fs";
writeFileSync("backup.json", JSON.stringify(backup, null, 2));

Import Identity

import { BAP } from "bsv-bap";
import { readFileSync } from "node:fs";

// Load backup
const backup = JSON.parse(readFileSync("backup.json", "utf-8"));

// Create BAP from backup
const bap = new BAP({ rootPk: backup.rootPk });
if (backup.ids) {
  bap.importIds(backup.ids);
}

// Access identities
const idKeys = bap.listIds();
const identity = bap.getId(idKeys[0]);
console.log(identity.idName, identity.getIdentityKey());

List Identities

// List all identity keys
const idKeys = bap.listIds();

for (const key of idKeys) {
  const identity = bap.getId(key);
  console.log(`${identity.idName}: ${key}`);
  console.log(`  Root: ${identity.rootAddress}`);
  console.log(`  Current: ${identity.getCurrentAddress()}`);
}

Encrypted Backups (.bep)

For encrypted backup files using AES-256-GCM, use the bitcoin-backup CLI:

bun add -g bitcoin-backup

# Encrypt a backup
bbackup enc backup.json -p "password" -o identity.bep

# Decrypt a backup
bbackup dec identity.bep -p "password" -o decrypted.json

See encrypt-decrypt-backup skill for full bitcoin-backup reference.

CLI Option

For quick operations, use the bap CLI:

npm install -g bsv-bap

bap export              # Export identity JSON to stdout
bap export > backup.json
bap import backup.json  # Import from file
bap info                # View current identity
  • create-bap-identity - Create new BAP identities
  • encrypt-decrypt-backup - bitcoin-backup CLI for .bep files
  • key-derivation - Type42 and BRC-43 key derivation

BAP identities can be used for OAuth authentication with Sigma Identity. See @sigma-auth/better-auth-plugin for integration patterns.