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

# Run a payroll

> The core wizard: select recipients and amounts, review the batch, run it with one wallet approval per payout, and prove settlement.

Running payroll pays many contractors at once, with each amount hidden on-chain. It is a four-step wizard: Select, Review, Run, Done. Your browser encrypts and proves each payout, you approve each in your wallet, and Confiroll fee-bumps every settlement, so you pay 0 XLM.

## 1. Select recipients and amounts

Choose who gets paid and how much. You can pick everyone, a saved group, or a manual multi-selection, and you set amounts from saved pay rates, inline edits, or an imported CSV.

<CardGroup cols={3}>
  <Card title="All contractors" icon="users">
    Add every Ready contractor to the run in one click.
  </Card>

  <Card title="A saved group" icon="layer-group">
    Select a group you defined earlier, such as a team or a region.
  </Card>

  <Card title="Manual multi-select" icon="list-check">
    Check individual contractors to build a one-off batch.
  </Card>
</CardGroup>

Set amounts three ways: pull each contractor's saved pay rate automatically, edit any amount inline in the selection table, or import a CSV of amounts and map it to your recipients.

<Warning>
  Only Ready contractors are selectable. Anyone still in Invited or Onboarding appears in the selector as blocked, with the reason shown and a resend-invite shortcut, because a confidential payout needs the recipient's viewing key, which exists only after they register. See [Contractors](/guide/employer/contractors).
</Warning>

## 2. Review

A full summary before anything settles. You see the batch in the clear. On-chain, each line stays hidden.

<CardGroup cols={2}>
  <Card title="What you see" icon="eye">
    The payout count, the batch total, and every line with its recipient and amount, all rendered on your device from your private ledger.
  </Card>

  <Card title="What is hidden on-chain" icon="eye-slash">
    Each individual amount. The chain records that the payouts settled. The amount is never a visible argument.
  </Card>

  <Card title="Funding check" icon="wallet">
    A comparison of your available balance against the batch total, shown as "you have X available; this batch needs Y."
  </Card>

  <Card title="Fees and time" icon="gas-pump">
    Fees are 0, because every payout is fee-sponsored, alongside an estimate of how long the run takes.
  </Card>
</CardGroup>

<Note>
  If the batch total is more than your available balance, Confiroll blocks the run and shows an Add funds shortcut to [Fund your balance](/guide/employer/funding). Once your balance covers the total, the run unblocks.
</Note>

## 3. Run

Each payout moves through its own states live, one row at a time, so you always know exactly where the batch is. You approve each payout in your wallet as the transaction source.

| Row state          | What it means                                                                                              |
| ------------------ | ---------------------------------------------------------------------------------------------------------- |
| Draft              | Queued in the batch, not started yet.                                                                      |
| Building proof     | Your browser encrypts the amount and builds a zero-knowledge proof, on your device, with your viewing key. |
| Awaiting signature | The transfer is ready and waiting for your wallet approval. You are the transaction source.                |
| Submitting         | Confiroll fee-bumps and submits the signed transfer to the network. You pay 0 XLM.                         |
| Settled            | The payout confirmed on-chain, with a transaction hash and an explorer link.                               |
| Failed             | Something interrupted the payout. The row offers a retry.                                                  |

Because every payout is a transfer you authorize, a run of N payouts is N quick approvals, sequenced by the run screen so you sign them in order without losing your place. A running counter tracks progress, for example "4 of 12 settled," and failed rows stay listed with a Retry action that rebuilds and resubmits just that payout.

<Info>
  You approve each payout as the sender, which is what keeps Confiroll non-custodial: it fee-bumps your signed transfer without ever holding your key. The run screen paces the prompts so a large batch stays manageable.
</Info>

## 4. Done

A summary of the finished run, ready to prove, document, and export.

<CardGroup cols={2}>
  <Card title="Settled versus failed" icon="circle-check">
    A count of what settled and what failed, with any failed rows retriable in place.
  </Card>

  <Card title="Proof links" icon="hashtag">
    An explorer link for every settled payout, so anyone can confirm that it settled. The amount stays hidden.
  </Card>

  <Card title="Generate payslips" icon="file-lines">
    Issue per-cycle payslips for the run, end-to-end encrypted to each contractor and anchored on-chain. See [Payslips](/guide/employer/payslips).
  </Card>

  <Card title="Export" icon="download">
    Export the run for your records, matched against your private ledger.
  </Card>
</CardGroup>

<Note>
  The mapping of amount to contractor lives in your private ledger, kept encrypted on your side. On-chain confirms that each payout settled. The amounts are yours to see and to prove, and you can produce a verifiable disclosure later from [Compliance](/guide/employer/compliance).
</Note>

## FAQ

<AccordionGroup>
  <Accordion title="Why one approval per payout?">
    Each payout is a separate confidential transfer that you sign as the transaction source. Signing per payout is what keeps the flow non-custodial: Confiroll fee-bumps your signed transfer but never holds your key and never signs on your behalf. The run screen sequences the prompts so twelve payouts are twelve quick approvals in a row.
  </Accordion>

  <Accordion title="What happens if one payout fails?">
    A failed payout does not stop the batch. The other rows continue, and the failed row stays listed with a Retry action that rebuilds the proof and resubmits just that one. The Done summary shows the settled count and any remaining failures so nothing is lost.
  </Accordion>

  <Accordion title="What if I close the tab mid-run?">
    Payouts that already settled are on-chain and final. Any row that had not settled is safe to resume: reopen the run and the remaining rows pick up from their last state, because your keys and the batch definition are on your device and the ledger records what settled.
  </Accordion>

  <Accordion title="Can I edit a batch after it starts?">
    Once a payout settles it is final and cannot be changed. Rows that have not settled yet can be retried or left out, and you can start a follow-up run for anyone you want to add or adjust. Amounts and recipients are locked per payout at the moment you sign it.
  </Accordion>
</AccordionGroup>
