Does it also work with existing users that already have an account?
It could extend expiration by three months. But we would need to figure out how to handle, because this is imagined to create a signup link.
Will users be able to see which links/codes were used and revoke existing codes?
I guess listing codes/revoking would be needed too. So the interface would need to be bit more complex than what is imagined here. Probably 'Create Gift Code' link and a list of gift codes with their status (unused/used) with the ability to revoke.