Sansbank Sansbank Dev Docs ← Back to Dev Center

Limitations (current, demo scope)

  • Shared address, balance-delta matching — every DASHE invoice shows the wallet’s default shielded address; the matcher attributes the balance delta to the single outstanding unpaid DASHE invoice. Keep only ONE unpaid DASHE invoice at a time. Per-invoice diversified addresses are planned (needs a small upstream FFI addition).
  • Restart behavior — the wallet baseline is seeded on the FIRST sync pass after process start and no invoice is marked on that pass, so docker restart is safe. A payment received while the process is down is NOT matched after boot (full catch-up needs persisted baselines — planned).
  • Authorized viewing key not yet implemented — outgoing spends are not reflected in BTCPay’s view of the wallet balance (receive-only view).
  • dash: payment-link UX — the dash: URI works for copy-paste, but mobile wallet deep-links for bech32m shielded addresses are pending a wallet-side fix. Use the QR / copy button today.
  • For plugin developers: a plugin-shipped checkout partial MUST declare its own _ViewImports.cshtml with @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers, @addTagHelper *, BTCPayServer and @addTagHelper *, BTCPayServer.Abstractions — BTCPay’s Content-Security-Policy blocks any inline <script> that was not nonced by the TagHelpers carried in via _ViewImports. (The host app’s _ViewImports.cshtml does NOT flow into plugin projects at compile time — this is exactly the bug that produced a seemingly-empty payment box in 1.0.0.)

single outstanding unpaid DASHE invoice (demo constraint)