What's live vs. planned
@eurcor/pack packaging library, and programmatic
submission. Planned (not yet available): the eurcor command-line tool. Steps
that rely on planned tooling are marked below.Who must submit, and what a submission contains
Submissions are lodged by the party responsible for a company's beneficial-ownership information — typically the Obliged entity povinná osoba The company or person legally required to identify and keep records of its beneficial owners under AML law. or an authorised representative acting on its behalf. You describe the Verified entity ověřovaná entita The subject company at the base of the structure — the entity whose ownership and control chain is being verified. and the chain of ownership and control that sits above it.
Every OFN submission is built from four parts: the subject entity; its ownership and control structure (the subjects and relationships that lead to the natural-person Beneficial owner skutečný majitel The natural person who ultimately owns or controls a company, even through a chain of other entities.); the supporting proof documents; and submission metadata, including a content hash for each document.
Request API access
Submitting is credentialed. Before you can lodge a structure you request access on the Request API access page, where you provide your organisation details and receive the credentials the tooling will use. This step is available today.
Build your submission data to the OFN model
Map your ownership situation onto the OFN model: the subject entity, the subjects above it (people, companies, trusts, public bodies), and the relationships that connect them — direct or indirect, share-based or control-based. Each claim carries three credibility signals: scope, documentary support, and how current it is. See The OFN standard for the full model.
{
"subject": { "id": "cz/ico/45274649", "type": "pravnicka_osoba", "name": "Acme s.r.o." },
"owners": [
{
"person": "Jan Novák",
"role": "skutecny_majitel",
"share": 0.62,
"path": "direct",
"credibility": { "scope": "full", "documentary": "high", "temporal": "2026-03" }
}
]
}Package a submission into a .core bundle with @eurcor/pack
A .core bundle is a gzipped tar carrying your
signed resolution and the documents it references. Hash the documents
first, then sign, then pack: the digests live inside the signed body, so
your signature covers the document content and not just its metadata. The
registry rehashes every document on arrival and refuses the bundle if one
does not match.
$ deno add jsr:@eurcor/pack
import { hashDocuments, pack } from "@eurcor/pack";
const body = await hashDocuments(submission, documents); // SHA-256 each document
const bundle = await pack(sign(body), documents); // → acme.core
await Deno.writeFile("acme.core", bundle);Authenticate and submit with the eurcor CLI
Sign in once with your credentials, then push the bundle to the registry from the terminal. The command-line tool is planned and not yet released.
$ npm i -g eurcor-cli
$ eurcor login
✓ signed in as acme-compliance@example.com
$ eurcor submit acme.core
→ submission smt_8f3a… queued for verificationWhat happens next: the verification lifecycle
After upload, a submission is lodged for verification and ends accepted or rejected. A verifier checks completeness, cross-checks sources, and reviews your proof documents; recording a credibility rating on acceptance is planned. A rejected submission comes back with the reasons so you can amend and resubmit. Once accepted, the structure appears in public search. See Verification for the full workflow.