<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Qrrier]]></title><description><![CDATA[Qrrier]]></description><link>https://qrrier.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 12:04:39 GMT</lastBuildDate><atom:link href="https://qrrier.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Designing an escrow state machine for peer-to-peer deliveries with USDC on Base]]></title><description><![CDATA[Posted, matched, funded, in transit, handoff, released or refunded: modeling a P2P delivery around USDC escrow, final settlement and an instant payout.]]></description><link>https://qrrier.hashnode.dev/designing-an-escrow-state-machine-for-peer-to-peer-deliveries-with-usdc-on-base</link><guid isPermaLink="true">https://qrrier.hashnode.dev/designing-an-escrow-state-machine-for-peer-to-peer-deliveries-with-usdc-on-base</guid><category><![CDATA[Web3]]></category><category><![CDATA[Blockchain]]></category><category><![CDATA[Stablecoins ]]></category><category><![CDATA[System Design]]></category><category><![CDATA[escrow]]></category><dc:creator><![CDATA[Qrrier]]></dc:creator><pubDate>Fri, 30 Oct 2026 16:42:03 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae3c17599a9815e37441750/9e251cde-7837-4600-9064-336e8f8337fd.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><img src="https://qrrier.surge.sh/header.png" alt="Qrrier logo with the tagline Ship Fast. Fly Smart." /></p>
<p>A peer-to-peer delivery looks simple from the outside: someone abroad wants a thing, someone with a plane ticket brings it, money changes hands. Once you try to model it, it becomes a small distributed-systems problem. Two parties who have never met, a purchase made with the carrier's own money, days of travel, and a single moment in an arrivals hall where everything has to settle.</p>
<p>This post is a design walkthrough of that problem as a state machine. It is conceptual on purpose: there is no contract code here and no addresses. The one product fact we rely on is how <strong>Qrrier</strong> describes its own flow: <strong>USDC escrow on Base, released at the handoff with a one-time code</strong>. Everything else is the reasoning a builder would go through to arrive at something like it.</p>
<h2>The payout problem that shapes everything</h2>
<p>Start from the carrier's side, because that is where the design pressure comes from. On Grabr, a well-known marketplace in this space, the help center says travelers should expect payment <strong>3 to 15 business days</strong> after a delivery is confirmed (checked October 30, 2026). Qrrier pays out <strong>at the moment of handoff</strong>.</p>
<p>A long payout window is not a bug in those systems. It is the price of building on card rails, where money can be pulled back weeks later. If you want the carrier paid the instant the item changes hands, you need settlement that is final at that instant. That requirement drives most of the decisions below.</p>
<h2>The states</h2>
<p>Here are the eight states and what each one means:</p>
<table>
<thead>
<tr>
<th>State</th>
<th>Meaning</th>
<th>Who moves it forward</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Posted</strong></td>
<td>A shopper describes the item, destination and deadline. No money involved.</td>
<td>Shopper</td>
</tr>
<tr>
<td><strong>Matched</strong></td>
<td>A traveler on a suitable route accepts the request.</td>
<td>Traveler</td>
</tr>
<tr>
<td><strong>Funded</strong></td>
<td>The shopper locks item price, reward and fee in USDC escrow.</td>
<td>Shopper</td>
</tr>
<tr>
<td><strong>In transit</strong></td>
<td>The traveler has bought the item and is travelling.</td>
<td>Traveler</td>
</tr>
<tr>
<td><strong>Handoff code</strong></td>
<td>Both are meeting; the shopper inspects and holds the one-time code.</td>
<td>Shopper</td>
</tr>
<tr>
<td><strong>Released</strong></td>
<td>The code is entered and escrow pays the traveler. Terminal.</td>
<td>Code entry</td>
</tr>
<tr>
<td><strong>Disputed</strong></td>
<td>Something went wrong after funding; a human reviews it.</td>
<td>Either party</td>
</tr>
<tr>
<td><strong>Refunded</strong></td>
<td>Escrow returns funds to the shopper. Terminal.</td>
<td>Dispute outcome or a cancel before purchase</td>
</tr>
</tbody></table>
<p>And the transitions, drawn as plain text:</p>
<pre><code>Posted -&gt; Matched -&gt; Funded -&gt; In transit -&gt; Handoff code -&gt; Released
             |          |            |              |
             v          v            v              v
         (cancel)   Refunded &lt;- Disputed &lt;----------+
</code></pre>
<h3>A few design rules that fall out of this</h3>
<p><strong>Money only exists from Funded onward.</strong> Posted and Matched are pure coordination. They can live entirely in the application layer, be edited freely and be cancelled without any on-chain action. Keeping them off-chain avoids paying network fees for listings that never turn into deliveries.</p>
<p><strong>Funding must happen before the purchase.</strong> If the traveler buys first and the shopper funds later, the traveler is extending credit to a stranger. Putting Funded before In transit means the traveler can verify the order is backed before spending anything.</p>
<p><strong>There are exactly two terminal states for money.</strong> Every funded order ends in Released or Refunded. No "partially settled" limbo, no balance stuck in a platform wallet. That invariant is easy to state and easy to audit.</p>
<p><strong>Disputes must be raised before release.</strong> Once the code is entered, the payout is final. That means the window for complaints is the handoff itself: the shopper inspects the item first and withholds the code if something is wrong. The Disputed state is reachable from Funded, In transit and Handoff code, but not from Released.</p>
<h2>The one-time code as a consent signal</h2>
<p>The handoff code is the most interesting piece. It is not authentication in the usual sense. It is the shopper's consent, expressed in a form that works offline, in a noisy airport, without scanning anything.</p>
<p>Things worth thinking about when you design one:</p>
<ul>
<li><strong>Single use.</strong> A code that works twice is a bug. Once it releases funds, it is spent.</li>
<li><strong>Held by the right person.</strong> Only the shopper (or the recipient they nominate) should see it. The traveler should never be able to retrieve it.</li>
<li><strong>Brute-force limits.</strong> A short numeric code is fine for humans, but entry attempts must be rate-limited and locked after a few failures.</li>
<li><strong>Coercion and social engineering.</strong> The product has to say clearly and often: never share the code before you have the item in your hands.</li>
</ul>
<h2>Why stablecoins rather than card holds</h2>
<p>The obvious alternative is a card authorization hold: authorize the shopper's card when the order is matched and capture when the item arrives. It breaks down for this use case in three places.</p>
<ol>
<li><strong>Holds expire.</strong> For most merchant categories a card authorization lapses within about a week, and longer holds are limited to specific categories. International trips with shopping time often run longer than that.</li>
<li><strong>Capture is not final.</strong> Even after capture, cardholders can usually dispute a charge for months, commonly up to 120 days. A platform that pays the traveler instantly would be carrying that risk itself, which is exactly why card-based marketplaces hold payouts.</li>
<li><strong>Cross-border friction.</strong> The shopper and the traveler are in different countries by definition. Card payouts to individuals abroad mean FX spreads, bank cut-off times and different rails per country.</li>
</ol>
<p>USDC on Base addresses each of those:</p>
<ul>
<li><strong>The lock lasts as long as the order needs.</strong> Escrowed funds do not expire after a week.</li>
<li><strong>Settlement is final.</strong> Once released, there is no chargeback path. That is what allows an instant payout without the platform underwriting weeks of risk.</li>
<li><strong>One currency for both sides.</strong> A dollar-pegged token means the reward is the same number to the traveler in Texas and the shopper in Porto Alegre, and Base keeps transaction fees low enough that a modest reward is not eaten by gas.</li>
</ul>
<p>It is fair to name the costs too. Shoppers need a way to acquire USDC, travelers need a way to cash it out, and both depend on the stablecoin issuer and the network. Stablecoin rules also differ by country. These are real tradeoffs, not footnotes.</p>
<h2>The payout timing tradeoff</h2>
<p>Instant release moves risk around rather than removing it.</p>
<ul>
<li><strong>With a holding period</strong> (days after delivery), the shopper can complain after the fact, and the platform has time to claw back. The traveler pays for that safety with waiting time and uncertainty.</li>
<li><strong>With release at handoff</strong>, the traveler is made whole immediately, but the shopper's protection has to be front-loaded: inspection before the code, the right to refuse, and a dispute path that only applies before release.</li>
</ul>
<p>For hand-carried goods, front-loading is a reasonable choice. The shopper is physically holding the item when they decide. Defects that only show up weeks later are a warranty matter with the manufacturer, not a delivery dispute.</p>
<h2>A worked example (prices checked October 30, 2026)</h2>
<p>A developer in Porto Alegre wants a <strong>Magic Keyboard with Touch ID and Numeric Keypad (USB-C), US English, white keys</strong>. A traveler flying home to Brazil from Texas accepts the order.</p>
<ul>
<li><strong>US price:</strong> Apple's US online store lists it at <strong>US$179.00</strong> before sales tax.</li>
<li><strong>Brazil price:</strong> Apple's Brazilian online store lists the same US English model at <strong>R$1,899.00</strong>.</li>
<li><strong>Rate:</strong> European Central Bank reference rate for October 30, 2026, <strong>R$5.4325 per US dollar</strong>.</li>
</ul>
<table>
<thead>
<tr>
<th>Line</th>
<th>US$</th>
</tr>
</thead>
<tbody><tr>
<td>Keyboard, US list price</td>
<td>179.00</td>
</tr>
<tr>
<td>Traveler reward (20%)</td>
<td>35.80</td>
</tr>
<tr>
<td>Qrrier fee (5% of item plus reward)</td>
<td>10.74</td>
</tr>
<tr>
<td><strong>Locked in escrow at Funded</strong></td>
<td><strong>225.54</strong></td>
</tr>
</tbody></table>
<p>US$225.54 is about <strong>R$1,225</strong>, compared with R$1,899 locally, a saving of roughly <strong>35%</strong>. If the traveler pays a sales tax of around 8% in the store, the saving is still about <strong>30%</strong>. At Released, the traveler receives US$214.80 (the item price plus the reward) in USDC. Brazil's duty-free allowance for air travelers (US$1,000 at the time of writing) covers everything in the traveler's bag combined, so check Receita Federal's current rules before flying.</p>
<h2>What a builder should take away</h2>
<ul>
<li>Keep coordination states off-chain and money states minimal: funded, released, refunded.</li>
<li>Fund before purchase so nobody extends credit to a stranger.</li>
<li>Make release final and put all buyer protection before it.</li>
<li>Treat the handoff code as consent: single use, rate-limited, never visible to the carrier.</li>
<li>Choose the settlement asset for finality and cross-border reach first, and be honest about the on-ramp and off-ramp costs.</li>
</ul>
<p>This article describes design reasoning and one product's published flow. It is not financial advice, and prices and rates will have changed since they were checked.</p>
<h2>Try the flow</h2>
<p><img src="https://qrrier.surge.sh/qrrier-icon.png" alt="Qrrier app icon" /></p>
<ul>
<li><a href="https://qrrier.com">qrrier.com</a></li>
<li><a href="https://apps.apple.com/us/app/qrrier/id6784532776">Qrrier on the App Store</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.qrrier.app">Qrrier on Google Play</a></li>
</ul>
<p>Qrrier Team, <a href="mailto:business@qrrier.com">business@qrrier.com</a></p>
]]></content:encoded></item><item><title><![CDATA[Would You Hand a Stranger $1,299 for a MacBook? Designing Trust Into Traveler Delivery]]></title><description><![CDATA[Escrow before purchase, a 4-digit handshake, and payouts that clear in the same moment as delivery: the trust model behind Qrrier.]]></description><link>https://qrrier.hashnode.dev/would-you-hand-a-stranger-1-299-for-a-macbook-designing-trust-into-traveler-delivery</link><guid isPermaLink="true">https://qrrier.hashnode.dev/would-you-hand-a-stranger-1-299-for-a-macbook-designing-trust-into-traveler-delivery</guid><category><![CDATA[trust-and-safety]]></category><category><![CDATA[escrow]]></category><category><![CDATA[Web3]]></category><category><![CDATA[Product Design]]></category><category><![CDATA[fintech]]></category><dc:creator><![CDATA[Qrrier]]></dc:creator><pubDate>Thu, 29 Oct 2026 23:32:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ae3c17599a9815e37441750/0435ca10-a002-4036-93de-6db4f65e4439.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Picture both sides of one order.</p>
<p>A developer in Curitiba wants a <strong>MacBook Air 13" (M5, 16 GB / 512 GB)</strong>. In Brazil it costs <strong>R$15,999</strong>. A traveler flying Miami to São Paulo next week could buy it in the US for <strong>$1,299</strong>.</p>
<p>The developer worries: <em>"If I pay first, will this person disappear?"</em> The traveler worries: <em>"If I buy first, will I ever see my $1,299 again?"</em></p>
<p>Peer-to-peer delivery only works if both questions get a confident "yes." This post breaks down how <a href="https://qrrier.com">Qrrier</a> answers them, layer by layer.</p>
<h2>Layer 1: money moves first, but nobody holds it</h2>
<p>The shopper funds the order <strong>before</strong> the traveler spends anything. The funds sit in a non-custodial escrow, a smart contract holding USDC on Base. The shopper can pay by card (converted to USDC via an on-ramp) or in USDC directly.</p>
<p>Two things follow from that:</p>
<ul>
<li><strong>The traveler isn't extending credit.</strong> They can see the order is funded before they walk into a store.</li>
<li><strong>The platform isn't a bank.</strong> Qrrier never holds carrier funds, and there's no internal Qrrier wallet that money sits in or gets withdrawn from.</li>
</ul>
<h2>Layer 2: a 4-digit delivery code as the handshake</h2>
<p>At hand-off, the recipient inspects the MacBook (sealed box, right model, right spec) and then shares a 4-digit code. That code is the only thing that tells the escrow "delivered."</p>
<p>It's a deliberately low-tech handshake. It works at an airport arrivals hall, a café or a front door, and no one has to scan a QR code in poor signal or upload photos.</p>
<h2>Layer 3: an instant payout is a trust feature</h2>
<p>This is the part that gets overlooked. Trust isn't only "will the stranger pay me?" It's also "<strong>when</strong>?"</p>
<p>On many platforms, the traveler finishes the delivery and then waits in a "processing" state. Grabr's own help center, for example, puts the payout window at 3 to 15 business days once the buyer signs off, plus bank time. For a $1,299 laptop, that can mean up to two or three weeks of the traveler's money in limbo.</p>
<p>On Qrrier, <strong>the code entry <em>is</em> the payout.</strong> The moment the recipient enters the code, the smart contract sends USDC to the traveler's connected wallet. No queue, no request form and no minimum balance. The traveler in our example walks out of the café with their <strong>$1,299 back plus a $259.80 reward</strong>.</p>
<p>Removing the waiting removes a whole category of anxiety, and support tickets.</p>
<h2>Layer 4: identity and reputation</h2>
<ul>
<li><strong>Email verification</strong> is standard for every account.</li>
<li><strong>Government ID verification</strong> is optional, and those who complete it carry a stronger signal.</li>
<li><strong>Two-way ratings</strong> mean shoppers rate travelers and travelers rate shoppers.</li>
</ul>
<h2>Layer 5: the right to say no</h2>
<p>Travelers can inspect anything they're asked to carry and refuse it at hand-off. Guns and ammunition, hazardous materials, anything illegal, alcohol, tobacco and prescription-only medicine are excluded, and both countries' customs rules always apply. Nobody should ever carry a sealed box they haven't seen inside.</p>
<h2>Layer 6: when things go wrong</h2>
<p>If the laptop turns out to be sold out or the wrong spec, or the meet-up falls through, an admin steps in and the shopper gets the escrow back. See <a href="https://qrrier.com/trust">trust &amp; safety</a> for the details.</p>
<h2>So, is the MacBook worth it?</h2>
<p>Here's the order, with Brazil's customs handled properly. Brazil gives air travelers a <strong>US$1,000</strong> allowance and charges <strong>50%</strong> on the excess.</p>
<table>
<thead>
<tr>
<th>MacBook Air 13" M5, 16 GB / 512 GB</th>
<th>Amount</th>
</tr>
</thead>
<tbody><tr>
<td>US price (e.g., bought in Oregon, no sales tax)</td>
<td>$1,299.00</td>
</tr>
<tr>
<td>Traveler reward (20%)</td>
<td>$259.80</td>
</tr>
<tr>
<td>Qrrier fee (5%)</td>
<td>$77.94</td>
</tr>
<tr>
<td><strong>Shopper pays Qrrier</strong></td>
<td><strong>$1,636.74</strong></td>
</tr>
<tr>
<td>Brazilian duty on the $299 above the allowance (50%)</td>
<td>~$149.50</td>
</tr>
<tr>
<td><strong>All-in cost</strong></td>
<td><strong>~$1,786</strong></td>
</tr>
<tr>
<td>Same laptop in Brazil (R$15,999)</td>
<td>~$2,971</td>
</tr>
<tr>
<td><strong>Shopper saves</strong></td>
<td><strong>~$1,185 (about 40%)</strong></td>
</tr>
</tbody></table>
<p>That's the kind of number that makes a stranger worth trusting, <em>if</em> the system is built so you don't have to rely on trust alone.</p>
<h2>Not just laptops</h2>
<p>The same model protects the things that matter most and are hardest to ship:</p>
<ul>
<li><strong>Jewelry</strong>: a gold set for a wedding moving from Dubai to Dhaka, or an engagement ring from London to Auckland. Hand-carried, never in a warehouse.</li>
<li><strong>Documents</strong>: original degree certificates from Lagos to Toronto, or a notarised contract from Mexico City to Madrid.</li>
<li><strong>Homemade food</strong>: sealed tamales from Guadalajara to Chicago or dried fish and spices from Dakar to Paris, packed to customs rules. Couriers often refuse these. Travelers can carry them.</li>
</ul>
<p>Package deliveries work like shopping orders. The sender pays the agreed base plus 15%, the traveler gets 95% of the base, and the same code-triggered instant payout applies. Many routes deliver <strong>next day</strong>, because the traveler is the shipping method.</p>
<h2>The short version</h2>
<table>
<thead>
<tr>
<th>Fear</th>
<th>Answer</th>
</tr>
</thead>
<tbody><tr>
<td>Shopper: "Will they run off with my money?"</td>
<td>Funds sit in escrow. They're released only by the delivery code, and refunded if delivery fails.</td>
</tr>
<tr>
<td>Traveler: "Will I get paid?"</td>
<td>The order is funded before you buy, and payout is instant at code entry.</td>
</tr>
<tr>
<td>Both: "Who is this person?"</td>
<td>Email verification, optional ID verification and two-way ratings.</td>
</tr>
<tr>
<td>Traveler: "What am I carrying?"</td>
<td>Inspect everything, refuse anything.</td>
</tr>
</tbody></table>
<p>If you travel between continents a few times a year, whether that's Europe and Africa, the Americas and Asia, or Oceania and the Gulf, there's probably a MacBook-sized gap in your bag that someone would pay to fill.</p>
<p>Start at <a href="https://qrrier.com/how-it-works">how it works</a>, or see what travelers typically earn on the <a href="https://qrrier.com/for-carriers">carriers page</a>.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ae3c17599a9815e37441750/d5c8d857-ed93-456f-80e1-e2a1c406737e.png" alt="Get the Qrrier app: Download on the App Store / Get it on Google Play" style="display:block;margin:0 auto" />

<p><a href="https://apps.apple.com/us/app/qrrier/id6784532776">App Store</a> · <a href="https://play.google.com/store/apps/details?id=com.qrrier.app">Google Play</a></p>
<p><em>Prices are approximate and change often. Always check current customs and airline rules for your route.</em></p>
]]></content:encoded></item></channel></rss>