Skip to main content
API keys authenticate requests to Pvium. Signing keys authorize payout operations: your organization’s signing key finalizes payouts, and payout keys let services execute payments from a specific funded pool.

The signing key — your finalization key

Your organization’s signing key signs the payout details when you finalize a payout. The smart contract verifies this signature before executing the authorized payout. To create or register your organization’s signing key in the dashboard:
  1. Open your organization settings and go to the Signing Keys tab.
  2. Add a key: give it a label, choose the key type (Ethereum), and either paste a public key or generate a fresh keypair in place.
  3. If you generate, copy the private key immediately and store it in backend configuration — Pvium keeps only the public key.
On your backend, create a signer from the private key and pass that signer to finalize:
Anyone with access to this private key can sign payout finalizations. Restrict access to the key and require your team’s approval before funding payouts. See Security for the funding approval flow.

Payout keys — pooled payouts only

A payout key lets a service execute payments from a specific Pooled payout batch. The signer that funded the batch must authorize the payout key and set these limits: The signed authorization specifies the pool, payout key, spending limits, and expiration. It does not permit payments from other pools, payments above those limits, or payments after expiration. Give your automated service the payout key’s private key so it can pay from the pool within these limits. The service does not need your organization’s signing key. A payout token is the signed authorization that grants a payout key permission to pay from a pool. You can create one in the dashboard or with the SDK.

Create a payout token in the dashboard

To create a payout token in the dashboard, open a funded, activated pool batch and connect the wallet that funded it. Select Add Payout Key, then provide:
  • A label (for example, “Production Key”)
  • The key type (Ethereum)
  • The public key — paste one, or generate a fresh keypair in place. If you generate, copy and store the private key immediately; Pvium does not keep it.
  • The per-transaction max, total max, and expiration in days

Create a payout token with the SDK

Call pvium.payout.authorizeSigningKey to create a payout token for a pool. Pass the pool’s batch hash, the payout key’s public address, its network type, spending limits, and expiration as a Unix timestamp in seconds. Sign with the signer that funded the batch. The method returns a signed authorization containing these details and the signature:

Key custody stays with you

You keep control of the private keys used for finalization and pooled payments:
  • Pvium registers only the public key. Whether you generate the keypair or bring your own, the private key stays on your system — it is never sent to or stored by Pvium.
  • Custom signers can be injected. Both finalize and authorizeSigningKey accept a signing function in place of a raw private key, so signing can be delegated to AWS KMS, an HSM, or any other signing module. The private key never has to exist in application memory — the SDK only ever sends the resulting signatures.

Which key for what

Keep API keys and private signing keys out of client-side code. See Authentication for handling guidance.