Skip to main content
Finalization is the step that makes a payout tamper-proof. Your organization’s signer signs the payout’s contents — after that, recipients, amounts, and schedule cannot change, and the payout can be funded but never altered.

What finalization does

Under the hood, the SDK:
  1. Computes the payout hash from its funding token, timing rules, and rail.
  2. Builds a Merkle tree over the exact payments, so each recipient’s claim is provable against the signed root.
  3. Signs the result with your signer and stores the signature, hashes, and per-recipient proofs with the payout.
Because the signature commits to the full payment set, changing anything afterward invalidates it — this is the guarantee behind the “tamper-proof” note in the dashboard’s signing dialog. See Security. fundingUrl points at the environment’s dashboard checkout (for example https://sandbox.pvium.com/batch/0x…). It represents a fixed, signed bill: whoever opens it can fund exactly the payout you signed — nothing else. Hand it to whoever controls your treasury wallet; their controls govern the payment.

Create and finalize in one call

For scheduled payouts, skip the intermediate intent:

Finalize options

Signers

The signer is your organization’s signing key, generated in the dashboard’s Signing Key tab — see Signing keys.
  • createSignerFromPrivateKey(key) creates an EVM signer from a private key held in backend configuration.
  • Pass a custom signing function when your key lives elsewhere, such as an HSM or KMS.
Keep signer keys strictly on your backend. The signer is your organization’s authorization — treat it with the same care as the treasury wallet itself.

Payout keys

For pooled payouts, scoped payout keys can be authorized on the finalized pool — secondary keys with a per-transaction max, a total max, and an expiration, so an operational service can pay out of the pool within a bounded envelope while your signing key stays cold.

Signing keys

The funding signer, payout keys, and how to authorize them from the dashboard or SDK.