Inspiration

We are really concerned about personal data and the problem of access to it by third party companies. We were inspired to create a trusted internet, or more precisely, a protocol that would allow all participants to claim about themselves and receive some kind of services, but still stay anonymous. Unfortunately, there aren't many solutions available. Either they are highly centralized or not fast and convenient enough.

What it does

First of all, it is a protocol that going to provide Solana with an interoperable trust layer solution for decentralized identities and verifiable credentials that can be implemented in numerous use-cases:

  • for all projects in Solana ecosystem (DAO, DeFi, blockchain games, etc);
  • for services which are not in the crypto space (government, healthcare, financial services, etc). Check allows participants to issue self-sovereign, anonymous, verifiable credentials. It is compatible with W3 Verifiable Credentials Data Model (https://www.w3.org/TR/vc-data-model/) and based on e2e encryption.

How we built it

Based on the Verifiable Credentials Data Model, we developed a protocol that includes smart contracts (we also used Anchor) as a registry to maintain trust and an SDK that can be used from any environment. We also did a huge amount of work on the anonymity of participants and the security of their personal data. This can be seen in our tutorial. Solana and crypto capabilities fully cover all our tasks, as well as the planned features.

An example of what is stored on the smart contracts

#[account]
pub struct Attestation {
    pub issuer: Pubkey,
    pub claim_type: Pubkey,
    pub claim_type_hash: [u8; 32],
    pub claim_hash: [u8; 32],
    pub revoked: bool,
    pub bump: u8,
}

Our SDK: https://www.npmjs.com/package/@getcheck/api

Challenges we ran into

One of the main challenges was to get the protocol right so that the data would remain private but easy to verify for accuracy. And make it easy and fast to work in the Solana ecosystem

Accomplishments that we're proud of

First of all, we are very proud that we were able to complete the basic features that we wanted to do. The attestation request alone required a lot of work. We had no trouble making asymmetric encryption based on Solana Keypair. And we are very happy about it. Well, the fact that we succeeded in switching to Anchor is also pleasing.

What we learned

The first thing we learned was a lot about the Verifiable Credentials Data Model. And the further we dived into it and into Solana. the more we understood the importance of our protocol. And we were also glad that Solana was perfect for us. We've also been pumping up our cryptography skills quite a bit :)

What's next for Check

We want to finalize our SDK and services. We also want to make a fully decentralized message bus for communication between participants. Make user-friendly clients for participants. Both web and mobile versions. Integration with different issuer providers, KYC, etc.

Built With

+ 1 more
Share this project:

Updates