La versione breve
Un venditore crea un deposito bloccando USDC in EscrowV2 su Base e indicando il metodo di pagamento in fiat, la valuta, l'identificativo di pagamento e il tasso. Un acquirente sceglie quella liquidità, avvia un intent onchain, paga il venditore nell'app di pagamento selezionata e invia la prova del pagamento.
Il protocollo non chiede a nessuna delle due parti di fidarsi di uno screenshot di una chat. La prova del pagamento viene verificata offchain dal servizio di attestazione, e la PaymentAttestation EIP-712 risultante viene verificata onchain prima che il contratto rilasci gli USDC.
Il ciclo di vita del fill
- 01Il venditore deposita USDC nativi su Base in EscrowV2 e dichiara i metodi di pagamento accettati, le valute e i dettagli del beneficiario.
- 02L'acquirente seleziona il deposito e segnala un intent tramite OrchestratorV2. Quell'intent riserva l'importo specifico mentre l'acquirente paga.
- 03L'acquirente paga il venditore direttamente nell'app fiat selezionata. USDCtoFiat non riceve né detiene mai il trasferimento in fiat.
- 04La prova del pagamento viene verificata rispetto all'intent: importo, valuta, destinatario, timestamp, metodo di pagamento e vincoli della rotta.
- 05Il servizio di attestazione firma una PaymentAttestation. Il verificatore onchain controlla la firma, i valori dello snapshot e il nullifier, poi OrchestratorV2 rilascia gli USDC.
Perché il contratto può rilasciare in sicurezza
| Primitiva | Cosa fa | Perché è importante |
|---|---|---|
| EscrowV2 | Detiene gli USDC del venditore su Base | Né USDCtoFiat né l'acquirente possono spostarli senza le regole del contratto |
| Hash dell'intent | Identifica un singolo ordine dell'acquirente | Lega la prova del pagamento in fiat al fill esatto |
| PaymentAttestation | Risultato di verifica firmato EIP-712 | Permette a un solo contratto verificatore di gestire più metodi di pagamento |
| Nullifier | Marcatore monouso per un pagamento | Impedisce che lo stesso pagamento venga rivendicato due volte |
| Hash dei dettagli del beneficiario | Hash dell'identificativo di pagamento del venditore | Lega il pagamento al venditore senza pubblicare l'identificativo onchain |
Cosa non è onchain
Il tuo username Venmo, Revtag, Wisetag, identificativo PayPal.me, email Zelle, sessione dell'account e dati di pagamento dettagliati non vengono pubblicati su Base. La chain vede lo stato del contratto, gli hash, le firme, gli importi e gli eventi di rilascio, non l'intera cronologia privata dell'account di pagamento.
Il tuo identificativo di pagamento resta comunque visibile alla controparte che deve pagarti. Questo è inevitabile in qualsiasi flusso di regolamento via app di pagamento: l'acquirente non può inviare fiat senza una destinazione.