What moves through Keylay
- Descriptors or cosigner data
- PSBTs and related wallet files
- JSON, text, or binary payloads needed for coordination
This page covers what participants do, what moves through Keylay, how the system is built, and where development stands. For threat assumptions, cryptographic guarantees, and known gaps, see the Security page.
Keylay moves setup and signing data across distance while keeping key material and signing operations on the devices that hold them.
One participant opens Keylay and creates a session. The app produces a short session code for the others.
The code is shared out of band. Keylay does not require accounts or long-term identities for participants to connect.
Other participants open Keylay, enter the session code, and join the coordination session from their own device.
The current implementation uses an encrypted WebSocket relay. Future versions are intended to use Nostr relays as the primary transport, with WebSocket retained as fallback.
Participants exchange the information needed to assemble a multisig wallet: cosigner data, descriptors, addresses, or other setup material supported by their wallet tools.
Keylay is the coordination path. The actual wallet assembly still happens in the wallet software each participant uses.
Each participant verifies the received information in their own wallet or signer environment before proceeding. Keylay moves data; it does not replace wallet-side verification.
One participant creates a transaction in their wallet and exports a PSBT.
The PSBT is shared with the other participant or cosigner through the active session. Depending on the signer workflow, that may be direct file transfer, animated QR, or both.
Each signer imports or scans the PSBT into their wallet or hardware signer, reviews the transaction, and signs on the device that holds the key.
Signing happens outside Keylay. That is the point.
The partially signed result is returned through Keylay, again using file or QR workflows as needed, until the transaction can be finalized in the wallet coordinator.
Keylay is designed to work with offline signers instead of forcing participants to collapse everything onto one online device.
A participant creates a session and shares a short code out of band. That code connects peers without requiring sign-up, address books, or persistent accounts.
X25519 key exchange and AES-256-GCM create end-to-end encrypted sessions. Public keys are HMAC-signed using the session code so the relay cannot substitute them mid-handshake.
Data can move between offline and online devices using BBQr and UR/QR animated sequences, along with ordinary file transfer. The coordination path changes; key isolation does not.
The relay is a single stateless Node.js file with no database. Any server capable of running Node.js works. The frontend is a single HTML file served statically. Participants can run their own relay and point to it with a URL parameter.
The tool is designed to narrow the trust placed in remote coordination, not to replace wallet software or signer policy.
The current release is usable for real remote coordination workflows across desktop and mobile browsers. The remaining work is not conceptual; it is engineering and hardening.