For teams that pay contractors in USDC

Pay contractors in USDC from your Safe or wallet

Payclose prepares the monthly USDC payout, your team reviews and approves it, and you send it from your company’s own Safe or a regular wallet such as MetaMask or Rabby, on Ethereum, Base or Arbitrum One.

The USDC goes from your wallet straight to each contractor. It never passes through Payclose or a payout platform’s account.

Free during the beta. EVM networks, from a Safe or a regular wallet; TRON later.

Payclose never holds funds or keys and doesn’t convert anything: you pay from USDC already in your wallet, and your wallet signs every transfer.

Agree three things with each contractor first

Settle them before the first payment. Payclose keeps the answers on the contractor’s record, so next month starts from them.

  1. Network

    Which network

    An address on Ethereum, Base or Arbitrum looks the same: 0x and 40 characters. Ask which network their wallet takes USDC on; for an exchange deposit address, which networks the exchange credits.

    In Payclose a recipient has one address per network, each checked and approved on its own.

  2. Token

    USDC or USDC.e

    On Arbitrum One there are two: USDC, issued natively there, and USDC.e, bridged from Ethereum. Different contracts, and a wallet or exchange that expects one may not credit the other: pay in the one the contractor asked for.

    A recipient’s default token and amount prefill their line when you add them to a payout.

  3. Address

    The address, from them

    Not from a chat message. Invite the contractor to the recipient portal, and they confirm the address by signing a message with that wallet, which moves no funds. Either way, a new address is checked, approved by someone other than the person who entered it, and held for 24 hours.

    The check looks for checksum typos and for look-alikes, the trick behind address poisoning.

The USDC contracts Payclose pays with

Every USDC line pays one of these contracts, from the registry the app itself uses. Circle lists its native USDC contracts at developers.circle.com.

USDC contracts by network
NetworkTokenContract
Ethereum USDCNative USDC 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Base USDCNative USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Arbitrum One USDCNative USDC 0xaf88d065e77c8cC2239327C5EDb3A432268e5831
Arbitrum One USDC.eBridged from Ethereum 0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8

A month of USDC payouts from a regular wallet

Five steps, named as the app names them. From a Safe, the paying step is a batch your owners sign instead.

  1. Draft

    Copy last month or import a CSV

    Recipients and amounts carry over from last month. A CSV needs the recipient, the address and the amount; rows on another network, or in a currency that network doesn’t have, are skipped, each with the reason.

    For rows without a currency column, you pick the token, such as USDC.

  2. Approval

    Review the changes, then approve

    The review flags what costs money in a USDC payout: an address that doesn’t fit the network, a look-alike, a missing invoice, an amount far from last month’s. Then someone who didn’t send it approves it with a passkey.

    Try the comparison on two of your own payout CSVs with the free payout diff checker.

  3. Paying

    Pay from your own wallet

    Connect the payout’s wallet, and Payclose checks that it holds the USDC for the lines left and ETH for the fees. A wallet that can batch transfers (EIP-5792) asks once for one transaction; otherwise it asks once per line.

    From a Safe, an owner signs one batch instead and the others confirm it in Safe{Wallet}: see payouts from a Safe multisig.

  4. Confirming

    Wait until it’s final

    Payclose waits until each transaction is final: the finalized block on Ethereum, usually about 15 minutes; 32 blocks on Base; 64 on Arbitrum One.

  5. Reconciled

    Matched line by line

    Each line needs a transfer of its own token contract to its approved address for its exact amount, so a USDC.e transfer doesn’t pay a USDC line. Paid lines link to the block explorer.

    With receipts on, each contractor with an email address gets the amount, the network and a link to the transaction.

Before your wallet asks for anything, the paying step says how many times it will ask and whether the balances cover the lines left. Declining sends nothing.

Payclose’s Next step panel at Step 3 of 5: Paying, waiting for you to pay from Ops wallet, with a Pay 4 lines button and the note: Your wallet asks once: one transaction pays every line. Connected as 0xf39F…2266 on Base; the balances cover the lines left. Four lines in USDC marked To pay, and a total of 2,300.00 USDC from Ops wallet on Base.
Step 3 of 5, Paying: 4 lines, 2,300.00 USDC, from a regular wallet on Base that can batch, so it asks once. Sample data.

What goes wrong in a USDC payout, and what Payclose checks

A USDC transfer is final once confirmed, so these are caught before anyone signs or not at all.

  • The wrong network

    The old way: “my USDC address is 0x71b4…8780”

    The same address is valid on every EVM network, so nothing stops a transfer on the wrong one. Whether the contractor can still reach the money depends on their wallet or exchange.

    In PaycloseA payout pays only addresses approved on its own network, and an address that’s a contract on another network but empty on this one blocks it.

  • USDC or USDC.e

    The old way: “sent 3,200 USDC on Arbitrum”

    Two tokens share the name on Arbitrum One. Send the bridged one to someone whose exchange expects native USDC, and it may not be credited.

    In PaycloseUSDC and USDC.e are separate tokens on every line, and the reconciliation CSV names the token contract of each transfer.

  • A look-alike address

    The old way: 0x4be0…07fd, copied from the wallet history

    Wallets show the first and last few characters of an address. An attacker plants a match in your history and waits for someone to copy it.

    In PaycloseA new address that starts and ends like one you have, with a different middle, is flagged before anyone approves it. Try the free payout address checker on your list.

  • A typo in the amount

    The old way: 32,000.00

    A misplaced decimal point pays ten times the rate, and a stablecoin transfer can’t be pulled back.

    In PaycloseAn amount more than 50% off the contractor’s last line, or over three times the payout’s median in that token, is flagged Unusual amount.

Networks, tokens and wallets

USDC on every network Payclose pays on, and USDT where the table says so.

Networks Payclose pays on, their tokens and the wallets that can pay there
NetworkTokensPays from
Ethereum USDT and USDC A Safe or a regular wallet
Base USDC A Safe or a regular wallet
Arbitrum One USDC, USDC.e and USDT A Safe or a regular wallet
  • Safe: versions 1.3, 1.4 or 1.5. One owner signs the batch in Payclose; the owners confirm and execute it in Safe{Wallet}.
  • Regular wallet: MetaMask, Rabby or another browser wallet. One transaction where the wallet can batch transfers (EIP-5792), otherwise one per line.
  • Test networks: Sepolia, Base Sepolia and Arbitrum Sepolia, with test USDC. A Safe can be tried on Sepolia or Base Sepolia; Safe{Wallet} doesn’t serve Arbitrum Sepolia.
  • TRON payouts come later.

What Payclose doesn’t do

It runs the payout from your wallet. It isn’t a USDC payroll provider that holds or converts your money.

  • Hold funds or keysIt isn’t a wallet and has no key that can sign a transfer: your own Safe or wallet signs every payout.
  • Ask for token allowancesNo token approvals and no contract of its own: every transfer goes from your wallet straight to the contractor.
  • Exchange or convert cryptoNo exchange, conversion or bridging: you pay from the stablecoins you already hold.
  • Payroll, taxes or employmentIt isn’t an employer of record or a payroll provider: no tax calculation or filing, employment contracts or legal advice.

How signing, approvals, sign-in and your data are protected: Payclose security.

Questions

Can some contractors get USDC and others USDT?

Yes. Each line has its own token, and a recipient can have one line per token. On Ethereum and Arbitrum One a payout can mix USDC and USDT, plus USDC.e on Arbitrum One; on Base, Payclose pays USDC.

On Arbitrum, should we pay in USDC or USDC.e?

In the one your contractor’s wallet or exchange expects. USDC is issued natively on Arbitrum; USDC.e is bridged from Ethereum. Payclose treats them as two tokens and never swaps one for the other.

Can we try a USDC payout without real money?

Yes, on Sepolia, Base Sepolia and Arbitrum Sepolia with test USDC. A Safe can be tried on Sepolia or Base Sepolia; Safe{Wallet} doesn’t serve Arbitrum Sepolia.

What does the contractor see?

In the recipient portal, if you invite them: their payout address on each network with its state, and every payment with a link to its transaction. Nothing else of your organization.

Read next

Send next month’s USDC payout from your own wallet

Get started

Free during the beta. EVM networks, from a Safe or a regular wallet; TRON later.