The freelancer
Has no website. Sends an invoice link to get paid.
How do I ask for crypto without getting it wrong?
Answered in: Invoice formA crypto payment gateway that replaced manual, screenshot-based payment checks for two internal products: a cross-border payment service and a crypto exchange.
The problem
Ali opens a support ticket to pay in crypto.
Sara types the address and amount into it by hand.
Ali copies the address and guesses the network.
He pays and uploads a screenshot as proof.
Sara compares the screenshot with the wallet by eye.
Tickets pile up, and Ali’s request slips down the queue.
Hours later, Ali still doesn’t know if it arrived.
A wrong network or amount, and the business pays for it.
Discovery
The brief came from the business. To see what it didn’t say, I spent time with the product managers of both products and with the ops team who checked payments every day. In short, this is what they told me:
A screenshot can be incomplete, or fake. And the mistake we see most is the wrong network.
Check, approve, then act. Miss one ticket and the customer just waits.
Mistakes come from our side too: a wrong address, a wrong amount. Some of them cost us money.
The insight
Now the problem was clear, and so was the job. Nebulox had to prove payments on its own, and help people avoid the mistakes no system can undo afterwards.
How Nebulox proves a payment
Each invoice gets its own address and amount
The customer pays
The payment is detected on-chain
The status updates by itself
Who it’s for
Built from conversations with the ops and product teams of both products.
Decision 01 · The freelancer
A freelancer without a website gets paid with an invoice link. They want it quick, but one wrong choice sends their customer the wrong request. So the form had to be fast and hard to get wrong. I tested four versions with colleagues acting as freelancers, our team lead, engineers and PMs, and checked each against four questions:
Evidence
I took the test results to the ops team who knew freelancers best. Most freelancers wanted to be paid in fiat and rarely needed to price in a coin.
What I changed
Decision 02 · The payer
Every customer lands on the same checkout, from a freelancer’s link or a business’s website. Many have never paid in crypto before, so I designed it around three rules:
1 · Simple, familiar steps
One decision per screen: pick a coin, pick a network, send.
2 · Hard to get wrong
The wrong network was the most common mistake, and it can’t be undone. So the network gets its own step, with a warning that names the only network that works.
3 · A clear answer
Each invoice has its own address and amount, so Nebulox matches the payment itself. The customer no longer sends a screenshot as proof. The screen updates on its own:
Decision 03 · The business
A business handing its income to a new provider like Nebulox wants to stay in control. The gateway gives it three options:
Notifications, so it knows when a payment arrives.
A webhook, so its own system knows too.
Automatic withdrawal, so its money doesn’t have to stay in Nebulox.
With so many settings, some were easy to miss. I ran a card sort with both products’ PMs and two ops staff, designed each person’s grouping, and we settled on three tabs: General, Technical and Notifications.
01The problem
Which business does this withdrawal come out of? A company running several businesses shared one wallet across all its gateways.
02The research
I mapped 14 benchmarked gateways into three models, each with its limits and what it would change in our design.
Three wallet models
Coinify · Confirmo · BitPay · CoinPayments · NOWPayments · Request
CryptoCloud · Plisio · Cryptomus
CoinGate · BlockBee · CoinRemitter · Radom · Calypso Pay
03My recommendation
One business, one wallet, and the team agreed. It was an MVP, time was short, and there was no reason to solve a complexity we didn’t yet know anyone needed.
04Shipping fast
Money was involved, so I agreed with the developers to remove the gateway list for now and leave the redesign for later.
Outcome
The cross-border payment service and the crypto exchange now take crypto payments through Nebulox.
Payments are matched to their invoice automatically. Nobody checks screenshots against wallets by hand anymore.
The product was feature-complete for external businesses, with a few trial users when I left.
What I can’t show
There’s no before-and-after number: the manual process was never measured, and I’m not going to make one up. What I can point to is the bar set at the start, and that it was met.
Reflection
After launch, the team’s feedback pointed to one change in the invoice form: a live preview of the exact checkout, beside the form, updating as the freelancer fills it in. It would replace the review step.
I compared about 20 gateways on 35 features; scroll the board to see how far it went. Some of those rows never informed a decision, and starting from the decision would have made the benchmark faster.
Almost everything I learned came through the ops and product teams. A few sessions with outside freelancers and developers would have shown whether those patterns held beyond our own products.
A crypto payment gateway that replaced manual, screenshot-based payment checks for two internal products: a cross-border payment service and a crypto exchange.
250.00 USDT
≈ $250.00
The problem
Ali opens a support ticket to pay in crypto.
Sara types the address and amount into it by hand.
Ali copies the address and guesses the network.
He pays and uploads a screenshot as proof.
Sara compares the screenshot with the wallet by eye.
Tickets pile up, and Ali’s request slips down the queue.
Hours later, Ali still doesn’t know if it arrived.
A wrong network or amount, and the business pays for it.
Discovery
The brief came from the business. To see what it didn’t say, I spent time with the product managers of both products and with the ops team who checked payments every day.
Screenshots can be incomplete, or fake
Miss one ticket and the customer waits
Our mistakes cost money too
The ops team who checked payments every day · quotes are paraphrased summaries
The insight
Nebulox had to prove payments on its own, and help people avoid the mistakes no system can undo afterwards.
Invoice list: statuses change on their own from Pending to Partial, Paid or Expired.
Who it’s for
Has no website. Sends an invoice link to get paid.
“How do I ask for crypto without getting it wrong?”
Invoice form · Decision 01
Often paying a business in crypto for the first time. Never creates an account.
“Will my payment arrive safely?”
Payment screen · Decision 02
Connects its site to Nebulox and runs on what the panel reports.
“Can I trust Nebulox with my money?”
Gateway settings · Decision 03Built from conversations with the ops and product teams of both products.
Decision 01 · The freelancer
A freelancer without a website gets paid with an invoice link. One wrong choice sends their customer the wrong request, so the form had to be fast and hard to get wrong. I tested four versions with colleagues acting as freelancers, our team lead, engineers and PMs, against four questions:
What broke
What I changed
What broke
What I changed
5 of 5 testers preferred it to V1.
What broke
What I changed
What broke
Prototype: create an invoice in three steps, review it, and share the link
Evidence
I took the test results to the ops team who knew freelancers best. Most freelancers wanted to be paid in fiat and rarely needed to price in a coin.
What I changed
Decision 02 · The payer
Every customer lands on the same checkout, from a freelancer’s link or a business’s website. Many have never paid in crypto before, so I designed it around three rules:
Simple, familiar steps
One decision per screen: pick a coin, pick a network, send.
Hard to get wrong
The wrong network was the most common mistake, and it can’t be undone. So the network gets its own step, with a warning that names the only network that works.
A clear answer
Each invoice has its own address and amount, so Nebulox matches the payment itself. The customer no longer sends a screenshot as proof.
Checkout prototype: coin, network, send, then confirming and paid.
Decision 03 · The business
A business handing its income to a new provider wants to stay in control. The gateway gives it three options:
Notifications, so it knows when a payment arrives.
A webhook, so its own system knows too.
Automatic withdrawal, so its money doesn’t have to stay in Nebulox.
With so many settings, some were easy to miss. I ran a card sort with both products’ PMs and two ops staff, designed each person’s grouping, and we settled on three tabs: General, Technical and Notifications.
The result: three tabs, General, Technical and Notifications
01The problem
Which business does this withdrawal come out of? A company running several businesses shared one wallet across all its gateways.
02The research
I mapped 14 benchmarked gateways into three models, each with its limits and what it would change in our design.
Coinify · Confirmo · BitPay · CoinPayments · NOWPayments · Request
CryptoCloud · Plisio · Cryptomus
CoinGate · BlockBee · CoinRemitter · Radom · Calypso Pay
03My recommendation
One business, one wallet, and the team agreed. It was an MVP, time was short, and there was no reason to solve a complexity we didn’t yet know anyone needed.
04Shipping fast
Money was involved, so I agreed with the developers to remove the gateway list for now and leave the redesign for later.
Outcome
Both products moved over
The cross-border payment service and the crypto exchange now take crypto payments through Nebulox.
No more screenshot checks
Payments are matched to their invoice automatically. Nobody checks screenshots against wallets by hand anymore.
Ready for outside merchants
The product was feature-complete for external businesses, with a few trial users when I left.
Reflection
01Show the freelancer what their customer will see
After launch, the team’s feedback pointed to one change in the invoice form: a live preview of the exact checkout, beside the form, updating as the freelancer fills it in. It would replace the review step.
02Benchmark with a sharper question
I compared about 20 gateways on 35 features. Some of those rows never informed a decision, and starting from the decision would have made the benchmark faster.
03Talk to people outside the company earlier
Almost everything I learned came through the ops and product teams. A few sessions with outside freelancers and developers would have shown whether those patterns held beyond our own products.