aboutsummaryrefslogtreecommitdiffstats
path: root/static
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-04 20:48:27 -0700
committerAdam Soltys <[email protected]>2026-09-04 20:48:27 -0700
commit8d27a5d2c59e0f1824753d59a7326b6b76887bf7 (patch)
tree5894488403d2f72b994255ba8ff6859121ead1d4 /static
parent175600238fb3e9cf60bd65b0164ced476d18f445 (diff)
downloadcoinosv3-8d27a5d2c59e0f1824753d59a7326b6b76887bf7.tar.gz
coinosv3-8d27a5d2c59e0f1824753d59a7326b6b76887bf7.zip
Android wrapper app (android/): a minimal TWA around v3.coinos.io whose whole reason to exist is intent registration — lightning:/bitcoin:/nostr:/lnurl:/lnurlw:/lnurlp: VIEW intents and the same schemes via NFC NDEF dispatch (bolt cards, address stickers; NFC declared required=false), plus verified https links to the site. LauncherActivity forwards a scheme URI into the web app as ?u=<encoded>; the web app reads it BEFORE features construct — a nostr npub/nprofile rewrites itself onto the existing /npub profile deep link, payment URIs stash and dispatch through handleScanned (the QR path) once a wallet is open, and the param is stripped from the URL either way. assetlinks.json (static/.well-known/, copied by build.js) vouches for the signing cert so the TWA runs URL-bar-less; the built APK is served at /coinos.apk for sideloading. Signing keystore lives in android/ GITIGNORED (keystore.properties beside it) — the assetlinks fingerprint pins it, so losing it means re-shipping assetlinks too. Verified: headless ?u= routing (lightning → Send with invoice filled + URL cleaned; nostr → profile page), APK installed on a real phone via adb, schemes registered (chooser appears where other wallets also claim lightning:)
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MGzU12QrAA4G6BYGzGVdXz
Diffstat (limited to 'static')
-rw-r--r--static/.well-known/assetlinks.json8
-rw-r--r--static/coinos.apkbin0 -> 427903 bytes
2 files changed, 8 insertions, 0 deletions
diff --git a/static/.well-known/assetlinks.json b/static/.well-known/assetlinks.json
new file mode 100644
index 0000000..9d84b58
--- /dev/null
+++ b/static/.well-known/assetlinks.json
@@ -0,0 +1,8 @@
+[{
+ "relation": ["delegate_permission/common.handle_all_urls"],
+ "target": {
+ "namespace": "android_app",
+ "package_name": "io.coinos.app",
+ "sha256_cert_fingerprints": ["76:64:83:AB:83:72:C0:2F:84:06:D2:95:95:E7:38:9A:28:69:19:0B:42:9E:0F:FD:09:2E:BB:0B:FA:2B:C2:F4"]
+ }
+}]
diff --git a/static/coinos.apk b/static/coinos.apk
new file mode 100644
index 0000000..1126d53
--- /dev/null
+++ b/static/coinos.apk
Binary files differ