Skip to content

frost network sign-event: hardware path requires aggregate-receive plumbing #522

@kwsantiago

Description

@kwsantiago

Follow-up to #497 (PR landing now).

#497 ships software `keep frost network sign-event`. The hardware path is rejected with `NotImplemented`:

```
hardware FROST network sign-event requires aggregate-receive plumbing on the hardware path;
run the same group with a software participant who can aggregate, or see follow-up issue.
```

Why

`cmd_frost_network_sign_hardware` (keep-cli/src/commands/frost_network/hardware.rs) publishes the local signature share to the relay and exits with "Waiting for coordinator to aggregate final signature". The 64-byte aggregated schnorr signature is never observed locally, so we cannot assemble the signed Nostr event on this side. `sign-event` requires the full sig to build the JSON `Event`.

Scope

  1. Define the wire protocol for a hardware participant to receive the aggregate from the coordinator (probably a new `kind = 21107` event tagged with the request_id, content = hex sig).
  2. Have `cmd_frost_network_sign_hardware` subscribe to that filter after publishing its share and wait (with timeout) for the aggregate.
  3. Add a parallel hardware sign-event entry point that reuses the same waiter and builds the signed event JSON.
  4. Tests: covers the wait-for-aggregate path, including timeout when the coordinator never publishes.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmediumnostr-frostNostr FROST coordination protocolp3Lowest Priority

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions