UX · Product Design · Case Study

Daoing

Daoing

Send crypto like you'd send a message.

Send crypto like you'd send a message.

Daoing is a Web3 community app built around group chats, DMs, and a community around every DAO. I designed its self-custody wallet so transfer works the same way the rest of the app does — no address to copy, no app to leave.

UX Designer

Mar – Jun 2023

IOS App

IOS App

Why this exists

Why this exists

Designing wallet interaction for Daoing

A brand-new wallet feature, no prior version. Daoing's users already move value inside conversations — DAO reimbursements, bounty payouts, one member paying another — so transfer had to be something chat could call directly, not a page buried in a separate wallet tab.

The flow today, without a chat-native option:

The flow today, without a chat-native option:

Confirm the amount in chat → Copy the wallet address → Switch to a separate wallet app → Select the right chain and token → Paste the address → Complete the transaction → Screenshot or copy the tx hash back into chat

  • Copied addresses get mistyped

  • The wrong network gets selected

  • Users bounce between chat and a separate wallet app, losing context each time

Validated, then tested

Validated, then tested

Checked against the market, then against real people

Benchmarking wallets, exchanges, social payment apps, and DAO tools showed no single category solves this — the opportunity is a chat-native crypto flow for Web3 social communities. Then it went in front of 7 real participants.

4

Competitor categories analyzed — none chat-native

7

Participants, from Web3 beginners to founders

6/7

Completed the send flow unassisted

3.2 → 4.1

Avg. confidence score, before → after iteration

See the competitive benchmark, the V1 prototype and full test results

From testing to design

From testing to design

What the testing actually changed

✓ Shipped — the confirmation screen now leads with From / To / Amount / Fee / Total, after users hesitated right before confirming

✓ Shipped — gas fee uses progressive disclosure: a simple default, with Advanced Options underneath for anyone who wants more control

◇ Future, not yet built — extending the same flow to ERC-20 and NFT (ERC-721) transfers, sketched but not yet tested

The flow today, without a chat-native option:

Confirm the amount in chat → Copy the wallet address → Switch to a separate wallet app → Select the right chain and token → Paste the address → Complete the transaction → Screenshot or copy the tx hash back into chat

Copied addresses get mistyped

The wrong network gets selected

Users bounce between chat and a separate wallet app, losing context each time

The flow

The flow

The complete Send path, from entry to result

Eleven steps from opening Send to a final outcome, with the two branches that matter: an insufficient-balance check that loops back to the form, and a Speed up action that reopens the same Edit Priority screen used before signing.

Eleven steps from opening Send to a final outcome, with the two branches that matter: an insufficient-balance check that loops back to the form, and a Speed up action that reopens the same Edit Priority screen used before signing.

StartDesign

Start Design

Chat first — the wallet tab works too

Send starts from any chat: open the + menu next to the message input, and Image, Contact Card, Transfer, Red Packet sit alongside each other. Tapping Transfer opens a bottom sheet listing "Transfer Token" and "Request Token." The recipient is already the person you're talking to — no address to type or paste. The wallet tab has its own Send button too, with no chat context at all — same flow either way, none of it changes based on which door was used.

From Chat menu

John Doe

Lorem ipsum dolor sit amet consectetur. Venenatis sodales sollicitudin ut sagittis urna vel lectus pulvinar et. Fermentum lobortis bibendum ac amet nunc malesuada sed ultricies.

sdf[pakgk[sdkg[ksdgoksp

John Doe

❤️

5

Say something...

Image

Contact Card

Transfer

Red Packet

Yesterday 9:21 PM

Image

Contact Card

Transfer

Function List

TestDAO

From wallet tab

Tokens

NFTs

DApps

39,420.72 MATIC

≈$3942.72

0x2358d...22a2y

Send

Receive

Tokens

Ethereum

1.32

≈$2178.22

USDT

1,203

≈$1,208

USDC

558

≈$556.5

Recent Activities

View

Contract Interaction

(0xe5...a1473)

Success

12 days ago

Received tokens

(0xe5...a1473)

Success

12 days ago

Sent tokens

(0xe5...a1473)

Success

12 days ago

Home

Discover

Wallet

Profile

0x235...22a2y

Send Token form

Before the To field is filled, the estimated fee shows 0 MATIC. The moment the address is entered, the fee jumps to a real estimate (0.0000647 MATIC). There's no address field to validate here — the recipient was already chosen from chat, not typed.

Component 1

Cancel

Submit

Polygon Mainnet

From

0x74426B056C04b49e...F7C1C

To

Select, paste an address

Paste

MATIC

0.00

Balance : 39,420.72 MATIC

Total

0 MATIC

Max amount:

0.000108

ETH

Likely in < 30 seconds

Max fee:

0.000108

ETH

Estimated gas fee

0 MATIC

Advance Options

Cancel

Submit

Polygon Mainnet

From

0x12E26B056C04b4e...dcE48

To

0x74426B056C0493...1e7C1C

Paste

MATIC

100.00MATIC

Balance : 39,420.72 MATIC

Total

0.0000647 MATIC

Max amount:

0.000108

MATIC

Likely in < 30 seconds

Max fee:

0.000108

MATIC

Estimated gas fee

0.0000647 MATIC

Advance Options

Risk

If the fee doesn't visibly change with the amount typed, the user will be confused about where the number came from.

If the fee doesn't visibly change with the amount typed, the user will be confused about where the number came from.

Edit Priority

For most transfers, nobody touches this screen's details. A Low / Medium / High slider defaults to Medium, paired with one line of plain confirmation: "~0.001363 ETH, likely in < 30 seconds." That's enough for most people to read and continue. Advance Options sits underneath for the minority who want to set Gas limit, Max priority fee, and Max fee by hand.

Component 2

Cancel

Submit

Polygon Mainnet

From

0x12E26B056C04b4e...dcE48

To

0x74426B056C0493...1e7C1C

Paste

MATIC

100.00 MATIC

Balance : $951.35

Total

0.0000647 MATIC

Max amount:

0.000108

MATIC

Likely in < 30 seconds

Max fee:

0.000108

MATIC

Estimated gas fee

0.0000647 MATIC

Advance Options

M

mydapp.com

Ethereum

Method Name

100.00 MATIC

$ 99.10

Account 1 (0xggGg...4422)

Balance : 39,420.72 MATIC

0.0000647 ETH

Total

Max fee:

0.000108

ETH

Max Amount:

0.000108

ETH

Likely in < 30 seconds

0.0000647 ETH

Estimated gas fee

View Data

Cancel

Confirm

Cancel

Submit

Polygon Mainnet

From

0x12E26B056C04b4e...dcE48

To

0x74426B056C0493...1e7C1C

Paste

MATIC

100.00 MATIC

Balance : $951.35

Total

0.0000647 MATIC

Max amount:

0.000108

MATIC

Likely in < 30 seconds

Max fee:

0.000108

MATIC

Estimated gas fee

0.0000647 MATIC

Advance Options

~0.001363 ETH

Max fee: 0.001775 ETH ($2.93)

Likely in < 30 seconds

Low

Medium

High

Advance Options

Save

Cancel

Submit

Polygon Mainnet

From

0x12E26B056C04b4e...dcE48

To

0x74426B056C0493...1e7C1C

Paste

MATIC

100.00 MATIC

Balance : $951.35

Total

0.0000647 MATIC

Max amount:

0.000108

MATIC

Likely in < 30 seconds

Max fee:

0.000108

MATIC

Estimated gas fee

0.0000647 MATIC

Advance Options

~0.001363 ETH

Max fee: 0.001775 ETH ($2.93)

Likely in < 30 seconds

Low

Medium

High

Advance Options

Gas limit

Estimate:

0.5 GWEI

21000

Max priority fee

Estimate:

0.5 GWEI

0.5 GWEI

≈0.000011 ETH

Max fee

Estimate:

82.426423313 GWEI

75.443381857 GWEI

≈0.001735 ETH

Save

Risk

If reaching the confirm screen required understanding Gas mechanics first, a large share of users would abandon the transfer right here — the default isn't a convenience, it's what keeps an entire category of users from getting stuck.

Insufficient balance

When the balance isn't enough, the form fields themselves turn red (the MATIC row reads "Insufficient balance" inline), and a dialog appears with Cancel and Deposit.

Component 3

Cancel

Submit

Polygon Mainnet

From

0x12E26B056C04b4e...dcE48

To

0x74426B056C0493...1e7C1C

Paste

MATIC

100.00MATIC

Balance : 39,420.72 MATIC

Total

0.0000647 MATIC

Max amount:

0.000108

MATIC

Likely in < 30 seconds

Max fee:

0.000108

MATIC

Estimated gas fee

0.0000647 MATIC

Advance Options

Polygon Network

From

0x12E26B056C04b4e...dcE48

MATIC

40,000.00 MATIC

Balance : 39,420.72 MATIC

Insufficient balance

Total

-

Max amount:

0.000108

ETH

Likely in < 30 seconds

Max fee:

0.000108

ETH

Estimated gas fee

-

Advance Options

Cancel

Submit

Risk

Catching this after signing means every step before it — filling the form, setting the fee, confirming, entering the PIN — was wasted effort.

The point of no return

Each screen restates that this is final, a different way each time: the confirm sheet's own line, the Sign-message warning's plain language, and a PIN in place of the usual wallet signature, since this wallet is built-in. Once sent, Pending shows the same From, To, Amount, and fee — nothing new to check, just a status that hasn't resolved yet.

Component 4

Cancel

Submit

Polygon Mainnet

From

0x12E26B056C04b4e...dcE48

To

0x74426B056C0493...1e7C1C

Paste

MATIC

100.00 MATIC

Balance : $951.35

Total

0.0000647 MATIC

Max amount:

0.000108

MATIC

Likely in < 30 seconds

Max fee:

0.000108

MATIC

Estimated gas fee

0.0000647 MATIC

Advance Options

From:

Account 1 (0x12E2...dcE48)

Balance : 39,420.72 MATIC

To:

0xggGg...4422

$99.56

Total

100.00 MATIC

Amount

0.0000647 ETH

Estimated gas fee

⚠️ Make sure the address and network are correct.
Crypto transfers cannot be reversed.

Cancel

Confirm

Cancel

Submit

Polygon Mainnet

From

0x12E26B056C04b4e...dcE48

To

0x74426B056C0493...1e7C1C

Paste

MATIC

100.00 MATIC

Balance : $951.35

Total

0.0000647 MATIC

Max amount:

0.000108

MATIC

Likely in < 30 seconds

Max fee:

0.000108

MATIC

Estimated gas fee

0.0000647 MATIC

Advance Options

M

mydapp.com

Ethereum

Sign this message?

Account 1 (0x12E2...dcE48)

Balance : 39,420.72 MATIC

⚠️ Confirming this transfer is final.

Crypto transactions can't be reversed once sent — there's no bank to call, no "undo" button. Double-check the recipient and amount below before signing.

Cancel

Sign

Cancel

Submit

Polygon Mainnet

From

0x12E26B056C04b4e...dcE48

To

0x74426B056C0493...1e7C1C

Paste

MATIC

100.00 MATIC

Balance : $951.35

Total

0.0000647 MATIC

Max amount:

0.000108

MATIC

Likely in < 30 seconds

Max fee:

0.000108

MATIC

Estimated gas fee

0.0000647 MATIC

Advance Options

0

WXYZ

9

TUV

8

PQRS

7

MNO

6

JKL

5

GHI

4

DEF

3

ABC

2

1

Enter Wallet Pin

Enter wallet pin to confirm transaction

8

8

|

Cancel

Risk

Saying "final" once and having it skipped past does nothing — repeating it is what makes it land.

Reflection & Next Steps

Reflection & Next Steps

Crypto transfer is not just a wallet action

The final design keeps Send, Request, Receive, wallet confirmation, and transaction status inside the chat context. My key takeaway was that users do not only need a faster transfer flow; they need enough clarity and confidence to confirm a transaction involving real assets.

Related Projects

Related Projects