Skip to content

Webhook payloads don't identify which authorization key/signer authorized the action #190

Description

@0xkurious

None of transaction.*, wallet_action.*, or wallet.funds_deposited/withdrawn webhook payloads include any field identifying which authorization key or signer authorized the underlying action — only wallet_id.

This is a real gap for wallets using additional_signers with per-signer override_policy_ids (a wallet with N independently-scoped signers, each authorized to sign under different rules): the webhook stream lets you observe that a wallet moved funds, but not which signer authorized it. To reconstruct that, an app has to maintain its own out-of-band log correlating each signed request to the authorization_context it used — Privy already has this information at signing time (it verified the signature against a specific registered key), it's just not surfaced downstream.

Notably, intent.* events already track this precisely via IntentAuthorizationKeyMember { public_key, signed_at } — so the platform clearly has the capability internally, it's just scoped to the separate Intents (team-approval) flow rather than the standard authorization_context-signed wallet action path.

Request: add a signer_id (or the signer's public_key) field to transaction.*, wallet_action.*, and wallet.funds_deposited/withdrawn payloads, identifying which authorization key/quorum satisfied the request's owner_id/additional_signers check.

Happy to share a minimal repro (multi-signer wallet + two signers each triggering a transfer) if useful.

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