> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tachyon.pe/llms.txt
> Use this file to discover all available pages before exploring further.

# Confidential Payroll

> Pay many recipients across many chains as a single batch of confidential intents. Amounts and recipients stay private; auditors get scoped visibility.

Confidential Payroll lets a paying entity disburse to many recipients, across many chains, as a single batch of intents. Each recipient receives funds at a fresh stealth address on the chain they prefer. Amounts, recipient identities, and the relationship between payer and payee stay confidential. Live on testnet.

<Note>
  Live on testnet. Mainnet coming soon.
</Note>

## Where it fits

* **Contributor payouts**, pay 50 contributors across 6 chains in one signed batch
* **Vesting unlocks**, recurring releases without exposing per-recipient amounts
* **Token grants**, grant programs where individual recipient amounts must stay private

## How it works (integrator view)

The payer constructs a **batch of intents**, one per recipient. The batch is signed once and submitted. Tachyon picks each intent up independently; solvers fulfill them in parallel. Each intent settles at its own destination chain to the recipient's stealth address.

```mermaid theme={null}
sequenceDiagram
    autonumber
    participant Payer as Your Payroll App
    participant SDK as Tachyon SDK
    participant Tachyon
    participant R1 as Recipient A (Base)
    participant R2 as Recipient B (Arbitrum)
    participant R3 as Recipient C (Horizen)

    Payer->>SDK: build batch of intents
    SDK->>Tachyon: encrypted batch
    Tachyon-->>SDK: intentIds[]
    par
        Tachyon-->>R1: settled
    and
        Tachyon-->>R2: settled
    and
        Tachyon-->>R3: settled
    end
```

## What's confidential

* Per-recipient **amounts**, even other recipients in the same batch cannot see what anyone else received
* The **identity** of recipients
* The **destination chain** of each delivery
* The **link** between the payer and any specific recipient

What's necessarily public: the fact that the payer ran a payroll batch (their on-chain action is visible on the source chain), and that some addresses received funds on destination chains. The link between those facts is not revealed.

## Integration shape

```ts theme={null}
const batch = await Promise.all(
  contributors.map((c) =>
    tachyon.intent.build({
      sourceChain: "arbitrum",
      destChain: c.preferredChain,
      tokenIn: USDC_ARB,
      tokenOut: c.preferredAsset,
      amountIn: c.amountUsdc,
      minAmountOut: applySlippage(c.amountUsdc, 0.01),
      deadline: now() + 3600,
      recipient: c.address,
      metadata: { payrollPeriod: "2026-04" }, // off-chain only
    })
  )
);

const signed = await wallet.signBatch(batch);
const { intentIds } = await tachyon.intent.submitBatch(signed);
```

<Note>
  Today, the payroll product loops `createIntent` calls for each contributor. An atomic batched-intent contract path is planned so the whole batch can land in a single on-chain transaction.
</Note>

## Recurring payouts

For monthly or biweekly payroll, schedule the batch from your own backend on a cron. Each cycle is an independent batch, there is no on-chain "stream" object, which keeps confidentiality maximal: the on-chain footprint of cycle N reveals nothing about cycle N+1.

<Tip>
  If you want recipients to confirm receipt, send each one a settlement reference (intent ID + destination tx hash) over your own channel, email, Slack, or in-app notification. Recipients can verify receipt with their viewing key.
</Tip>

## Compliance and selective disclosure

The payer can grant their finance team or auditor scoped viewing access to the entire batch, or to a single intent within it, without making any data public. See [compliance and selective disclosure](/concepts/compliance) and [the viewing-permissions guide](/guides/viewing-permissions).

## Try it

<Card title="Payroll integration guide" icon="play" href="/guides/multichain-payroll">
  Step-by-step batch payout integration on testnet.
</Card>
