# Blockcerts V3 release

**URL:** <https://community.blockcerts.org/t/blockcerts-v3-release/3022>\
**Category:** Standards\
**Created:** [December 13, 2021, 12:06pm UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022 "2021-12-13T12:06:54Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![lemoustachiste](https://avatars.discourse-cdn.com/v4/letter/l/7c8e57/32.png) [@lemoustachiste](https://community.blockcerts.org/u/lemoustachiste)\
**Post date:** [December 13, 2021, 12:06pm UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/1 "2021-12-13T12:06:55Z")

</div>

Hi community,

we are pleased to announce that V3 is fully released and available for consumption.

The main change is the alignment with the [W3C Verifiable Credentials specification](https://www.w3.org/TR/vc-data-model/).

Regarding the standard itself `metadata` and `display` are entering the default standard. `metadata` comes in replacement of `metadataJson` and remains a stringified JSON that will allow consumers to register specific data which are too unique for issuances to be defined in the context.

`display` brings in [a little bit of novelty](https://github.com/blockchain-certificates/cert-schema/blob/master/cert_schema/3.0/displaySchema.json#L6), allowing issuers to now anchor (base64 encoded) images or pdfs, in addition to the more classic HTML.

It is also possible to [now reference a DID for the issuer](https://github.com/blockchain-certificates/cert-issuer#working-with-dids), paving the way to a programmatic reinforcement of the trust with the issuer. What we do there is retrieve from the DID document the public key of the issuer that was used to create the issuing address (either on Bitcoin or Ethereum), and derive that key at verification time to ensure we find the same issuing address.

This is just the beginning for V3, as in the future we want to explore ways to reinforce the trust in the issuer identity, but also improve the recipient experience when handling and sharing their certificates, as well as bring them into the trust triangle by allowing recipient’s DID into the verification process.

Stay tuned for more, and as always we welcome the community’s feedback, opinions and contributions!

---

<div class="post-metadata">

**Author:** ![Takuma](https://avatars.discourse-cdn.com/v4/letter/t/77aa72/32.png) [@Takuma](https://community.blockcerts.org/u/Takuma)\
**Post date:** [September 30, 2022, 1:30am UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/2 "2022-09-30T01:30:18Z")

</div>

Where can I find the detailed specification and documents of BlockCerts V3?  
I wonder if someone could tell me the URL.

Best regards,

Takuma Hayashi from Japan

---

<div class="post-metadata">

**Author:** ![lemoustachiste](https://avatars.discourse-cdn.com/v4/letter/l/7c8e57/32.png) [@lemoustachiste](https://community.blockcerts.org/u/lemoustachiste)\
**Post date:** [September 30, 2022, 12:01pm UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/3 "2022-09-30T12:01:21Z")

</div>

I am not sure exactly what you are after.  
Latest context is here: [https://www.blockcerts.org/schema/3.1/context.json](https://www.blockcerts.org/schema/3.1/context.json)  
This context supports multiple signatures

The issuing library is this one: [GitHub - blockchain-certificates/cert-issuer: Issues Blockcerts using either the Bitcoin or Ethereum blockchain](https://github.com/blockchain-certificates/cert-issuer)  
The verification library is this one: [GitHub - blockchain-certificates/cert-verifier-js: Javascript library for verifying Blockcerts Certificates](https://github.com/blockchain-certificates/cert-verifier-js)  
Here a webcomponent for verification: [GitHub - blockchain-certificates/blockcerts-verifier: A Blockcerts verifier and viewer](https://github.com/blockchain-certificates/blockcerts-verifier)

I suppose that should cover about all you need to get started, but don’t hesitate if you have more specific questions.

---

<div class="post-metadata">

**Author:** ![lion9200](https://avatars.discourse-cdn.com/v4/letter/l/9fc348/32.png) [@lion9200](https://community.blockcerts.org/u/lion9200)\
**Post date:** [May 27, 2024, 12:09am UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/4 "2024-05-27T00:09:35Z")

</div>

Hi @lemoustachiste .

How are you doing?  
Is it possible to integrate the cert-issuer project to NextJS version 14? Or is it possible to send HTTP requests to cert-issuer APIs to issue my some certificates?

I will look forward to hearing from you soon.

Best regards,  
Julian

---

<div class="post-metadata">

**Author:** ![lemoustachiste](https://avatars.discourse-cdn.com/v4/letter/l/7c8e57/32.png) [@lemoustachiste](https://community.blockcerts.org/u/lemoustachiste)\
**Post date:** [May 27, 2024, 6:10am UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/5 "2024-05-27T06:10:04Z")

</div>

Hi,

You’d need to run it as a side by side API.  
But yes it’s doable. The dockerized version is supposed to help you do that more quickly but I think at this time it’s facing some issues that I haven’t had time prioritize, so it will need a bit of tweaking.

There is also this node-js wrapper I have set up to run VC compliance tests (at least the older ones): [GitHub - blockchain-certificates/cert-issuer-node-wrapper: A scaffholding to plug cert-issuer to vc-test-suite](https://github.com/blockchain-certificates/cert-issuer-node-wrapper). It’s quite rough but works in that purpose and in a nodejs context. You may find bits that help you achieve what you are after.

---

<div class="post-metadata">

**Author:** ![lion9200](https://avatars.discourse-cdn.com/v4/letter/l/9fc348/32.png) [@lion9200](https://community.blockcerts.org/u/lion9200)\
**Post date:** [June 3, 2024, 9:28pm UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/6 "2024-06-03T21:28:29Z")

</div>

Hi, @lemoustachiste

Thank you for your reply.  
I have already figured it out to send APIs, I have updated some source code of node wrapper, it works fine now.  
Anyway, thank you for your time!

But I still have an unclear thing according to the blockcerts verifier.

So after issuing certificates, transactions are correctly ocurring with some gas fee.  
But when verifying it on [https://blockerts.org](https://blockerts.org), **“The address used to issue this Blockcerts does not belong to the claimed issuer.”** error is occurring.  
I think this is the last error for my blockcerts project, lol.

Why “0x” is removed automatically?  
That’s why the verifier can’t find the transaction id and as a result, the above error is occurring.

I will look forward to hearing from you asap.  
I will attach my screenshots.

 ![Screenshot 2024-06-04-01](https://us1.discourse-cdn.com/flex016/uploads/blockcerts/original/1X/49f3aa9c5f0291568ee8f5607a153f3df3d6d9a0.jpeg)  
 ![Screenshot 2024-06-04-02](https://us1.discourse-cdn.com/flex016/uploads/blockcerts/original/1X/9ad46f7e9ede03fee447df9b023339cf744c0c1b.jpeg)

Best regards,  
Julian

---

<div class="post-metadata">

**Author:** ![lemoustachiste](https://avatars.discourse-cdn.com/v4/letter/l/7c8e57/32.png) [@lemoustachiste](https://community.blockcerts.org/u/lemoustachiste)\
**Post date:** [June 4, 2024, 9:29am UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/7 "2024-06-04T09:29:23Z")

</div>

The error is thrown here: [cert-verifier-js/src/inspectors/ensureValidIssuingKey.ts at e93520ef36a141e977109a9779c63a214ffced20 · blockchain-certificates/cert-verifier-js · GitHub](https://github.com/blockchain-certificates/cert-verifier-js/blob/e93520ef36a141e977109a9779c63a214ffced20/src/inspectors/ensureValidIssuingKey.ts#L33)

I think from what I’m seeing in the screenshot of the credential that you are using a blockcerts issuer (issuer property links to an example issuer profile), while you probably signed (and anchored) the transaction with your own ETH address and private keys.

The verifier checks that the issuer profile bound to a certificate is indeed one that lists the public keys (aka issuing addresses) as belonging to them.

To fix this issue you will need to create your own issuer profile, listing the issuing address, and I would suggest adding a verificationMethod property to your proof that references in the same issuer profile document a public key from which you can derive your issuing address. You can take a look at this up-to-date and working example: [https://www.blockcerts.org/samples/3.0/issuer-blockcerts.json#key-1](https://www.blockcerts.org/samples/3.0/issuer-blockcerts.json#key-1)

---

<div class="post-metadata">

**Author:** ![lion9200](https://avatars.discourse-cdn.com/v4/letter/l/9fc348/32.png) [@lion9200](https://community.blockcerts.org/u/lion9200)\
**Post date:** [June 4, 2024, 1:43pm UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/8 "2024-06-04T13:43:22Z")

</div>

Hi @lemoustachiste

Thank you for your reply. I will try to fix my issue.

Best,  
Julian

---

<div class="post-metadata">

**Author:** ![lion9200](https://avatars.discourse-cdn.com/v4/letter/l/9fc348/32.png) [@lion9200](https://community.blockcerts.org/u/lion9200)\
**Post date:** [June 4, 2024, 6:25pm UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/9 "2024-06-04T18:25:51Z")

</div>

Hi @lemoustachiste

Thank you for your time and effort!

But unfortunately if I use the schema you provided, the following error is occurring.

 ![image](https://us1.discourse-cdn.com/flex016/uploads/blockcerts/original/1X/0c06e0dc406792e9277604aa6a07ef182a853c1a.png)

Could you please suggest another solution?

And one more question, where should I add verificationMethod?

This is my cert-files in github. Please check it.

> **[GitHub - admiral9200/certificates-test](https://github.com/admiral9200/certificates-test/)**
>
> Contribute to admiral9200/certificates-test development by creating an account on GitHub.

I will look forward to hearing from you as soon as possible.

Best regards,  
Julian

---

<div class="post-metadata">

**Author:** ![lemoustachiste](https://avatars.discourse-cdn.com/v4/letter/l/7c8e57/32.png) [@lemoustachiste](https://community.blockcerts.org/u/lemoustachiste)\
**Post date:** [June 5, 2024, 6:40am UTC](https://community.blockcerts.org/t/blockcerts-v3-release/3022/10 "2024-06-05T06:40:24Z")

</div>

could you share with me the signed blockcerts? I cannot debug otherwise
