圖標

Cambium

NIP-55 signer that holds no keys: signing is proxied to a NIP-46 hardware bunker
新版本 0.9.0
Test and reconnect each signer, with secure relay updates where supported. Approve native requests once, for an hour or day, or indefinitely, with operation and signing-kind limits. Read request summaries and temporary details. Rename identities and edit existing grants. Filter activity and review a redacted report before sharing. Native signing batches return ordered results. Existing approvals retain their meaning; Heartwood remains the signing authority.
Cambium is an Android NIP-55 signer that holds no user keys. Cryptographic results come from a paired Heartwood hardware signer over NIP-46 (Nostr relays), with only safe, exact repeats answered from bounded per-identity caches.

Amethyst, Primal and most other Amber-compatible Android Nostr clients cannot log in to a remote NIP-46 bunker directly, but they all support signing in via any installed NIP-55 external signer. Cambium fills that gap: it registers as a signer, but it is not one. It is a thin proxy that sends uncached NIP-55 work to your hardware signer and hands the result back.

Security model:

- No user secrets ever touch the phone. Cambium stores only the bunker pairing (the paired signer's public key, its relay list, and the per-pairing connection secret) and Cambium's own ephemeral NIP-46 client keypair. Compromising the phone exposes the ability to request signatures — which the hardware signer's policy engine and physical confirmation button still gate — never the identity key itself.
- All pairing state lives in Android Keystore-backed encrypted storage.
- Per-app approval is tracked locally, in addition to whatever the hardware signer's own policy enforces. The signer remains the authority on what actually gets signed.
- All NIP-46 payloads are NIP-44-encrypted.
- Phone unlock is the one exception, and it is opt-in: a Heartwood set up to be unlocked from this phone gives it an unlock secret for that board. It signs nothing, is useless without the board's own flash, and is released only by your screen lock, once per unlock.

Features:

- Pair by QR scan or pasted bunker:// URI; multiple identities, each fully isolated.
- NIP-55 intent handling: get_public_key, sign_event, nip04/nip44 encrypt and decrypt, decrypt_zap_event (private zaps, recipient path), current_user identity selection.
- Website NIP-55 support through nostrsigner: links, with explicit one-shot approval and a validated HTTPS callback or clipboard result. Browser approval is never remembered.
- A silent content-provider path answers already-approved apps without any visible popup.
- Per-identity bounded priority queues reserve room for user work. Exact relay-authentication duplicates coalesce and cache briefly; distinct AUTH bursts are admitted one at a time, never retried internally, and paused for 60 seconds after a transport failure.
- Native approvals can be once, for an hour or day, or indefinite, with operation and signing-kind limits. Review, edit or forget choices in the connected-apps list; denial remains permanent.
- Clear request summaries and bounded, temporary request details, with private and encrypted content hidden.
- Rename paired identities, check connection health and last contact, and explicitly test or reconnect. Supported signers can securely update their NIP-46 transport relays.
- Native NIP-55 signing batches return ordered results and per-request rejections.
- Optional keep-warm foreground service so silent signing skips the reconnect penalty.
- Phone unlock: a Heartwood that restarts locked after a power cut asks this phone to unlock it. The notification names the board, why it restarted and on which network, and warns that anyone holding the board can make it ask. One tap and your screen lock unlock it. Nothing on the wire names the phone.
- Says when a paired signer has gone quiet (a power cut or network problem at the board).
- A metadata-only activity log with safe failure categories, timings and app/identity/outcome filters. Review a redacted diagnostic report before explicitly sharing it; no event content, credentials, relay addresses or identifying labels are exported.
- Optional biometric or device-credential app lock on the management screen and approval decisions.

No Google Play services, no Firebase, no analytics. Runs on any 64-bit Android 8.1+ device, including GrapheneOS.

版本

雖然在下方可選擇下載 APK 檔案,但要留意這樣的安裝方式將不會收到更新通知,是一種較不安全的下載方法。建議您先安裝 F-Droid 用戶端使用。

下載 F-Droid
  • 版本 0.9.0 (19) 建議 於 2026 年 10 月 15 日新增

    arm64-v8a x86_64

    此版本需要 Android 8.1 或更高的版本。

    此套件包由原開發者建置和簽署,並保證與此原始碼 Tarball 保持一致。

    權限
    • 拍攝相片和影片
      這個應用程式在使用期間可以使用相機拍照及錄影。
    • 執行前景服務
      允許應用程式使用前景服務。
    • 搭配「specialUse」類型執行前景服務
      允許應用程式搭配「specialUse」類型使用前景服務
    • 擁有完整的網路存取權
      允許應用程式建立網路通訊端及使用自訂網路通訊協定。瀏覽器和其他應用程式會提供將資料傳輸到網際網路的方法,因此不需要這項權限也能將資料傳輸到網際網路。
    • 顯示通知
      允許應用程式顯示通知
    • 啟動時執行
      允許應用程式在系統完成開機程序後立刻自行啟動。這會增加手機的開機時間,而且會因為系統一直執行該應用程式導致手機的整體運作速度變慢。
    • 要求忽略電池效能最佳化
      允許應用程式要求權限,以便忽略針對該應用程式的電池效能最佳化設定。
    • 使用生物識別硬體
      允許應用程式使用生物特徵硬體進行驗證
    • 使用指紋硬體
      允許應用程式使用指紋硬體進行驗證
    • dev.forgesworn.cambium.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    下載 APK 18 MiB PGP 簽章 | 建置紀錄

  • 新版本 0.7.1
    The check code stays on screen after adding a phone.

    - Once the phone is added, the check code stays on the Done screen, labelled, so you can finish comparing it with the board and Sapwood.
    - Release builds no longer carry git metadata, so F-Droid can reproduce this APK and publish updates again.
  • 版本 0.7.1 (17) - 於 2026 年 10 月 8 日新增

    arm64-v8a x86_64

    此版本需要 Android 8.1 或更高的版本。

    此套件包由原開發者建置和簽署,並保證與此原始碼 Tarball 保持一致。

    權限
    • 拍攝相片和影片
      這個應用程式在使用期間可以使用相機拍照及錄影。
    • 執行前景服務
      允許應用程式使用前景服務。
    • 搭配「specialUse」類型執行前景服務
      允許應用程式搭配「specialUse」類型使用前景服務
    • 擁有完整的網路存取權
      允許應用程式建立網路通訊端及使用自訂網路通訊協定。瀏覽器和其他應用程式會提供將資料傳輸到網際網路的方法,因此不需要這項權限也能將資料傳輸到網際網路。
    • 顯示通知
      允許應用程式顯示通知
    • 啟動時執行
      允許應用程式在系統完成開機程序後立刻自行啟動。這會增加手機的開機時間,而且會因為系統一直執行該應用程式導致手機的整體運作速度變慢。
    • 要求忽略電池效能最佳化
      允許應用程式要求權限,以便忽略針對該應用程式的電池效能最佳化設定。
    • 使用生物識別硬體
      允許應用程式使用生物特徵硬體進行驗證
    • 使用指紋硬體
      允許應用程式使用指紋硬體進行驗證
    • dev.forgesworn.cambium.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    下載 APK 18 MiB PGP 簽章 | 建置紀錄

  • 新版本 0.4.3
    Keeps Amethyst relay activity from monopolising Cambium.

    - Only one distinct relay-auth request per identity can enter the hardware worker.
    - Failed relay auth opens a 60-second cooldown and is never retried internally.
    - Posts, reactions, encryption, and cached duplicate auth remain available.
  • 版本 0.4.3 (13) - 於 2026 年 9 月 15 日新增

    arm64-v8a x86_64

    此版本需要 Android 8.1 或更高的版本。

    此套件包由原開發者建置和簽署,並保證與此原始碼 Tarball 保持一致。

    權限
    • 拍攝相片和影片
      這個應用程式在使用期間可以使用相機拍照及錄影。
    • 執行前景服務
      允許應用程式使用前景服務。
    • 搭配「specialUse」類型執行前景服務
      允許應用程式搭配「specialUse」類型使用前景服務
    • 擁有完整的網路存取權
      允許應用程式建立網路通訊端及使用自訂網路通訊協定。瀏覽器和其他應用程式會提供將資料傳輸到網際網路的方法,因此不需要這項權限也能將資料傳輸到網際網路。
    • 顯示通知
      允許應用程式顯示通知
    • 啟動時執行
      允許應用程式在系統完成開機程序後立刻自行啟動。這會增加手機的開機時間,而且會因為系統一直執行該應用程式導致手機的整體運作速度變慢。
    • 使用生物識別硬體
      允許應用程式使用生物特徵硬體進行驗證
    • 使用指紋硬體
      允許應用程式使用指紋硬體進行驗證
    • dev.forgesworn.cambium.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    下載 APK 18 MiB PGP 簽章 | 建置紀錄