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.
None of
transaction.*,wallet_action.*, orwallet.funds_deposited/withdrawnwebhook payloads include any field identifying which authorization key or signer authorized the underlying action — onlywallet_id.This is a real gap for wallets using
additional_signerswith per-signeroverride_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 theauthorization_contextit 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 viaIntentAuthorizationKeyMember { 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 standardauthorization_context-signed wallet action path.Request: add a
signer_id(or the signer'spublic_key) field totransaction.*,wallet_action.*, andwallet.funds_deposited/withdrawnpayloads, identifying which authorization key/quorum satisfied the request'sowner_id/additional_signerscheck.Happy to share a minimal repro (multi-signer wallet + two signers each triggering a transfer) if useful.