Er bestaan meerdere theorieën over het ontstaan van het IJ. Mogelijk is het IJ begonnen als kreekje, als gevolg van een duindoorbraak bij Castricum. Meer waarschijnlijk is het IJ een restant van een noordelijke arm van de Rijndelta. Tot slot zou het IJ ook ontstaan kunnen zijn vanuit het aangrenzende Almere. Hoe dan ook, ten tijde van de Romeinen vormde het Oer-IJ de verbinding tussen het Almere en de Utrechtse Vecht enerzijds, en de Noordzee anderzijds. De verbinding met de Noordzee is later verdwenen, terwijl het IJ in de Middeleeuwen steeds breder werd.
Momenteel is het IJ op zijn breedst in Amsterdam, maar het kreekje (Dye) kabbelt hier (langs de cacheplek) nog rustig in de richting van Amsterdam.