Verify person is members of the 8yearsgang on Internet Indentity

I have a technical question - where I need technical help.

We are building a Crowdfunding marketplace, where users log in with “Internet Identity” wallet.

  1. When a User has logged in via Internet Identity. (https://nns.ic0.app).

  2. Our platform would like to be verified - with the user’s permission - IF they are a member of the “8-year gang”. (YES/NO).
    The same question is explained in another way: To verify yes/no, when a user logs in via Internet Identity - if the user is staking ICP for 8 years and with Dissolve Delay.

  3. Additional information. I did notice that when I log in with Internet Identity and when I am staking, I have Stalking Neuron ID: - with the ICP Staking. Maybe we can check if the “Internet Identity” has a "staking Neuron ID?

Please let us know how we can technically verify if a user is part of the 8-year gang.

3 Likes

Hello there,

FYI - The Internet Identity principal is unique to each domain. Therefore, an II principal connected to your site will be different from the II principal using the same passkey connected to the NNS dapp. It already would be challenging to verify the owner of an II principal that was generated on the NNS dapp.

Also, only controllers/owners of a neuron can see the list of the neurons that they created. Therefore, there is not a way for you given any principal see the list of neurons that they own.

You can know if a neuron is part of the “8 year gang” or has a dissolve delay of 8 years by calling and passing in the neuron ID in the get_neuron_info function in the Governance Canister.

2 Likes

Hi Jennifer,

I am not sure I understand your answer.

  1. Is it possible to verify if a user is part of the “8 years gang”? (Yes /No)

Are you saying the answer is yes by calling and passing the neuron ID in the get_neuron_info function in the[Governance Canister?

I received this feedback from Dfinity Support back in April 12’th 2024 - from a nice guy called Adam:

That is not yet possible. But it will be possible when we complete the verifiable credential work, and the governance canister supports a verifiable credential for that information. As this feature has been requested repeatedly, I expect that it will be implemented but I don’t know whether there is a timeline for it.

This check requires Verifiable Credentials. The development of the MVP of the feature is finished, it doesn’t cover yet this scenario. But we are working on extending the feature and this is one of the improvements we plan to support.

DFINITY Support Team

No, it is not possible to know if a user is part of the 8-year gang is impossible.

You can know if a neuron has a dissolve delay or is being staked for 8 years.

Who is the team member who reached out to you? I am unaware of related work with the Verifiable Credentials feature.

HI Jennifer,

As a web3 digital agency, specialising in ICP. The 8yearsgang feature is really important, so we can build in rewards to people in the 8yearsgang. This feature has been requested a lot.

I don’t see why there could not be a meta-data connected to a principle ID. Just saying “8yearsgang” Yes/No.

Here are the info on the support member:

I reached out to Angelo Adam (DFINITY) - Apr 12, 2024, 11:57 EDT.

Adams response on Support:
That is not yet possible. But it will be possible when we complete the verifiable credential work, and the governance canister supports a verifiable credential for that information. As this feature has been requested repeatedly, I expect that it will be implemented but I don’t know whether there is a timeline for it.

This check requires Verifiable Credentials. The development of the MVP of the feature is finished, it doesn’t cover yet this scenario. But we are working on extending the feature and this is one of the improvements we plan to support.

Verifiable Credentials are unrelated and will not cover this scenario. Apologies for any confusion!

@Lazyeight @jennifertran It’s possible in three ways but I don’t believe the teams responsible for implementation would prioritize any: verifiable credentials, ICRC signer standard conformance, or letting any wallet connect to the NNS.

Verifiable credentials
The NNS dapp is capable of issuing verifiable credentials and attesting to any information it knowns about any of its users. It would require writing some code in the NNS dapp to generate and sign credentials like “I attest that this principal is staking at least one non-dissolving neuron for 8 years”.

ICRC signer standard conformance
Internet Identity is capable of making calls to any canister from any principal it controls. If a dapp knew an Internet Identity user’s NNS principal (i.e. if you had an input field for users to paste it into) and if Internet Identity supported icrc49_call_canister, Internet Identity would call the NNS methods to get_neurons and you could check for yourself if it’s staked non-dissolving for 8 years.

Letting any wallet connect to the NNS
If the NNS supported something like IdentityKit, users could start building ecosystem-wide reputation under one identifier from an ICRC standard-conformed wallet like NFID Wallet (or soon Stoic/Plug). That way if a user connects to you with the same principal they connected to the NNS, you could simply request their permission to see details for their neurons.

3 Likes