360 Secure SkillHub
360 安全技能中心

Archon Nostr

利用已有 Archon 钱包的 secp256k1 验证密钥,按 m/44'/0'/0'/0/0 路径派生 Nostr 的 nsec/npub 与十六进制公钥,保存私钥、写入 DID 文档的 nostr 属性并发布 kind 0 资料事件,使 DID 与 Nostr 共用同一密钥。

macterra
macterra
热度 84.06
最近更新 2026-05-18 11:56:26
分类:安全依赖:代码执行 / 读写文件 / 第三方 API应用场景:API 集成 / 自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add archon-nostr
Metadata
name
archon-nostr
description
Derive Nostr identity (npub/nsec) from Archon DID. Use when unifying DID and Nostr identities so both use the same secp256k1 key. Requires existing Archon wallet with ARCHON_PASSPHRASE set.

Archon Nostr Identity

Derive your Nostr keypair from your Archon DID's secp256k1 verification key. Same key, two protocols.

Prerequisites

  • Archon wallet with existing DID
  • ARCHON_PASSPHRASE environment variable set
  • nak CLI: curl -sSL https://raw.githubusercontent.com/fiatjaf/nak/master/install.sh | sh

Derive Keys

Run the derivation script:

./scripts/derive-nostr.sh

This outputs your nsec, npub, and hex pubkey derived from m/44'/0'/0'/0/0.

Save Keys

mkdir -p ~/.clawstr
# Save the nsec output from above
echo "nsec1..." > ~/.clawstr/secret.key
chmod 600 ~/.clawstr/secret.key

Update DID Document

Add Nostr identity for discoverability:

npx @didcid/keymaster set-property YourIdName nostr \
  '{"npub":"npub1...","pubkey":"<hex-pubkey>"}'

Create Nostr Profile

echo '{
  "kind": 0,
  "content": "{\"name\":\"YourName\",\"about\":\"Your bio. DID: did:cid:...\"}"
}' | nak event --sec $(cat ~/.clawstr/secret.key) \
  wss://relay.ditto.pub wss://relay.primal.net wss://relay.damus.io wss://nos.lol

Verify Unification

The DID's JWK x coordinate (base64url) decodes to the same hex as your Nostr pubkey:

npx @didcid/keymaster resolve-id | jq -r '.didDocument.verificationMethod[0].publicKeyJwk.x'
# Decode base64url → hex should match your pubkey

Why This Works

Archon uses m/44'/0'/0'/0/0 (Bitcoin BIP44 path) for DID keys. Nostr uses raw secp256k1. Same curve, same key — just different encodings.