← Bowen Chong

SDCJ Extension

A Gaia-X extension that checks a company against its own country's tax authority, then gives it a credential it can show one fact at a time. Korea and Japan first.

result
2nd place, Gaia-X Tech-X & Hackathon #9
role
Team lead
stack
NestJS, TypeScript, SD-JWT VC, X.509
outcome
Went into the Gaia-X Danube release

01 · background

Joining a dataspace means proving you are a real company.

Gaia-X is a European initiative for dataspaces: networks where companies share data under agreed rules. To take part, a company first gets a compliance credential, a signed digital document saying it has been checked. Part of that check is a notary, a service that confirms the company’s registration number with an official source.

02 · the problem

Slow to get in, and too revealing.

The problem had two halves.

The idea behind the project is that the fact of being verified is separate from the data that was checked. A verifier needs the first, not the second. It works like an ID card that could prove you are over eighteen without showing your name or address.

03 · what we built

One adapter per country, one credential format.

Every check below has to pass before a credential is issued:

company presents a signed VPwith its registration numberVP signature validsigner certificate chainsto a national root (KISA)DIDs and SHACL shapes validproof of controlnot revoked (OCSP, then CRL),business matches the registryregistry attests the numberNTS for Korea, NTA for Japancredential formatVC-JWTevery claim visibleSD-JWT VC, ES256claims disclosed one at a time,holder key in cnf

04 · result

Second place, then shipped.

I led a team of three at Gaia-X Tech-X & Hackathon #9 in Athens in May 2026, with a colleague from Circular Solution and a developer from smartSense Consulting Solutions. The project took second place, as “Selective-Disclosure Cross-Jurisdiction Identity Credentials for Gaia-X”, and the work then went into the Gaia-X Danube release.

On stage at Gaia-X Tech-X & Hackathon #9 in Athens, holding the €3,000 second-place cheque with teammates, in front of the project title on screen.

Collecting second place in Athens.

05 · after the hackathon

From prototype to product.

I kept building it as an open-source extension at Circular Solution. The certificate-based proof of control, signing with the ES256 algorithm, binding each credential to its holder’s key, and a Helm chart and CI pipeline for deployment were all added after the event.

I also brought the country check into the Gaia-X notary itself. My merge request adds a new identifier type, gx:CountryCompanyNumber, with one validator per country. Numbers carry a country prefix, the way VAT IDs do, and Korean numbers are checked with the National Tax Service. It was tested with unit and end-to-end tests and through the full compliance flow.

Next on the list from our presentation: more countries using the same adapter pattern, such as US EINs and Singapore UENs, and publishing revocation lists for the credentials.