What we ultimately need is a digital ID system that can be used to participate in a global open standard for identity verification. With users in control over which information they share with websites. That digital ID system should be government run and operated. Speaking from within the US, what that means is each state needs their own application deployed that meets the standards necessary.
The token, at a bare minimum, should include a completely anonymized cryptographic identifier, and an issuing authority identifier. A trust chain should be established at the IANA level similar to how we do DNSSEC. This at the bare minimum establishes that the account in question *somehow* properly identified to a government agency somewhere. And traces back to the agency that identified that account. This isn't particularly a super duper strong barrier to fake accounts, but it does make it more costly. Those accounts/bot farms will now have to be intertwined with a government somewhere to get properly identified.
The next identifying marker in the above token should be something along the lines of "ofage", "adult", or something along those lines. Rather than specifically marking as "over 18", since many countries have different laws and rules around what they consider appropriate for different age groups. This marker won't actually include your actual age, but whether or not you meet the definition of being of age in that country. The issuing authority could behind the scenes just mark literally everybody as "ofage" if they don't care about it. The decision to determine what "of Age" means rests entirely on the issuing authority, and the only thing returned to the application/website is a boolean value.
So now you've got an asymmetrically signed token with an Issuing Authority; an Anonymous, cryptographically unique Identifier; and a boolean value on whether you meet their country's "of age" definition.
As a user, you should be able to choose which information you provide to applications. The bare minimum should be the Issuing Authority and the Cryptographically-Unique Identifier. But that's about it. Everything else, including whether you wish to share the "ofAge" attribute should be entirely on the end user. And if you want, give users the option to share identifying information if they so choose. Or just leave that out of the spec entirely.