verifyVC
How to call the API from an app
Identify Snap connects to your currently connected Metamask account by default. To learn how apps can connect to Identify Snap using a non-metamask(external) account, refer to this documentation.
Then, depending on whether you're trying to connect to a metamask account or a non-metamask account, you can call the snap API in the following way:
const snapId = `npm:@hashgraph/hedera-identify-snap`
const externalAccountParams = {
externalAccount: {
accountIdOrEvmAddress: '0.0.12345',
curve: 'ED25519'
}
}
const verifiableCredential = {
credentialSubject: {
profile: {
name: 'KP'
},
id: 'did:pkh:eip155:1:0x2e5ff0267b678a0faf9a9f5b0fbf7ac9638b5b57'
},
issuer: {
id: 'did:pkh:eip155:1:0x2e5ff0267b678a0faf9a9f5b0fbf7ac9638b5b57'
},
type: ['VerifiableCredential', 'ProfileNamesCredential'],
'@context': ['https://www.w3.org/2018/credentials/v1'],
issuanceDate: '2023-04-05T14:34:47.000Z',
expirationDate: '2024-04-05T14:34:47.000Z',
proof: {
type: 'JwtProof2020',
jwt: 'eyJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MTIzMjc2ODcsInZjIjp7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJQcm9maWxlTmFtZXNDcmVkZW50aWFsIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7InByb2ZpbGUiOnsibmFtZSI6IktQIn19fSwic3ViIjoiZGlkOnBraDplaXAxNTU6MToweDJlNWZmMDI2N2I2NzhhMGZhZjlhOWY1YjBmYmY3YWM5NjM4YjViNTciLCJuYmYiOjE2ODA3MDUyODcsImlzcyI6ImRpZDpwa2g6ZWlwMTU1OjE6MHgyZTVmZjAyNjdiNjc4YTBmYWY5YTlmNWIwZmJmN2FjOTYzOGI1YjU3In0.CR1A_XpG001_PCaAt3VN9G5Lt75gTm2M5YSt6trqhkEoW0wce9rU7SrsZnQ0drmaG2tee4IMrZFx241yi8UsLg'
}
}
const metamaskAddress = '0x2e5fF0267b678A0FAF9A9f5b0FBf7Ac9638B5b57'
const params = {
metamaskAddress,
verifiableCredential
/*
Uncomment the below line if you want to connect to a non-metamask account
*/
// ...externalAccountParams
}
const handleVerifyVCAPI = async () => {
await window.ethereum.request({
method: 'wallet_invokeSnap',
params: {
snapId,
request: {
method: 'verifyVC',
params: params
}
}
})
}Notes:
Identify Snap currently supports generating VC using
jwtproof format.
How the API is handled between the app and snap

What the API does
Retrieves the currently connected account and the blockchain network the user has selected on Metamask. If it's the first time, the account info is also saved in snap state.
Checks to see whether the passed Verifiable Credential(VC) is a valid VC such as checking for the valid signature and whether or not the did in the VC is resolvable and whether or not it has the correct proofformat.
Returns a boolean value depending on the result.
Some example responses:
trueLive Demo on CodePen
Last updated
Was this helpful?

