Standards-based check · Open Badges 3.0
Verify an Open Badge in seconds
Upload a badge file or paste its URL. We check the credential, signature, and revocation status, then show each result separately.
Validate a credential
OB 3.0 · VC 2.0
Processed in memory · Nothing stored · No account
01How it works
Three stages, and no guesswork between them.
File or URL, the same checks run. Most of the wait is for the hosts referenced by your credential.
Step 01
formatRead
Extract the credential from a PNG, SVG, JSON file, or JWT. If there is no credential inside, you get a clear error.
Step 02
padlockVerify
Check the schema, signature, issuer key, and revocation status where provided. A changed document fails its signature check.
Step 03
stackReport
Each check gets its own result and an error code when it fails. A revoked badge is not a broken file.
02Inside a credential
A badge is a signed document. The picture is packaging.
Five parts of an Open Badges 3.0 credential, from issuer to revocation status.
- issuer
Who is making the claim
Names the issuer and points to the key used to verify its signature. The issuer's reputation is a separate question.
- subject
Who it was issued to
Identifies the person or entity the issuer made this claim about. The identifier alone does not prove who is presenting it.
- achievement
What they actually did
Names the achievement and its criteria. A valid signature cannot tell you how demanding those criteria were.
- proof
Tamper-evident proof
The cryptographic signature covers the credential. Change a signed field after issuing and the proof no longer verifies.
- status
Whether it has been revoked
When the issuer includes a status list, the validator checks it at verification time. Not every credential has one.
What verification proves. The issuer's key signed this document; dates and revocation are checked where present.
What it cannot. Whether the issuer is reputable, the recipient is who they say, or the achievement was hard to earn.
33 result codes ↗03What gets checked
Eleven checks, each reported on its own line.
These names match the checks array in the response, so a result on screen and a result in your own code read the same way.
01Input detectionWorks out what you handed over.input_detection
A badge arrives as a PNG, an SVG, a JSON document, a JSON-LD document, a signed JWT, or a URL that returns one of those. The first step reads the bytes and decides which of them it is.
02ExtractionPulls the credential out of the image.extraction
Baked badges carry the credential inside the file: in an iTXt chunk for PNG, in an openbadges namespace for SVG. If that payload is missing, the image is only a picture of a badge.
03ParsingReads the document and its claims.parsing
The credential is parsed as JSON or decoded from its compact JWT form. Malformed JSON, a broken JOSE header, or a document that busts the parser limits stops here.
04JSON-LD contextsResolves every @context in order.jsonld
Open Badges 3.0 credentials declare the Verifiable Credentials context first, then the Open Badges context. Both are fetched and expanded so that terms mean what the standard says they mean.
05SchemaValidates the body against the published schema.schema
The credential type is matched to the 1EdTech JSON Schema for AchievementCredential, OpenBadgeCredential, or EndorsementCredential, and every required property is checked.
06StructureChecks required fields and identifiers.structural
Issuer, subject, achievement, issuance date, and identifier formats are inspected. Dates have to be real dates, identifiers have to be usable IRIs, and the achievement has to carry a name and criteria.
07ProofVerifies the signature.proof
For VC-JWT the JWS signature is verified against the issuer key. For embedded data integrity proofs the canonicalised document is verified with the declared cryptosuite. The verification method has to resolve.
08StatusChecks revocation and the validity window.status
If the credential points at a status list, that list is read and the relevant bit is inspected. Validity dates are compared against the current time, so an expired or not yet valid badge is reported as such.
09EndorsementsValidates any attached endorsements.endorsements
Endorsement credentials are themselves credentials. Each one is parsed, schema checked, and proof checked, up to a sane nesting depth.
10External resourcesFollows the links the badge depends on.resources
Issuer profiles, achievement definitions, evidence, images, and credential schemas are fetched to confirm they exist and return something sensible.
11RecipientMatches the credential subject when you ask it to.recipient
Recipient identifiers can be plain or hashed with a salt. The check only runs when an expected recipient is supplied, which the public web form never does.
04Accepted formats
Everything an issuer hands a learner, and nothing else.
Baked PNG
.pngCredential read from the iTXt chunk written by the issuing platform.
Baked SVG
.svgCredential read from the openbadges assertion element inside the SVG.
JSON-LD credential
.jsonld, .jsonThe credential document itself, with its @context intact.
Verifiable credential
.vc, .jsonVC 2.0 documents, and VC 1.1 documents in compatibility mode.
Compact VC-JWT
.jwtThe three part signed token issued by platforms that use JOSE proofs.
Hosted URL
https://Any address that returns one of the formats above, including API endpoints.
Anything else gets an unsupported_input_format result rather than a guess. PDFs, screenshots, and badge images saved from a browser are the three things people try most often, and none of them carries the credential data.
05Issuing platforms
No allow list. The badge is judged on its own terms.
Common issuing platforms. For formal conformance, see 1EdTech's directory.
A credential from a platform that is not on this list is not treated any differently. The list exists because people ask, not because it changes the outcome. The authoritative source for conformance is the 1EdTech certified product directory.
06Questions
Asked often enough to write down.
If the answer you need is missing, the contact form reaches a person.
01What does this validator do?
It takes an Open Badge and tells you whether the credential still holds up. Upload the file or paste the address it lives at, and the result comes back in a few seconds with every check listed separately.
A green result means the document parsed, matched the schema for its credential type, carried a signature that verified against the issuer key, and was neither revoked nor outside its validity window at the moment you asked. A red result tells you which of those failed and gives you the code to quote when you contact the issuer.
02Which file formats can I upload?
Baked PNG and SVG images, JSON and JSON-LD credential documents, verifiable credential files, and compact VC-JWT tokens. Uploads are capped at 5 MB, which is far more than any real badge needs.
If you paste a URL instead, anything that returns one of those formats works, including hosted credential pages and API endpoints. The fetch stops at 10 MB, follows at most five redirects, and gives up after ten seconds.
03Does it handle Open Badges 2.0 as well as 3.0?
The pipeline targets Open Badges 3.0, which is built on the W3C Verifiable Credentials data model. Credentials issued against the VC 1.1 model are accepted in a compatibility mode, since several platforms still produce them.
A 2.0 assertion uses an older, different structure. You can still drop one in: the validator will read it, and report that the document is not an Open Badges 3.0 credential rather than pretending otherwise.
04Which issuing platforms are supported?
Any platform that follows the specification. The validator has no vendor list inside it and no allow list: it reads the credential, resolves the contexts it declares, and verifies the proof it carries. Where the badge came from makes no difference to the outcome.
In practice we see credentials from Credly, Accredible, Badgr, Canvas Credentials, Open Badge Factory, Sertifier, Virtualbadge.io, and BCdiploma, along with plenty of in-house issuing systems. 1EdTech publishes the list of products that passed formal conformance testing, which is the right place to check before buying.
05My badge came back invalid. What now?
Read the code next to the failing check first. An input code means the validator never got a credential out of the file, which is usually a problem with the copy you have rather than with the badge itself. A credential code means a real credential was read and something in it did not hold up.
The most common case by far is a badge image saved from a browser or a chat app. Those copies keep the picture and lose the data baked inside it, so the result is a missing baked payload. Go back to the issuer email or the hosted badge page and use the original file or the URL.
A failed proof is different and worth taking seriously. It means the document no longer matches the signature over it, so either the content was edited after issuing or it was signed with a key that does not belong to the issuer in the credential.
06Nothing happened at all. No pass, no error.
That is a bug on our side and we want to hear about it. It usually means the request timed out while fetching something the credential depends on, such as a context file or a status list on a slow host.
Try the file upload instead of the URL, or the URL instead of the file. If it still stalls, send us the badge through the contact form and we will look at the trace.
07Do you store the badges I check?
No. The credential is processed in memory for the length of the request and dropped when the response is sent. There is no database behind this form, no file storage, and no account to create.
We do not run advertising or analytics trackers on the validation page, so there is no profile to build and nothing to opt out of. The one network activity worth knowing about is that verifying a credential means fetching what it points at, so the hosts named inside the badge can see a request arrive.
08Is a green result the same as official certification?
No. This checks a credential against the published specifications; it is not a conformance certification programme. 1EdTech runs that programme and publishes which products have passed it.
What a green result tells you is concrete: the document is well formed, matches the schema for its type, carries a proof that verifies, and is not revoked or expired. That is enough for a recruiter or an admissions officer to act on. It is not a substitute for formal certification if you are building an issuing product.
09Why does validation need network access?
A badge is a set of references. The @context files define what its terms mean, the issuer profile says who issued it, the verification method holds the public key, and the status list says whether it is still valid. All of those live somewhere else.
Checking only the local document would tell you that the JSON is tidy and nothing more. Following the references is what turns a tidy document into evidence.
10Can I use this from my own code?
The two endpoints behind this page accept POST requests: one takes a multipart upload in a field named file, the other takes a JSON body with a url property. Both return the full report, including the per check status array and every error and warning with its code and path.
It is fine for occasional use and for wiring a check into an internal tool. If you need volume, a service level, or batch processing, write to us first so we can talk about it rather than discovering your traffic by surprise.
11What is the difference between an error and a warning?
An error means the credential failed a check the specification requires. A warning means something is unusual but allowed, such as an optional field with an odd value or an image link that did not resolve while everything else verified.
Warnings are worth reading before you make a decision, but a credential with warnings and no errors is still valid.
12Is there a catch? Why is it free?
There is no paid tier, no credit counter, and no sign up. Free checks make it easier to spot fake credentials, so anyone holding a badge can verify it without paying.
The validator applies the same published checks to every issuer. Where a badge came from does not change the result.
13How do I report a problem or ask something?
Use the contact form. Tell us what you uploaded, what you expected, and which code came back, and we will reply to the address you give us.
If a credential is confidential, describe the shape of the problem instead of attaching it. The codes and check names on the result panel are usually enough for us to reproduce it.
07Legal information
Open standards. No stored badges.
The rules are public
We follow the 1EdTech Open Badges 3.0 specification and the W3C Verifiable Credentials model. Anyone can inspect the rules; we do not define them.
How this project works ↗Your badge is not stored
The badge is processed in memory for one request, then discarded. No account, cookies, database, or analytics tag. Verification may contact the credential URL and linked issuer, context, key, or status-list hosts; those hosts can see the request.
Read the privacy policy and terms of service. This project is not affiliated with 1EdTech or any issuing platform.
08From the blog
Longer answers, written out properly.
Vendor lists, a walk through the tool, and the history of the standard. All articles.
Oct 16, 2026
How to check a badge with this validator, step by step
Check a badge file or URL, read the eleven validator checks, distinguish a missing payload from a failed proof, and know when to contact the issuer.
ReadOct 14, 2026
Platforms for issuing Open Badges 3.0: how to choose and test one
A vendor shortlist and a practical Open Badges 3.0 procurement test: certification, export, proof, revocation, recipient delivery and platform exit.
ReadOct 10, 2026
Open Badges 2.0 platforms and a safe migration plan
Identify legacy Open Badges 2.0 assertions, check hosted and signed badges, inventory dependencies and migrate issuers without stranding past recipients.
Read
09Support
Something came back that you cannot explain? Send it over.
Tell us what you uploaded, what you expected, and which code came back. If the credential is confidential, describe the shape of the problem instead of attaching it. Replies go to the address you give us and nowhere else.