Come ZKP2P trasforma un pagamento in fiat in un rilascio onchain di USDC.
ZKP2P è il protocollo che sta sotto USDCtoFiat. I venditori bloccano USDC in uno smart contract su Base, gli acquirenti pagano in fiat tramite una normale app di pagamento, e un'attestazione di pagamento firmata sblocca gli USDC dopo che il pagamento corrisponde all'ordine.
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
- 1Il venditore deposita USDC nativi su Base in EscrowV2 e dichiara i metodi di pagamento accettati, le valute e i dettagli del beneficiario.
- 2L'acquirente seleziona il deposito e segnala un intent tramite OrchestratorV2. Quell'intent riserva l'importo specifico mentre l'acquirente paga.
- 3L'acquirente paga il venditore direttamente nell'app fiat selezionata. USDCtoFiat non riceve né detiene mai il trasferimento in fiat.
- 4La prova del pagamento viene verificata rispetto all'intent: importo, valuta, destinatario, timestamp, metodo di pagamento e vincoli della rotta.
- 5Il 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.
Escrow non custodial più attestazione di pagamento offchain.
ZKP2P V3 sposta l'analisi del pagamento offchain e mantiene le regole finali di rilascio onchain, ed è per questo che la UX del venditore può supportare più metodi di pagamento senza un contratto verificatore su misura per ogni rotta.
L'esatto flusso dell'app di pagamento può variare a seconda del metodo. La configurazione del venditore per Wise e PayPal richiede una registrazione una tantum tramite estensione.
Keep exploring
Common questions
Cos'è USDCtoFiat?
USDCtoFiat ti permette di vendere USDC su Base per denaro su Venmo, Cash App, Chime, Revolut, Wise, Zelle, PayPal e Monzo. Mantieni il controllo del tuo wallet e gli scambi vengono regolati tramite smart contract ZKP2P non custodial su Base.
USDCtoFiat detiene i miei fondi?
No. Firmi ogni transazione dal tuo wallet. I tuoi USDC sono bloccati in un contratto pubblico su Base e vengono rilasciati all'acquirente solo dopo che il suo pagamento è comprovato. Puoi prelevare in qualsiasi momento qualsiasi deposito non riempito.
Quanto costa vendere?
Creare e gestire un deposito da venditore è gratuito, anche se le azioni onchain comportano il gas di Base. L'SDK offramp è gratuito da integrare. Sui fill delegati, la commissione di gestione dello 0.10% di Delegate è prelevata dagli USDC rilasciati all'acquirente, non dai tuoi proventi in fiat né dal tuo tasso quotato. Le analitiche Peerlytics, i webhook e i crediti API hanno un prezzo separato.
Mi serve un account su un exchange centralizzato?
Non è richiesto alcun account exchange per usare USDCtoFiat. Ti serve un wallet con USDC su Base e un account sull'app di pagamento in cui vuoi essere pagato. Restano valide le regole e i limiti dell'app di pagamento stessa.
Devo completare il KYC?
USDCtoFiat non raccoglie documenti d'identità, non detiene i tuoi fiat e non detiene le tue chiavi. L'app di pagamento che usi controlla comunque le proprie verifiche, i limiti e le regole dell'account. Il regolamento degli USDC avviene tramite smart contract su Base, e non possiamo modificare ciò che Venmo, PayPal, Wise, Zelle o la tua banca richiedono.
ZKP2P è la stessa cosa di USDCtoFiat?
No. ZKP2P è il protocollo e il sistema di contratti sottostante. USDCtoFiat è un prodotto orientato al venditore costruito su di esso per trasformare USDC su Base in fiat tramite le app di pagamento supportate.
Lo stesso pagamento in fiat può rilasciare USDC due volte?
No. Le attestazioni di pagamento includono un nullifier, un marcatore monouso controllato dal verificatore per impedire di rigiocare lo stesso pagamento contro più intent.
Cosa succede se l'acquirente avvia un intent ma non paga mai?
Quella parte del deposito del venditore resta temporaneamente legata all'intent aperto finché non scade o viene annullato. La liquidità non riempita resta prelevabile dal venditore.