For offerwalls, GPT and affiliate networks

Pay every affiliate in one transaction.

Affiliate Pay batches your payouts, your wallet signs once, and hundreds of publishers get paid on-chain. Your funds never leave your control.

Non-custodial 2FA approvals Fee inside the same transaction
Weekly publisher payoutsbatch exe_01JC8W…Q4
Confirmed
NetworkBNB Smart Chain
AssetUSDT
Payouts248 → 1 transaction
Approved2FA · two approvers
0x5aAe…eAed25.00
0xfB69…d359120.50
0x2dA6…6B288.75
0x9c1E…a07F64.20
+ 244 more recipients12,249.07
Platform fee (same tx)12.48
Total12,480.00 USDT
tx 0x8f3a…c21d3 confirmations
250 → 1payouts in a single transaction on EVM chains
8networks, from Bitcoin to Solana and Lightning
0custody: funds stay in your own wallet
1 lineof code for the withdrawal widget
The problem

Where payout teams lose time and money

Paying publishers one by one is slow, expensive and easy to get wrong, and every mistake is paid twice.

One transfer per payout

Hundreds of signatures and network fees every payout day, and an afternoon gone.

Wrong address, lost money

A typo or an address on the wrong network, and the payout is gone for good.

Paying twice

A request left open in a wallet gets confirmed later, after the publisher was already paid.

Fraud cashouts

Multi-accounts and device farms withdraw before anyone has a chance to look.

Product

Everything a payout team needs. Nothing that holds your money.

Built for platforms that pay thousands of small amounts every week and cannot afford a mistake.

Hundreds of payouts, one transaction

Up to 250 recipients per transaction on Ethereum, BNB Smart Chain and Polygon, and up to 500 on Bitcoin and Litecoin. One signature and one network fee, with our fee inside the same transaction.

250 → 1

Funds stay in your wallet

Sign with MetaMask, WalletConnect, a passkey wallet or your own signer. We never hold or move your funds.

2FA and four-eyes approvals

Approve every batch with two-factor authentication, require a second approver, set daily limits and keep a full audit log.

Fraud screening before you pay

Each payout can be checked with CashoutGuard first. Multi-accounts, farms and VPN abuse are held for review.

Withdrawal widget in one line

Let users request their withdrawals on your site with a single line of code, in your own colors.

Pay by link

No wallet address yet? Send a claim link and the recipient picks a wallet. If nobody claims it, the funds come back to you.

Automatic payouts, within limits

Approved payouts go out on their own, capped by on-chain limits that only your wallet can set or revoke.

Treasury in USD

See balances across all your wallets in dollars, and get an alert before a batch runs short of funds or gas.

Nothing stuck in silence

Every transaction is followed until it is confirmed. If one needs a person, admins hear about it by email and Telegram.

Exchanges and Lightning

Pay straight from your Binance account, or over Lightning from your own node.

Your brand, verified

Give recipients a white-label portal and show a public "Verified payer" badge built from your real payout record.

How it works

From approved to paid in three steps

Set it up once. After that, payout day is one signature.

1

Connect a wallet

Add the wallet you pay from: a browser wallet, a passkey wallet, your Binance account or your own signer.

Your keys never touch our servers.
2

Send payouts

Create them through the API, upload a CSV or add them in the panel, then approve the batch with 2FA.

Amounts in crypto or in USD.
3

Sign once

One transaction pays everyone. We follow it on-chain until it is confirmed and notify your systems by webhook.

Recipients see their payout in their portal.
Security

A late or repeated signature can never pay twice

A request left open in a wallet can get confirmed hours later, after the payouts were sent another way. We closed that gap on-chain.

Your keys, your funds

Every payment is signed in your wallet. We cannot move funds, and only the wallet that approved a token can spend it.

A deadline on every batch

Each batch carries an on-chain deadline and a single-use reference. After the deadline it reverts, and a batch can only ever pay once.

Contracts with no admin key

No owner, no upgrades, no pause, so nobody can change the rules. They go through an external audit before mainnet.

Verified on-chain

A payout counts as sent only when the transaction on the chain matches the prepared batch exactly.

A late signature, step by step

12:00 · Batch prepared248 payouts · on-chain deadline 12:30
12:30 · Not signed in timepayouts stay locked until a final block is past 12:30
12:31 · Prepared again and paidfrom another wallet, in a new batch
13:05 · The old request is confirmed in the walletreverts on-chain: DeadlinePassed · nothing paid

Each recipient is paid exactly once, whatever happens in the wallet.

Developers

An API your team will like

Create payouts from your backend and let Affiliate Pay handle batching, approvals and tracking.

  • REST API with idempotency keys and an OpenAPI spec.
  • Signed webhooks for every payout and transaction change.
  • SDKs for JavaScript and PHP, plus WordPress and Laravel plugins.
  • Test mode on testnets, with the same API.
Create a payout
# Pay a publisher 25 USDT on BNB Smart Chain
curl https://app.afflpay.com/v1/payouts \
  -H "Authorization: Bearer $AFFLPAY_KEY" \
  -H "Idempotency-Key: payout-2026-10-30-0042" \
  -H "Content-Type: application/json" \
  -d '{
    "network": "bsc",
    "asset": "USDT",
    "address": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
    "amount": "25",
    "currency": "USDT"
  }'
{ "id": "po_01JC8W…", "status": "pending_approval" }
Pricing

Simple pricing, inside the transaction

No invoices to chase. Where the network allows it, our fee travels in the same transaction as your payouts.

Private beta

Free on testnets

Everything, on testnets, while we onboard the first payout teams.

  • All networks, on their testnets
  • API, webhooks, widget and plugins
  • Setup with our team
Get early access

Mainnet

Per payout no card on file

A small fee per payout, shown before you sign. We share exact rates during onboarding.

  • Collected in the same transaction where possible
  • Every feature included
  • Volume pricing for large payout teams
Talk to us
FAQ

Questions payout teams ask

Do you ever hold our funds?

No. Payments are signed in your wallet and go straight from it to your recipients. We prepare, verify and track the transactions, but we cannot move your money.

Which wallets can we pay from?

MetaMask and other browser wallets, WalletConnect, a passkey wallet created for you, your Binance account, your own Lightning node, or your own signer for Bitcoin and Litecoin.

Which networks and assets do you support?

Bitcoin, Litecoin, Ethereum, BNB Smart Chain, Polygon, Tron, Solana and Lightning, with USDT, USDC and each network's native coin where available.

What does a recipient need?

Only a wallet address. If they do not have one yet, send them a claim link, or let them request the withdrawal from your site with the widget.

How do approvals work?

Payouts can wait for approval with two-factor authentication. You can require a second approver, set daily and per-payout limits, and every action is recorded in the audit log.

Is it live?

Affiliate Pay is in private beta on testnets. Mainnet opens after the external audit of the smart contracts. Request access to join early.

Early access

Pay your affiliates the right way

Tell us about your platform. We onboard a few payout teams at a time and set everything up with you.

We only use your details to reply about Affiliate Pay. See our privacy policy.