Skip to main content
Research Preview — APIs may change. GitHub

Delivery verification

You’re building a delivery platform. Buyers lock payment in escrow. When the courier arrives at the delivery address, the escrow releases automatically. No manual confirmation, no disputes about whether the courier actually showed up.
About location verification: This guide uses GPS coordinates as input. GPS is spoofable. Astral is developing location proof plugins for stronger verification — these are still in development.

How it works

  1. Buyer creates a delivery order and locks payment in an escrow contract
  2. The delivery address is registered as a location record onchain
  3. When the courier arrives, their app checks proximity using compute.within
  4. Astral returns a signed result confirming the courier is within range
  5. The signed result is submitted onchain, triggering the escrow to release funds

The escrow contract

The resolver contract holds funds and releases them when it receives a valid signed result proving the courier arrived.

Buyer flow

The buyer creates a delivery order by registering the destination onchain and locking payment.

Courier flow

When the courier arrives, their app checks proximity and submits the signed result to release payment.

Mobile integration

Extensions

Multi-signature confirmation

Require both courier arrival and buyer confirmation:

Dispute resolution

Add an arbiter role for disputes:

Next: Parametric insurance

Policies that trigger based on verified proximity