ResourcesFAQ

FAQ

Frequently asked questions about Veil.

General

What is Veil?

Veil is a recurring payouts protocol on Solana. It combines on-chain vaults and schedules with off-chain recipient payloads and coordinator-driven execution.

Why use Veil?

Veil is useful when you want recurring payouts without publishing the full recipient mapping on-chain.

Is Veil open source?

Yes. See the GitHub repository.

Privacy

What information is public?

  • vault addresses
  • schedule PDAs
  • Merkle roots
  • total recipients count
  • execution interval
  • reserved amount
  • per-execution amount
  • schedule status and next execution time

What information is private?

  • individual recipient addresses
  • individual payment amounts
  • recipient ordering
  • Merkle proofs
  • recipient-to-amount mapping

Does Veil hide the total payroll amount?

Not completely. The reserved amount and per-execution amount are part of on-chain schedule state. Veil hides the recipient set and per-recipient mapping, not every aggregate total.

Technical

What tokens are supported?

Veil supports the set of SPL mints allowed by the protocol whitelist. When whitelistEnabled is false, the mint restriction is effectively off. When it is true, vault creation and deposits must use a mint from allowedMints.

How many recipients can a schedule have?

The on-chain hard cap is 1024 recipients. The current coordinator registration path and dashboard imports cap payloads at 1000 recipients for operational headroom.

What execution interval is allowed?

Intervals must be between 1 hour and 31 days.

Can I bulk import recipients?

Yes. The employer dashboard supports CSV and Excel imports for recipient lists.

Are dashboard templates stored on-chain?

No. Saved schedule templates in the current dashboard are stored locally in the browser and scoped per wallet.

Coordinator

Do I need to run a coordinator?

For automatic execution and execution-history tracking, yes. The coordinator stores off-chain recipient payloads, drives ER execution, and records execution attempts.

What happens if the coordinator goes down?

No vault funds are lost. New runs simply do not progress until the coordinator is back.

What happens if the coordinator rate limits me?

The API returns 429. This usually means registration or repeated reads exceeded the configured token-bucket budget. Retry after the indicated backoff.

Security

Are funds safe?

Funds remain in program-controlled vaults. Employers can withdraw only the available, non-reserved balance.

Can a recipient be paid twice in the same batch?

No. The program tracks paid recipients with a bitmap and rejects duplicate claims.

What if the Merkle proof is wrong?

Invalid proofs fail on-chain, so only valid recipient entries can be paid.