Başak Uğur ÖnemProduct DesignerNiceCase file 04 · 2024
Case file 04 · 2024

Pay 100 people.Sign once.

IBCL · 2024 · Payments · Web · Brand

Designing the product and brand that turn a bulk stablecoin payout into one file, one preview, one payment and one receipt, with no wallet connection.

Illustrative mock · dummy data
Project
Multract
Client
IBCL
Role
Product and brand designer
Year
2024
00.1 Opening and TL;DR

Paying 100 people in crypto meant 100 chances to lose money.

I designed Multract around one principle: a Web2 checkout for a Web3 job.

Below: one payroll Friday before Multract, the flows, three decisions and what changed.

Research
25 users, 3 stakeholders, 4 competitors
Year
2024
Scope
Product, brand and website
Live
Public in 2024 · now a backend service
01.1 Payroll Friday

100 contributors, one afternoon.

Bulk on-chain payments were slow, technical and wallet-dependent. Teams repeated the same transfer again and again, with fragmented flows and unclear states, and every repetition was a new chance to paste a wrong address.

  1. payroll_friday.xlsx100 rows NameWallet addressUSDT TJx2Lq…8fQa3.40 TM9cAe…Wd212.75 TPq4Rz…kL0s4.10 TBh7Kx…3nVe3.05 TQ7hWv…k2Lm3.60 TRf3Nb…uY8c2.90 + 21 more rows

    Fri 14:00Payroll day. 100 contractors, nine countries.

  2. Wallet6 / 100 Approve contract interaction 0xa9059cbb00000000000000000041e5c3f2b9d0a7e8c0000000000000000000… Reject APPROVE

    Fri 14:20One transfer, one signature. Twenty-seven times.

  3. Row 19 · Ana R. · 3.60 USDT In the spreadsheet Pasted in the wallet TQ7hWv3sR8yNf2cD9kLp4XaZ TQ7hWv3sR8yNf2cD9kLp7Mbq ✕ last four characters differ

    Fri 15:40One typo away from losing someone's pay.

  4. #accounting Payroll sent, links below: tronscan.org/#/transaction/7f3a… tronscan.org/#/transaction/b21c… tronscan.org/#/transaction/09de… tronscan.org/#/transaction/e4f8… + 23 more links Did you send it? I don't see anything yet.

    Fri 18:10Four hours later, the proof is 100 links.

  5. End of file

    Scroll down to see the same Friday with one payment.

1 / 5
Illustrative mock · dummy data · scenario based on interviews with payroll teams
payout_old.log100 recipients · before Multract
  1. 01Open the payout spreadsheet✕ 100 rows to send one by one
  2. 02Connect a wallet✕ required before anything
  3. 03Sign each transfer✕ 100 pop-ups, each a contract call
  4. 04Paste an address✕ one typo sends money to nobody
  5. 05Wait for confirmations✕ no clear status
  6. 06Report to accounting✕ 100 explorer links stitched by hand
Why it's hard · evidence
E1 · Blind signing
$1.5B

Taken from Bybit in February 2025, after signers approved a transaction their screens didn't show them.

Bybit hack · reported by The Block, February 2025
So: no contract call to sign.
E2 · Address poisoning and typos
$83M

In confirmed losses from more than 270 million address-poisoning attempts on Ethereum and BNB Chain.

Cointelegraph, 2025
So: every address is checked before money moves.
E3 · Stablecoin payouts
9.6%

Of crypto-industry workers were paid in crypto in 2024, triple the year before; stablecoins made up over 90% of those salaries.

Pantera Capital · Blockchain Compensation Survey 2024
So: design for the payroll run, not one transfer.
E4 · My research
25

Users interviewed, plus 3 stakeholders and 4 competitors reviewed.

Interviews · competitor analysis · prototype testing
So: remove the repetition, not the crypto.
02.1 The flow

Five objects, one payout.

No wallet connection at any step. The hard part was overpaying and walking away.

ObjectStatesRule
Transferdraft → awaiting payment → processing → completeNo wallet connection at any step.
Recipient linevalid / invalidInvalid lines block the preview until fixed or removed.
Hash codevalid for 10 minutes → expiredLets a user leave and continue the same process.
Paymentexact / overpaidAnything above the sub-total returns to the refund wallet.
Refund walletset before recipientsWhere overpayments go back.
Fig 01 · Information architecture Home Make transactionFlows A to C FAQSupport link BlogSort · search · share CalculatorFees before you start Support About usCompany · team Recipient checkGate · before preview Hash code checkGate · 10 minutes
Home
Make transaction
  • New transfer or continue with a hash code
  • Network, token and refund wallet
  • Recipients: manual entry or CSV, sample file to download
  • Recipient check Gate invalid lines block the preview
  • Preview, pay, processing, complete
  • Hash code check Gate valid for 10 minutes
FAQ
  • FAQs
  • Support link
Blog
  • Sort by date, views, comments or likes
  • Search
  • Posts: read, like, comment and reply
  • Share via Facebook, X, mail, WhatsApp, LinkedIn, Threads, Reddit, Telegram
Calculator
  • Network, token, number of recipients and amount
  • Total, network fee, commission and sub-total
Support
  • Contact form
About us
  • About the company
  • About the team
ScreenGate or check
Notice the two gates inside Make transaction. Hover a table row to light the screens that use it.
User flows
Fig 02 · A1 · New transfer, set up Payroll team No Manual Enter hash codeFlow B Enter linesBy hand Yes CSV New transfer? Network · tokenTron · USDT Refund walletAsked first CSV or manual? Upload CSV+ sample file
  1. Start
  2. New transfer or continue? Continue: enter the hash code, flow B
  3. Network and token Tron · USDT
  4. Refund wallet Asked before recipients
  5. CSV or manual? Manual: enter lines by hand · CSV: download the sample if needed, then upload
  6. Upload CSV Then flow A2
DecisionScreen
Notice that the refund wallet comes before any recipient.
Fig 06 · What one upload sets off
Uploadpayroll_friday.csv100 lines
  • Read the CSV✓
  • Check 100 addresses✓
  • Row 19 flagged✕
  • Build the preview✓
One paymentThe contract pays 100 people

Illustrative mock · dummy data
One file sets off every check before the preview.
02.2 The research-to-design strategy map

Every decision traces back to research.

Research evidenceCore insightDesign decision
Payroll and finance people sent one transfer and signed one contract call per recipient.Interviews · 25 users
I1The pain is the repetition, not the crypto.
D1Pay once, not 100 times
Bulk-send tools validated late and asked people to sign what they couldn't read; one typo sends money to nobody.Competitor analysis · 4 tools · interviews
I2People need to see exactly what leaves before it leaves.
D2Preview before paying
People sending from an exchange couldn't send the exact amount, so totals arrived slightly over. In testing, someone overpaid and there was no way to send the money back.Prototype testing · exchange withdrawals
I3The flow has to survive overpaying and walking away.
D3Refund address up front
02.3 Key design decisions

Three decisions that shaped the screens.

Decision 01 D1

What I decided

No wallet connection. The user sends one total to one contract address, by copying it or scanning a QR code, and the contract pays every recipient.

One total, one address or QR code, then a countdown
Original screen recording · dummy data
Decision 02 D2

What I decided

Recipients come from manual entry or a CSV, with a sample file to download. Before paying, one preview shows every address and amount and the order summary: number of addresses, total, network fee, commission, sub-total.

Number of addresses, total, network fee, commission and sub-total, before Done
Original screen recording · dummy data
Decision 03 D3

What I decided

The refund address is asked first, before recipients. Anything sent above the set price returns to it automatically. Each process also gets a hash code, valid for about 10 minutes, so people can close the tab and come back.

The refund address sits above the recipients; a hash code brings you back
Original screen recording · dummy data
Try it · decision 02
Upload payroll_friday.csv100 lines
Row 19 invalid addressFound after payingFixed before paying
Check every lineReport after submitPreview · 97.95 USDT
Pay onceOne address
Preview before paying: row 19 is fixed before anything moves. Illustrative mock · dummy data
CAPBASE Multract
03.1 Prototype

Recipients, preview, pay, receipt.

Come back with a hash code
Multract01 · Recipients
NetworkTronTokenUSDTRefund address · if you send too muchTRk4…9vQe
#AddressAmount
01TJx2Lq…8fQa3.40
02TM9cAe…Wd212.75
03TPq4Rz…kL0s4.10
04TBh7Kx…3nVe3.05
+ 23 more lines · from payroll_friday.csv · Download sample
Address count: 100Next
See what leaves your wallet
Multract02 · Preview
#AddressAmount
17TPq4Rz…kL0s4.10
18TBh7Kx…3nVe3.05
19TQ7hWv…k2Lw3.60
20TRf3Nb…uY8c2.90
21TKa8Ds…p1Zt3.85
100 lines · all valid ✓
# of addresses
100
Total
94.30 USDT
Network fee
3.18 USDT
Commission
0.47 USDT
Sub-total
97.95 USDT
Nothing has left your wallet yetPay 97.95 USDT
No wallet connection
Multract03 · Pay
Hash code · valid 10 min7f3a9c2b…e21b Copy the contract address or scan the QR code to pay. Contract addressTXm4Gv…Q8sd ⧉
Check the hash code on TronScan before you pay.
# of addresses
100
Sub-total
97.95 USDT
Your order has been received. Please wait while we check.
One receipt
Multract04 · Receipt
Process complete! Transaction hash7f3a9c2b4d…e1d04e21 ↗ ⧉ See every transfer on TronScan with this one hash.
# of addresses
100 paid
Total
94.30 USDT
Fees
3.65 USDT
Sub-total
97.95 USDT
Overpaid0.05 USDT Sent back to your refund address TRk4…9vQe.
Illustrative mock · dummy data
The four payout screens rebuilt: recipients with a hash code field to continue later, a preview of every line with the order summary, payment by contract address or QR code with no wallet connection, and one receipt with one transaction hash and the refunded overpayment.
1Payment per payout
0Wallet connections
1Receipt, one hash
10Minutes to come back
Original screen recording · dummy data
Highlights
  1. 01A Web2-style checkout with one cost breakdown
  2. 02A preview of exactly what leaves your wallet
  3. 03A hash code to come back later
  4. 04One receipt instead of scattered explorer links
Whole project · Big idea

A Web2 checkout for a Web3 job.

One screen · The preview

Every address, amount and fee, before anything moves.

One small part · The sub-total line

One number to send, with the fees already in it.

03.2 Outcome

35% more new users.

New users · May to July 2024
May 2024
Baseline July 2024
+35%

Multract was public through 2024 and now runs as a backend service.