Skip to content

Contribution proposal: CIP-186 deep-link signing (cip30dl-lace) for Lace Mobile #2229

Description

@realdecimalist

What would you like to work on?

Add CIP-186 (cardano-foundation/CIPs#1189) deep-link signing to Lace Mobile — a cip30dl-lace: URL-scheme + https App-Link receiver that lets an external mobile browser or native dApp request a CIP-30 operation (signTx / signData) and receive an encrypted, signature-bound response, reusing Lace's existing signer and consent UI. No relay server, no WebSocket, no QR.

Why does this matter?

Lace Mobile's dApp connection today only works for dApps opened inside Lace's in-app WebView (Lace is the browser). There's no path for an external mobile browser or a native dApp to hand a transaction to Lace for signing. CIP-186 fills that gap — and is a lighter, relay-free complement to the WalletConnect path the README lists as planned. dApps integrate once and reach every deep-link wallet; users get one-tap signing from any mobile dApp.

Scope and approach

We've mapped it against the current tree; the lift is small because it reuses what's already there:

  • A new module (≈ the cardano-uri-linking shape) for the URL intake + the NaCl-box envelope; register cip30dl-lace in apps/lace-mobile/app.json (Expo prebuild generates the Info.plist / AndroidManifest entries).
  • Signing reused verbatimsignerFactory.createTransactionSigner(ctx).sign(...) → witness set, the same call the mobile WebView bridge already makes.
  • Consent reused verbatimSignTxView / AuthorizeDappSheet + @lace-contract/authentication-prompt (password / biometric).
  • Crypto — NaCl box via libsodium-wrappers-sumo (already a transitive dep via @cardano-sdk/crypto); HKDF via @noble/hashes (already used in packages/lib/crypto).

Net: one new module + an app.json edit; no changes to signing, key management, or consent UX.

Design points we'd want your input on before starting:

  • App-Link domain ownership / apple-app-site-association + assetlinks.json hosting.
  • Feature-flag gating (matching the CARDANO_URI_LINKING pattern).
  • A sibling deep-link module vs. extending cardano-uri-linking.

Relevant background

Happy to build a PoC on a Lace fork to demonstrate the round-trip before any integration work, and to do the substantive integration under a CLA against your internal source of truth.

How would you like to engage?

Not sure yet. Let's discuss. Happy to let you shape scope.

Preferred contact for follow-up

@realdecimalist

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions