Guides Paying from a Safe

Docs, Paying from a Safe

Paying from a Safe

Updated

When a payout from a Safe is approved, Payclose turns its approved lines into one Safe transaction: a batch with one USDT or USDC transfer per line. An owner of the Safe signs it in their own wallet, and the owners confirm and execute it in Safe{Wallet} like any other transaction.

What you need

  • Someone who is an owner or editor in Payclose and an owner of the Safe, with that owner account in a browser wallet extension, such as MetaMask or Rabby.
  • A Safe of version 1.3, 1.4 or 1.5 on the payout’s network.
  • Enough USDT or USDC in the Safe for the payout, and ETH for the network fee in the wallet of whoever executes it.

Payclose builds the batch from the approved version only, never from lines edited later, and its server forwards your signature only if it matches the batch Payclose computed itself.

Sign and propose

In Next step, at Step 3 of 6: Signing:

  1. Select Connect wallet and choose the Safe owner’s account in your wallet. If the account isn’t an owner, Payclose says “This wallet is not an owner of the Safe.” and lists the owners: switch accounts in the extension.
  2. If your wallet is on another network, select Switch to Base, or whichever network the payout is on.
  3. Check the batch: the number of transfers and the total, the Safe with its version and threshold, the nonce, the Safe transaction hash and the payout’s Fingerprint.
  4. Select Sign the batch. Your wallet shows what you’re signing: sign only if it shows this Safe as the verifying contract, the same nonce, and the MultiSend contract as one delegate call.

Payclose checks that the signature comes from an owner of the Safe and proposes the transaction to the Safe Transaction Service. The payout moves to In the Safe queue. The fingerprint goes with the proposal, so the other owners see it next to the transaction in Safe{Wallet}.

Next step at Step 3 of 6: Signing, connected as 0xf39F…2266 on Base, with a Sign the batch button. Below: a batch of 8 transfers, 29,200.00 USDC, from a Safe 1.4.1 on Base with 2 of 2 owners, nonce 7, the Safe transaction hash, the fingerprint, a reminder of what the wallet should show, and the links Download Safe CSV Airdrop, Reopen and Paid outside Payclose? Paste the transaction hash.
The signing step once a Safe owner’s wallet is connected.

Execute in Safe{Wallet}

Select Open the Safe{Wallet} queue in Next step. There, the other owners confirm the transaction until it reaches the Safe’s threshold, and one of them executes it. Before confirming, compare the Safe transaction hash in the queue with the one Payclose shows.

While the payout page is open for an owner or editor, it checks the Safe by itself about every half minute, and at once when you come back to the tab from Safe{Wallet}; Payclose also checks every 5 minutes when nobody has the page open. Check now asks at once. Once the transaction is executed and final, Payclose compares its transfers with the approved lines: see Reconciliation.

If the execution reverts, nothing is paid and the transaction stays in the queue: top up the Safe and execute it again.

If another transaction takes the batch’s nonce, for example when the owners reject it in Safe{Wallet}, Payclose marks the batch as failed (“Another transaction was executed with this nonce, so the Safe will not run this one.”) and the payout goes back to Signing. Select Build the batch again and sign a new one.

The CSV Airdrop file

Owners who’d rather sign in Safe{Wallet} than connect a wallet to Payclose can use Download Safe CSV Airdrop in Next step. It holds the approved lines in the format of the CSV Airdrop app in Safe{Wallet}, with the columns token_type, token_address, receiver, amount and id, and it’s named after the payout, its version and its fingerprint. The app looks up each token’s decimals itself and takes at most 499 transfers in one file. Build and execute the batch in Safe{Wallet}, then record it in Payclose, as below.

The file is there while the payout is approved and no batch from Payclose is waiting. A payout of more than 499 lines has no file: the CSV Airdrop app wouldn’t take it.

How a batch proposed from Payclose compares with one built in Safe{Wallet} with Transaction Builder or CSV Airdrop alone: contractor payouts from a Safe multisig.

If the payout was executed in Safe{Wallet} without Payclose, with the CSV Airdrop file or a batch built there, record it so Payclose can check it:

  1. In Next step, select Paid outside Payclose? Paste the transaction hash.
  2. Paste the hash of the execution, from the Safe{Wallet} history or the block explorer.
  3. Select Record the payment.

Payclose reads the receipt and checks every line against the approved payout. It takes the hash only if the transaction executed a transaction of this payout’s Safe, isn’t recorded for another payout, and came after the payout was sent for approval.

A batch you proposed from Payclose needs nothing pasted: Payclose learns about the execution from the Safe Transaction Service. To speed it up, Executed outside Payclose? Paste the transaction hash, under the waiting batch, takes the hash too: paste it and select Record the hash.

Note. Safe{Wallet} doesn’t support Arbitrum Sepolia, so Payclose can’t propose a batch there. To try a Safe on a test network, use Sepolia or Base Sepolia.

Run your next payout through Payclose

Get started

Free during the beta. EVM networks, from a Safe or a regular wallet; TRON later. Already signed up? The same button signs you in.