Verso la metà del XVIII secolo presso Banat, paese al centro dell’Ungheria, nel Temesvar. Un villaggio desolato dominato da un castello, mentre i barcaioli cantano. Ottokar, figlio di Mirabella, governante di Arsena, cerca un tesoro che presume star lì vicino nascosto. Lo fa tutti i giorni. Czipra, vecchia zingara, lo guarda e pensa a quanto tempo spreca. Arrivano in battello Barinkay e Carnero, che sono lì come amministratori. Si parlotta un po’ del più e del meno. Czipra pronostica a Barinkay, che ha appena raccontato la storia della sua vita, che sposerà una donna che gli sarà fedele e che in sogno gli rivelerà dov’è il tesoro. Gli parla della bella Arsena. Anche a Carnero è predetto che troverà un tesoro perduto. Zsupan, nel frattempo arrivato, aiuta Barinkay nelle sue faccende. Intanto si presenta Mirabella e si scopre che è la donna perduta da Carnero (come predettogli), la quale gli svela pure che Ottokar è suo figlio. Arriva Arsena, che ama Ottokar. Barinkay le si dichiara, ma ella, che è nobile, solo un nobile potrà sposare. Intanto, preso dal canto di Saffi, Barinkay se ne innamora. Ci si indigna di tanta leggerezza.
Barinkay ha preso posto nel castello. Saffi ha sognato il luogo del tesoro, che infatti viene prontamente trovato. Seguono scene di vita zigana. Czipra rivela che Saffi è figlia del pascià di Ungheria, una principessa. Ritenendosene indegno, Barinkay se ne va.
A Vienna si festeggia una vittoria militare. Eroe della battaglia, Barinkay è diventato nobile: ora può sposare Saffi.