Earlier quoted context omitted.
What you are trying to do doesn't look like an overlay, but an override[1]. you can do something like this: let new_electrum = pkgs.electrum.overrideAttrs (oldAttrs: rec { name = "${oldAttrs.pname}-${version}"; version = "4.0.0a"; src = fetchurl { url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; sha256=pkgs.lib.fakeSha256; }; }) in Unfortunately there is no https://download.electrum.org/4.…
You can use GitHub's automatic generation of archives even for specific git commits. There is no version 4.0.0a of Electrum, it has not been released, it is misleading to refer to it.
https://news.ycombinator.com/item?id=22883382
He also needed to change some dependencies so it's more complex than what I wrote.