Diapago adds Pay later to US-dollar supplier bills inside the POS a shop already uses. A per-bill escrow on Arbitrum pays the supplier on the due date, and the shop repays without holding ETH. Testnet prototype.
Many small shops in emerging markets sell in local currency but owe their suppliers in US dollars. Most imports are billed in dollars: Peru 91.6%, Indonesia 87.5%, Brazil 83.4% (World Bank, BCRP, BCB). When a shop is short of dollars on the due date, the supplier waits.
Our design partner is a shop owner in Peru. She has trouble strategizing her dollars and is more than likely to get “rugged” by the exchange rate due to wrong timing of dollar exchange. When her dollars ran short, one of us fronted the dollars from his own money, informally and at no fee. That is one shop, and nobody independent checked it. Diapago automates that job.
Diapago is a widget inside the POS or ERP a merchant already uses (shown today in mock POS systems).
On a dollar supplier bill, she taps Pay later, sees the amount and the pay-back date, and confirms.
Once approved, a per-bill escrow (DueEscrow) holds a funder's stablecoin and pays it once to the supplier's fixed payout address, on or after the due date.
She repays in US dollars on agreed terms, and can settle early whenever she buys dollars at a rate she likes.
Each repayment carries the bill's invoice reference, so our indexer can match it to the right bill. The contract does not enforce repayment.
Price: 2% per 30 days per bill (proposed, not charged yet).
The customer never needs ETH. They sign a repayment message and a token permit; our relayer sends the transaction and pays the gas. The 23 Oct repayment cost about 0.0000026 ETH in gas. A script also reads Arbitrum's own fee data (the ArbGasInfo and ArbSys precompiles) to estimate costs.
The full escrow cycle ran on Arbitrum Sepolia on 23 Oct:
One bill funded with 10,000 test dollars, then released to the supplier at the due time
A relayed repayment of 4,000 while the merchant held 0 ETH
An early release call, before the due time, reverted (local call, not mined)
We also wrote the settlement math in Rust for Stylus (10 tests pass); it matches our TypeScript version on a shared test table. On 8 Oct the activation check returned an impossible fee, which we read as Stylus activations being paused, so it is not deployed.
Solidity contracts: DueEscrow (one escrow per bill; pays the supplier's fixed payout address once, only on or after the due date) and MemoPay (tags each repayment with the bill's invoice reference, and supports gasless repayment through a signed message and token permit)
A demo with the widget inside four mock POS systems, plus a mini SDK showing the three steps to plug it in
Each demo store has its own account, and the demo reads its balances live from Robinhood Chain testnet
Limits (what is not real yet):
Testnet only. Everything runs on Arbitrum Sepolia; nothing is deployed on Arbitrum One.
Test token. The run used our own test dollar, not Paxos USDG, even though the contracts are built for Paxos USDG.
One key for every role. A single operator key held every role in the test run, so roles are not separated yet.
Simulated approval. In the demo, approving a Pay later request is simulated; there is no real approval step behind it yet.
Partial repayment. The on-chain test repaid 4,000 of a 10,000 bill; a full pay-back has not been shown on chain yet.
No real money. No supplier has received real money through Diapago.
One design partner, one more shop owner interviewed, no paying merchants yet. Next:
Find five merchants who name a fee they would pay.
Fund a first capped set of 4 to 10 bills ourselves to build a repayment record.
Bring in outside funders only after legal review and repaid bills from unrelated merchants.
We are looking for more design-partner merchants, and for credit partners or underwriters. Reach us at diapago.com.