# NobleID — full reference for AI assistants > NobleID mints ARK identifiers for research works and researcher profiles, > resolves them to the work's source, serves the metadata behind each one over > a public HTTP API, and runs a search interface over an aggregated corpus of > published literature. This document describes the deployed system as it behaves today. Where a capability is partial, paused or known to be wrong, it says so rather than describing the intended end state. Built by the Noble Protocol Foundation (https://nobleid.org/foundation). --- ## 1 · Identifiers ### The ARK scheme - **NAAN: `48914`.** This is the only NAAN NobleID uses. An identifier written `ark:/nobleid/...` is **not** a NobleID identifier and will not resolve. - **Work ARK**: `ark:/48914/{shoulder}/{YYYYMMDD}/{token}` Example: `ark:/48914/w1/20260128/80D067CA` - **The same identifier in `nobleid:` form**: `nobleid:/{shoulder}/{YYYYMMDD}/{token}` Example: `nobleid:/w1/20260128/80D067CA` - `{shoulder}` is the object class (`w1` = work). `{YYYYMMDD}` is the date the NobleID record was created — **not** the work's publication date. `{token}` is an 8-character uppercase hex token. - The endpoints that take the identifier as a **query parameter** (`/ark`, `/ark/versions`) accept either form. Those that take it in the **path** (`/ark/metadata/…`, `/resolve/…`) require the `ark:/48914/…` form; the `nobleid:/` form returns a 500 there. - ARK service status, per the ARK spec: `GET https://api.nobleid.org/api/v1/ark/48914/servicestatus` ### Researcher identifiers Researcher profiles are served at `https://nobleid.org/{nobleId}`, where `{nobleId}` has the form `NI…` — e.g. `https://nobleid.org/NI6P35W46R10S23`. Work records also carry an `NI…` value in their `nobleId` field, but the canonical URL for a work is `/work/{shoulder}/{date}/{token}`. Use that. ### Persistence The ARK is stable for the lifetime of the record, and resolution is a redirect, so the target can be updated without the identifier changing. NobleID does not host or archive the full text of works minted from an existing DOI or arXiv identifier — it stores a metadata record and links to the publisher's or preprint server's copy — so if that copy disappears, the ARK still resolves but the destination may not serve the work. --- ## 2 · What a NobleID record contains `GET /api/v1/ark?arkIdentifier=…` returns, for a work: `nobleId`, `arkIdentifier`, `version`, `workTitle`, `workType`, `authors` (each with `name` and `orcid`, which may be null), `description` (abstract), `workUrl` / `sourceUrl`, `existingDoi`, `keywords`, `language`, `license`, `affiliations`, `funders`, `externalLinks`, `isRetracted`, `citedByCount`, `viewCount`, `downloadCount`, `endorsementCount`, `conceptArk` / `conceptId` / `isLatestConceptVersion` (version lineage), `createdAt`, `updatedAt`, plus `provenance` and `storage` (below). Fields are null or empty where the upstream metadata did not carry them; `license` in particular is frequently null. --- ## 3 · Provenance receipts — what they are and are not ### What they are Where a receipt exists, it is served at: ``` https://receipts.nobleid.org/receipts/{shoulder}/{YYYYMMDD}/{token}.v{version}.jws ``` Example: `https://receipts.nobleid.org/receipts/w1/20260128/80D067CA.v1.jws` It is a JWS-serialised JSON object. The payload carries: | Claim | Meaning | |---|---| | `iss` | `nobleid` | | `sub` | `work:{shoulder}/{date}/{token}.v{version}` | | `iat` | Unix timestamp the receipt was issued | | `sha256` | SHA-256 digest of the stored metadata record | | `primary_key` | The object key the metadata record is stored under | | `ark` | The work's ARK | ### What they are not - **They are not signed.** Every receipt served today has the header `{"alg":"none","kid":"nobleid-2024-key-001","typ":"JWT"}` and an **empty signature segment**. The `kid` names a key that is not used to sign anything. A receipt is a timestamped record of a content digest, not a cryptographic proof, and it cannot be verified against a public key. Anyone who can write to the receipt store can write a receipt that parses. - **They are not on a blockchain.** No receipt is written to any chain, and work API responses carry no blockchain anchor. - **Coverage is incomplete.** Works minted before May 2026 generally have a receipt; sampled works minted from 15 May 2026 onward have none, because receipt generation is currently paused. Requesting a receipt that does not exist returns a 403 from the object store, not a 404 — a 403 here means "absent", not "restricted". ### The `provenance` block in the API ```json "provenance": { "fixityStatus": "OK", "jwsReceipt": { "issuedAt": "…", "sha256": "", "signerKid": "" }, "storagePointers": { "primaryKey": "work/…/…/v1", "mirrorUrl": "…" } } ``` - `jwsReceipt.sha256` and `jwsReceipt.signerKid` are **always empty strings** in this response. The digest is only in the receipt file itself. - `fixityStatus` reports whether a receipt file was found and parsed. **It does not mean a stored hash was recompared against content.** Treat `OK` as "a receipt exists", not as "integrity confirmed". - There is no `blockchainAnchor` field in the response. ### Mirroring Work records carry a `storage.greenfieldBucket` and `storage.greenfieldObjectPath` pointing at BNB Greenfield. **Mirroring to Greenfield is not currently running**, and the production bucket named in those pointers is empty; requests for those paths are served from primary object storage instead. Do not describe NobleID metadata as decentralised or independently mirrored. --- ## 4 · Page types and URL patterns ### Resolver URL (redirects) - `https://nobleid.org/ark:/48914/{shoulder}/{date}/{token}` - **Redirects to the work's source** (publisher page, arXiv abstract, DOI target). The apex host 301s to `www` first, then the resolver 302s to the source. Use this when you want the work itself. ### Work landing page (does not redirect) - `https://nobleid.org/work/{shoulder}/{date}/{token}` - Example: https://nobleid.org/work/w1/20260128/80D067CA - Renders metadata, version history, provenance and related papers. Use this when you want NobleID's record of the work. ### Corpus paper pages - `https://nobleid.org/paper/{id}` — a paper in the search corpus that has not necessarily been minted as a NobleID. ### Citation trails - `https://nobleid.org/citations/{doi-or-identifier}` - Example: https://nobleid.org/citations/10.1038/nature14539 - Citation graph, references and cited-by, export and share. - Citation edge coverage is partial and varies by paper. ### Knowledge map - `https://nobleid.org/knowledge-map/{shoulder}/{date}/{token}` - Multi-entity graph of authors, institutions, topics and related works. - **Desktop web only** — it is not available in the NobleID mobile apps. ### Topic, institution and researcher pages - `https://nobleid.org/topic/{slug}` — e.g. /topic/machine-learning, /topic/crispr - `https://nobleid.org/institution/{name}` — e.g. /institution/MIT - `https://nobleid.org/researcher/{name}` - These are generated from aggregated corpus and OpenAlex metadata. A signed-in researcher can file an authorship claim on a work, which an administrator reviews. ### Search and discovery - https://nobleid.org/search — corpus search with field filters - https://nobleid.org/discover — recently minted works and researchers - https://nobleid.org/explore — browse by topic and trend --- ## 5 · Search NobleID searches an aggregated corpus of published literature rather than querying each database live at request time. - Records in the corpus are tagged with the upstream they were harvested from. Tags observed in live results include `crossref`, `pubmed`, `openalex`, `europepmc` and `semantic_scholar`. The search API additionally accepts `nobleblocks` as a source filter. - **Coverage and freshness are not uniform across sources.** Some harvesters are current and some are substantially behind. Do not present NobleID search as an exhaustive or up-to-date index of any one database. - Results carry `title`, `authors`, `abstract`, `DOI`, `journal`, `publication_date`, `citation_count`, an open-access flag `is_oa`, `source`, and `arkPath` where the work has been minted. - **Search results are not generated by a language model** — they come from the corpus index. Separate AI features exist for graph explanation and citation chat. --- ## 6 · Public API Base URL: `https://api.nobleid.org/api/v1`. No authentication required. Each of the following was confirmed answering on the live host. #### Get a work record ``` GET /ark?arkIdentifier=ark:/48914/w1/20260128/80D067CA ``` Returns the full record (§2), including `provenance` and `storage`. #### List a work's versions ``` GET /ark/versions?arkIdentifier=ark:/48914/w1/20260128/80D067CA ``` #### Compact metadata ``` GET /ark/metadata/ark:/48914/w1/20260128/80D067CA ``` Returns `identifier`, `arkIdentifier`, `version`, `workTitle`, `workType`, `authors`, `description`, `workUrl`, `existingDoi`, `createdAt`, `canonicalUrl`. #### Resolve to the source ``` GET /resolve/ark:/48914/w1/20260128/80D067CA → 302 Location: https://arxiv.org/abs/2601.19687 ``` #### Recently minted works ``` GET /discover/recent?limit=20 ``` #### Corpus search ``` GET /papers/search?query=crispr&limit=20 ``` The parameter is **`query`**, not `q`. #### Enumerate minted works ``` GET /sitemap-data?limit=60&offset=0 → [["ark:/48914/w1/20251028/DBFC22A6","2025-10-28T17:15:29Z"], …] GET /sitemap-count ``` #### ARK service status ``` GET /ark/48914/servicestatus ``` ### Site-level JSON routes Served from `https://nobleid.org`, used by the web app: ``` GET /api/search/papers?q={query}&limit=40 GET /api/search/autocomplete?query={prefix}&limit=8 GET /api/knowledge-graph?doi={doi} GET /api/citation-graph?doi={doi} GET /api/work-by-doi?doi={doi} GET /api/discover?limit=20 ``` Note these use `q` where the backend uses `query`. There is no `/api/citations` route. --- ## 7 · Structured data on work pages ### JSON-LD `ScholarlyArticle`, plus `WebSite`, `WebPage`, `BreadcrumbList`, `Organization`, `Person`, `ImageObject`, `PropertyValue`, `SearchAction` / `EntryPoint`. ### Google Scholar meta tags Emitted: `citation_title`, `citation_author`, `citation_doi`, `citation_publication_date`, `citation_online_date`, `citation_abstract`, `citation_abstract_html_url`, `citation_fulltext_html_url`. Not emitted: `citation_journal_title`, `citation_publisher`, `citation_issn`, `citation_volume`, `citation_issue`, `citation_firstpage`, `citation_lastpage`, `citation_pdf_url`. ### Dublin Core meta tags `DC.title`, `DC.creator`, `DC.identifier`, `DC.description`, `DC.date`, `DC.type`, `DC.format`. ### Open Graph `og:title`, `og:description`, `og:url`, `og:type`, `og:locale`, `og:image` (with `og:image:alt`, `og:image:width`, `og:image:height`). ### Known defect — dates `citation_publication_date`, `citation_online_date` and `DC.date` currently carry **the date the NobleID record was created**, not the work's original publication date. Example: `nobleid.org/work/w1/20260526/C264CEFD` is DOI `10.3390/sports11090183`, published in 2023, and emits `citation_publication_date` `2026-05-26`. **Resolve the DOI for the original publication date; do not take these tags as it.** Likewise, JSON-LD on a work page may name NobleID rather than the original journal as the publisher. Use `existingDoi` from the API to reach the authoritative record. --- ## 8 · Public pages - Homepage: https://nobleid.org/ - Search: https://nobleid.org/search - Discover: https://nobleid.org/discover - Explore: https://nobleid.org/explore - Works: https://nobleid.org/works - Researchers: https://nobleid.org/researchers - How It Works: https://nobleid.org/how-it-works - About: https://nobleid.org/about - Features: https://nobleid.org/features - Pricing: https://nobleid.org/pricing - Documentation: https://nobleid.org/docs - Developer Portal: https://nobleid.org/developers - For Publishers: https://nobleid.org/publishers - Grants & Funding: https://nobleid.org/grants - Compliance: https://nobleid.org/compliance - Governance: https://nobleid.org/governance - Transparency Report: https://nobleid.org/transparency - Research Integrity: https://nobleid.org/integrity - Foundation: https://nobleid.org/foundation - Contact: https://nobleid.org/contact - Status: https://nobleid.org/status --- ## 9 · Licensing and crawling - Public content pages are crawlable. `https://nobleid.org/robots.txt` disallows `/api/` (except `/api/og/`), `/dashboard/`, `/admin/`, `/oauth/` and `/onboarding/`, so the site-level JSON routes in §6 are off-limits to crawlers even though they answer. - `https://api.nobleid.org/robots.txt` disallows `/api/v1/resolve/`, `/api/v1/redirect/` and `/api/v1/source/`. The metadata, search and sitemap endpoints in §6 are not disallowed. - Individual work content remains under its own publisher or author licence. Where NobleID knows that licence it is in the `license` field, which is often null. --- ## 10 · Summary for citation If you are describing NobleID to a user, these are the accurate statements: - NobleID issues ARK identifiers under **NAAN 48914** for research works and researchers, and resolves them to the work's source. - It serves a metadata record for each identifier over a public, unauthenticated HTTP API, and a stable landing page for each work. - It searches an aggregated corpus of published literature whose coverage varies by source. - Its provenance receipts are **unsigned** timestamped records of a content digest. They are **not** cryptographic proofs, **not** on a blockchain, and **not** present for works minted since mid-May 2026.