Pay with UNICA
The customer pays ETH. The merchant receives USDC.
A one-time, order-based payment enforced by a Uniswap v4 hook.
The merchant sets the recipient, the minimum USDC amount and the deadline. The customer confirms one transaction. If the merchant cannot receive the required USDC, the entire payment reverts.
Testnet demo · Ethereum Sepolia
One order. One wallet confirmation. Full settlement or full revert. UNICA never holds the funds.
How it works
UNICA separates identity, payment enforcement, and proof.
ENSv2 — Who may act?
The merchant keeps ownership of its ENS name. An agent receives permission to update one authorized text record, and nothing else.
authorized order ↓
Uniswap v4 hook — How must the payment settle?
The customer pays 0.001 ETH. Uniswap v4 swaps it to USDC and sends the USDC to the merchant address stored in the order.
The hook checks the result inside the same transaction:
settlement receipt ↓
The Graph — What happened?
The Graph indexes the receipt so the merchant, the customer or an auditor can verify the settlement.
Scoped authority → Automatic settlement → Verifiable receipt
The hook automatically enforces the payment
The merchant creates a one-time order containing:
The customer supplies only the order ID and pays in ETH. The customer cannot change the recipient, the payout asset, the minimum amount or the deadline.
↓
↓
↓
The hook holds no funds, charges no fee, and requires no backend approval or price oracle.
What V3 accepts
This V3 deployment intentionally supports one settlement path: native ETH → configured USDC. The contracts reject:
- ✕token input instead of native ETH;
- ✕any payout asset other than the configured USDC; and
- ✕any pool that does not match the approved configuration.
Support for additional input and payout assets is specified but not implemented. The named errors behind each refusal are listed under technical proof.
Make a one-time payment
Reading the order from Ethereum Sepolia…
The agent is useful — but narrowly authorized
The agent can update one authorized ENS text record used by the merchant's ordering workflow. ENSv2 enforces that limit.
The agent can:
- ✓Update the authorized text record
The agent cannot:
- ✕Transfer the merchant's ENS name
- ✕Change the merchant's payment address
- ✕Grant itself more authority
- ✕Exercise root permission
The automated payment enforcement does not depend on trusting the agent. Once payment begins, the Uniswap v4 hook independently enforces the order.
Live ENSv2 permission check
These permissions are read live from the ENSv2 Permissioned Resolver on Sepolia when this page loads. The three zero values prove that authority exists only for the intended text key.
Live settlement receipt
Querying The Graph…
Technical detail: how the record is addressed
The entity id combines the settlement transaction hash with the log position the receipt was emitted at, so the indexed record is traceable to one exact on-chain event and to no other.
Pool prices change over time, so each settlement produces a different amount for the same 0.001 ETH. Every settlement this deployment has made is listed under technical proof.
Verified live on Sepolia
- ·reading the chain…
V3 is exercised on Ethereum Sepolia only. Deployed, verified and exercised are three different rungs and this page never merges them.
Show contracts, pool state, RPC checks and source verification
Reading chain state before enabling anything…
One hook address across four testnetsAvailability, not a cross-chain payment
V3 is deployed and source-verified at the same deterministic CREATE2 hook address on:
- ·Ethereum Sepolia
- ·Unichain Sepolia
- ·Base Sepolia
- ·Arbitrum Sepolia
The complete payment flow has been exercised on Ethereum Sepolia. The other three deployments are verified but have not processed a settlement.
This is availability on four chains — not a cross-chain payment. Each deployment settles locally, with no bridge or messaging protocol.
Earlier V1 proofThe generation before this one, kept for comparison
V1 established the original working settlement on Ethereum Sepolia — 0.001 ETH into 2.003660 USDC, receipt in transaction , block 11640026. V3 is the latest architecture and the primary demo; V1 is prior evidence, not the path this page pays through. The subgraph indexes both, which is how the two generations can be compared rather than merely both claimed.
Built on Uniswap v4 · ENSv2 on Sepolia · The Graph
- Uniswap v4the settlement mechanism — hook, PoolManager, Universal Router
- ENSv2 on Sepoliamerchant identity and the scoped agent permission
- The Graphthe receipt, indexed and queried back
Testnet only (Ethereum Sepolia). The amount is settled through Uniswap's official Universal Router into a pool whose hook admits only this path, and the hook emits a receipt naming the order. Source and proofs.