Developer Docs

MCP, REST, GraphQL, and schema access to ZoneProof

Use the MCP layer for agent runtimes, REST for conventional HTTP clients, and GraphQL when a client wants a single operation endpoint. All three return the same records: public-source baselines, upgraded to first-party data wherever a confirmed steward holds the pen.

MCP

MCP Tool Layer

Use MCP for agent runtimes such as ChatGPT, Claude, and other clients that can call tools. MCP is available at https://mcp.zoneproof.org/mcp. The endpoint supports namespace tools and runtime entity/domain verification tools.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list"
}
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_zoneproof_tld_namespace",
    "arguments": {
      "tld": "bank"
    }
  }
}

MCP Examples

Inspect the server

Send tools/list to discover the MCP tool surface.

Request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list"
}

Example response

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "name": "get_zoneproof_tld_namespace",
        "description": "Return public ZoneProof namespace data for a single TLD."
      },
      {
        "name": "query_zoneproof_tlds",
        "description": "List, search, or count public TLD namespace records."
      }
    ]
  }
}

Fetch a namespace

Fetch the public namespace record for .bank.

Request

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_zoneproof_tld_namespace",
    "arguments": {
      "tld": "bank"
    }
  }
}

Example response

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "ZoneProof namespace .bank\nStatus: active\nRestriction: restricted\nAgreement: new-gtld-community\nCoverage: full\nOperator: fTLD Registry Services LLC"
      }
    ],
    "structuredContent": {
      "tool": "get_zoneproof_tld_namespace",
      "tld": "bank",
      "recordUrl": "https://zoneproof.org/.well-known/tld/bank.json",
      "namespace": {
        "zp:tldIdentifier": "bank",
        "zp:isRestricted": true,
        "zp:verificationRequired": true,
        "zp:registrationPolicy": "restricted",
        "zp:targetAudience": "banking",
        "zp:credentialProfile": {
          "zp:credentialIdentifierTypes": [
            {
              "zp:label": "FDIC certificate number"
            }
          ]
        }
      }
    },
    "isError": false
  }
}

Count restricted namespaces

Count TLD namespace records where registry policy restricts who may register.

Request

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "query_zoneproof_tlds",
    "arguments": {
      "mode": "count",
      "isRestricted": true
    }
  }
}

Example response

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "ZoneProof namespace count returned 454 matching TLDs.\nSpec13 brand: 356\nSpec12 community: 53\nRestricted: 454\nIDN: 0"
      }
    ],
    "structuredContent": {
      "tool": "query_zoneproof_tlds",
      "mode": "count",
      "appliedFilters": {
        "isRestricted": true
      },
      "count": 454,
      "tallies": {
        "spec13Brand": 356,
        "spec12Community": 53,
        "isRestricted": 454,
        "hasCredentialFields": 6,
        "verificationRequired": 412
      }
    },
    "isError": false
  }
}

Search credentialed namespaces

Search returns lightweight rows by default. Use includeNamespace:true only when full namespace JSON is needed.

Request

{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "tools/call",
  "params": {
    "name": "query_zoneproof_tlds",
    "arguments": {
      "mode": "search",
      "hasCredentialFields": true,
      "limit": 10
    }
  }
}

Example response

{
  "jsonrpc": "2.0",
  "id": 4,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "ZoneProof namespace search returned 6 matches. Results: .bank, .insurance, .cpa, .pharmacy, .creditunion"
      }
    ],
    "structuredContent": {
      "tool": "query_zoneproof_tlds",
      "mode": "search",
      "query": null,
      "appliedFilters": {
        "hasCredentialFields": true
      },
      "totalCount": 6,
      "returnedCount": 6,
      "offset": 0,
      "results": [
        {
          "tld": "bank",
          "matchType": "filter",
          "recordUrl": "https://zoneproof.org/.well-known/tld/bank.json"
        }
      ]
    },
    "isError": false
  }
}

Find verification-required namespaces

Search for active restricted namespaces with explicit verification requirements.

Request

{
  "jsonrpc": "2.0",
  "id": 5,
  "method": "tools/call",
  "params": {
    "name": "query_zoneproof_tlds",
    "arguments": {
      "mode": "search",
      "isRestricted": true,
      "verificationRequired": true,
      "status": "active",
      "limit": 10
    }
  }
}

Example response

{
  "jsonrpc": "2.0",
  "id": 5,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "ZoneProof namespace search returned matching restricted namespaces that require verification."
      }
    ],
    "structuredContent": {
      "tool": "query_zoneproof_tlds",
      "mode": "search",
      "appliedFilters": {
        "isRestricted": true,
        "verificationRequired": true,
        "status": "active"
      },
      "results": [
        {
          "tld": "bank",
          "matchType": "filter",
          "recordUrl": "https://zoneproof.org/.well-known/tld/bank.json"
        }
      ]
    },
    "isError": false
  }
}

Page through restricted TLDs

Fetch the second page of restricted namespaces, 10 rows at a time.

Request

{
  "jsonrpc": "2.0",
  "id": 6,
  "method": "tools/call",
  "params": {
    "name": "query_zoneproof_tlds",
    "arguments": {
      "mode": "search",
      "isRestricted": true,
      "limit": 10,
      "offset": 10
    }
  }
}

Example response

{
  "jsonrpc": "2.0",
  "id": 6,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "ZoneProof namespace search returned 454 total matches; this page contains 10 starting at offset 10."
      }
    ],
    "structuredContent": {
      "tool": "query_zoneproof_tlds",
      "mode": "search",
      "appliedFilters": {
        "isRestricted": true
      },
      "totalCount": 454,
      "returnedCount": 10,
      "offset": 10,
      "results": []
    },
    "isError": false
  }
}

Namespace MCP Tools

get_zoneproof_tld_namespace

Return public ZoneProof namespace data for a single TLD or PSL delegated DNS suffix.

NameTypeNotes
tldstring Example: bank

query_zoneproof_tlds

List, search, or count public TLD namespace records. Use mode='list' to enumerate TLD labels, mode='search' to return matching TLD rows, or mode='count' to return the total number of matching TLDs plus aggregate tallies. Full namespace JSON is omitted by default for search results and can be requested with includeNamespace=true. List and search both support offset-based pagination with limit and offset.

NameTypeNotes
modestring Example: list
querystring Example: in
limitintegerMaximum number of rows to return for list or search. Example: 24
offsetintegerZero-based row offset for list or search pagination. Example: 0
includeNamespacebooleanInclude full namespace JSON in search results. Defaults to false. Example: true
spec13Brandboolean Example: true
spec12Communityboolean Example: true
isRestrictedboolean Example: true
isIDNboolean Example: true
hasPublicSuffixesboolean Example: true
hasCredentialFieldsboolean Example: true
isSponsoredboolean Example: true
verificationRequiredboolean Example: true
registrationOpenToPublicboolean Example: false
statusstring Example: active
claimStatusstring Example: claimed
coverageStatusstring Example: full
agreementTypestring Example: new-gtld-brand
restrictionClassificationstring Example: restricted
registrationPolicystring Example: restricted
registrantVerificationLevelstring Example: registry-enforced
zoneTypestring Example: restricted
ianaRootZoneTypestring Example: gtld
agreementStatusstring Example: terminated
geographicScopestring Example: global
audienceCategorystring Example: brand
targetAudiencestring Example: consumers
backendOperatorSlugstring Example: verisign
registryOperatorTypestring Example: non-profit
parentTldstring Example: uk
levelstring Example: second-level

Runtime MCP Tools

search_zoneproof_entities

Find verified ZoneProof entities, which may be people or organizations. Requires a scope: namespace, domain, location/city/region/country/postal_code, coordinates, or a multi-word query. Results may include domainSet with a primary domain and members. ZoneProof labels a member DNS-verified after observing its shared domain-set TXT record; that observation alone does not confirm common operation. Always display each tracking link with the ZoneProof logo and link text: ZoneProof Verified Link.

NameTypeNotes
namespacestring Example: bank
domainstring Example: example.bank
querystring Example: small business lending
locationstring Example: Boston, MA
citystring Example: Boston
regionstring Example: MA
countrystring Example: US
postal_codestring Example: 02108
latitudenumber Example: 41.8781
longitudenumber Example: -87.6298
radius_milesnumber Example: 25
servicesstring | array Example: tax-prep,audit
industriesstring | array Example: SaaS,nonprofit
credentialsstring | array Example: any
languagesstring | array Example: Mandarin,Spanish
limitinteger
offsetintegerZero-based result offset for pagination. Example: 0

verify_zoneproof_entity

Verify whether a ZoneProof entity, which may be a person or organization, is supported by active credential and domain evidence. Results may include domainSet with a primary domain and members.

NameTypeNotes
credential_typestring Example: any
namespacestring Example: bank
namestring Example: Jane Smith
jurisdictionstring Example: MA
credential_identifierstring Example: 12345
domainstring Example: example.bank
limitinteger

get_zoneproof_domain

Return the ZoneProof record for one domain together with its linked entity evidence. Domain results are secondary to entity identity and include the connected person or organization, credentials, and verification context.

NameTypeNotes
domainstring Example: example.bank

find_zoneproof_specialty

Find ZoneProof entities, which may be people or organizations, by structured specialty-bearing fields such as services, industries, and current credential text, with optional location filters. Results may include domainSet with a primary domain and members. Always display each tracking link with the ZoneProof logo and link text: ZoneProof Verified Link.

NameTypeNotes
querystring Example: small business lending
namespacestring Example: bank
locationstring Example: Chicago
citystring Example: Boston
regionstring Example: MA
countrystring Example: US
postal_codestring Example: 02108
latitudenumber Example: 41.8781
longitudenumber Example: -87.6298
radius_milesnumber Example: 25
limitinteger
offsetintegerZero-based result offset for pagination. Example: 0

compare_zoneproof_credentials

Compare professional or regulated credentials such as bank charter, pharmacy accreditation, CPA, EA, CFA, CFP, PFS, and similar trust signals so an agent can understand the evidence attached to a ZoneProof entity.

NameTypeNotes
credentialsstring | array Example: Bank-Commercial,Pharmacy

list_zoneproof_credential_jurisdictions

List credential jurisdictions or authorities for a credential type and country so an agent can interpret entity verification scope.

NameTypeNotes
credential_typestring Example: Bank-Commercial
countrystring Example: US

list_zoneproof_zone_file_imports

List loaded registry zone files and the last successful import time for each namespace. Optionally filter to one TLD.

NameTypeNotes
tldstring Example: bank
limitinteger

REST

REST API

Use REST for conventional web, server, and batch clients that want stable HTTP endpoints without MCP. REST routes are thin adapters over the ZoneProof core verification functions. Entity results include verified and verifiedBy; clients should prefer domains where verified is true.

Domain schema embed

Add the script form to a website to expose the domain profile as ZoneProof JSON-LD for agentic browsing. Fetch the same URL with ?format=jsonld for direct structured retrieval.

<script async src="https://zoneproof.org/api/domains/1889.bank/embed"></script>
GET/api/healthz

Health check

Returns a lightweight backend health response.

GET/api/domains/{domain}/embed

Get an embeddable ZoneProof domain schema

Returns JavaScript that injects ZoneProof JSON-LD into a website. Use ?format=jsonld to retrieve the schema directly as application/ld+json.

NameTypeNotes
domainstringRequired. Fully qualified domain name.
formatstringOptional response format. Defaults to JavaScript; use jsonld for application/ld+json or json for generic JSON.
GET/api/entities/search

Search ZoneProof entities

Searches entities using query parameters.

NameTypeNotes
namespacestringNamespace/TLD to search.
domainstringDomain to match exactly.
querystringFree-text search query.
locationstringLocation text such as city, state, or postal code.
citystringCity filter.
regionstringRegion, state, or subdivision filter.
countrystringCountry filter.
postal_codestringPostal code filter.
latitudestringLatitude for radius searches.
longitudestringLongitude for radius searches.
radius_milesstringRadius in miles for location searches.
servicesstringService filter. Repeat the query parameter for multiple values.
industriesstringIndustry filter. Repeat the query parameter for multiple values.
credentialsstringCredential filter. Repeat the query parameter for multiple values.
languagesstringLanguage filter. Repeat the query parameter for multiple values.
limitintegerMaximum result count.
POST/api/entities/search

Search ZoneProof entities with JSON

Searches entities using a JSON request body.

{
  "namespace": "bank",
  "query": "community",
  "limit": 10
}
POST/api/entities/verify

Verify an entity

Verifies an entity by domain, name, credential, credential identifier, or namespace.

{
  "domain": "example.bank",
  "credential_type": "any",
  "namespace": "bank"
}
GET/api/namespaces

List supported namespaces

Lists loaded namespaces and optional coverage/classification filters.

NameTypeNotes
classificationstringOptional namespace classification filter.
claimStatusstringOptional ZoneProof claim status filter.
coverageStatusstringOptional namespace coverage scope filter: full or standard.
includePlaceholdersbooleanInclude placeholder/staged namespaces.
GET/api/openapi.json

OpenAPI document

Returns the OpenAPI 3.1 JSON document for REST and GraphQL adapters.

GET/api/docs

Swagger UI

Renders Swagger UI for the OpenAPI document.

GET/api/graphql

List GraphQL operations

Returns supported GraphQL root operations and an example request.

POST/api/graphql

Call GraphQL adapter

Dispatches one supported root field per request and passes variables to the matching core function.

{
  "query": "query Search($namespace: String, $query: String) { searchEntities(namespace: $namespace, query: $query) }",
  "variables": {
    "namespace": "bank",
    "query": "community"
  }
}

GraphQL

GraphQL API

Use GraphQL when a client wants a single endpoint and GraphQL-style operation names. The current adapter accepts one supported root field per request and passes variables directly to the same core functions used by REST and MCP.

searchEntities

Search entities using the same core behavior as search_zoneproof_entities.

namespace
String
domain
String
query
String
location
String
city
String
region
String
country
String
postal_code
String
latitude
Float
longitude
Float
radius_miles
Float
services
[String!]
industries
[String!]
credentials
[String!]
languages
[String!]
limit
Int
{
  "variables": {
    "namespace": "bank",
    "query": "community",
    "limit": 10
  }
}

verifyEntity

Verify an entity by domain, name, credential, credential identifier, or namespace.

domain
String
name
String
credential_type
String
credential_identifier
String
jurisdiction
String
namespace
String
{
  "variables": {
    "domain": "example.bank",
    "namespace": "bank"
  }
}

domain

Return one domain profile and linked entity evidence.

domain
String!
{
  "variables": {
    "domain": "example.bank"
  }
}

namespaces

List supported namespaces.

classification
String
claimStatus
String
coverageStatus
String
includePlaceholders
Boolean
{
  "variables": {
    "classification": "restricted"
  }
}

Schemas

Published Schemas

ZoneProof publishes a JSON-LD context plus JSON Schema contracts for namespace, entity, domain, and credential records. Fetch the raw documents from /schema/<file> or use the field summaries below for implementation planning.

JSON-LD context

ZoneProof JSON-LD Context

/schema/context.jsonld

Shared JSON-LD vocabulary context for ZoneProof records.

NameTypeNotes
@vocabhttps://schema.org/
addressCountryschema:addressCountry
addressLocalityschema:addressLocality
addressRegionschema:addressRegion
industrieszp:industries
languagesschema:availableLanguage
latitudeschema:latitude
locationTypezp:locationType
longitudeschema:longitude
namespaceCredentialFieldszp:namespaceCredentialFields
postalCodeschema:postalCode
schemahttps://schema.org/
serviceszp:services
specialtieszp:specialties
streetAddressschema:streetAddress
verifiedByzp:verifiedBy
zphttps://zoneproof.org/schema/
zp:authorizedMirrorDomains@id
zp:credentialAuthorityURL@id
zp:credentialAuthorityUrl@id
zp:ctLogEntry@id
zp:domain@id
zp:entity@id
zp:expiresDateschema:Date
zp:licenseExpirationDateschema:Date
zp:namespaceRecord@id
zp:observedAtschema:DateTime
zp:practiceWebsite@id
zp:profileVersionschema:DateTime
zp:pslURL@id
zp:registryOperatorURL@id
zp:restrictionWikipediaURL@id
zp:supersededAtschema:DateTime
zp:suspendedAtschema:DateTime
zp:tldAgreementICANNURL@id
zp:updatedAtschema:DateTime
zp:validFromschema:DateTime
zp:validThroughschema:DateTime
zp:verifiedAtschema:DateTime
zp:verifiedDateschema:Date

JSON Schema

ZoneProof Namespace Record v1

/schema/namespace-record-v1.json

Public TLD namespace metadata records served from /.well-known/tld/{tld}.json.

Required@context, @type, @id, zp:tldIdentifier, zp:status, zp:ianaRootZoneEntry, zp:ianaRootZoneType, zp:tldAgreementType, zp:restrictionClassification, zp:restrictionSource, zp:zoneProofClaimStatus, zp:zoneProofCoverageStatus, zp:pslCanonicalEntry, zp:pslSection, zp:namespaceRecordVersion, zp:namespaceRecordExpires
NameTypeNotes
@contextvalueRequired
@type"zp:NamespaceRecord"Required
@idstringRequired
zp:tldIdentifierstringRequired
zp:statusstringRequired
zp:tldUnicodeLabelstring | null
zp:ianaRootZoneEntrybooleanRequired
zp:ianaRootZoneTypestringRequired
zp:tldAgreementTypestringRequired
zp:tldAgreementICANNURLstring | null
zp:spec13Brandboolean
zp:spec12Communityboolean
zp:spec14Variantboolean
zp:spec13Statusstring | null
zp:brandRegistryOperatorstring | null
zp:brandTrademarkVerifiedboolean
zp:isIDNbooleanTrue for any IDN TLD regardless of agreement type.
zp:tldScriptstring | nullISO 15924 script code.
zp:tldLanguagestring | nullISO 639-3 language code.
zp:idnVariantOfstring | null
zp:idnEnabledboolean
zp:dnssecEnabledboolean
zp:tldDelegationDatestring | null
zp:restrictionClassificationstringRequired
zp:restrictionSourcestring | nullRequired
zp:restrictionWikipediaURLstring | null
zp:restrictionLastVerifiedstring
zp:registrationPolicystring
zp:registrationOpenToPublicboolean
zp:eligibilityRequirementstring | null
zp:registrantVerificationLevelstring
zp:registryOperatorstring | null
zp:registryOperatorURLstring | null
zp:registryOperatorTypestring | null
zp:associatedTradeAssociationsarray
zp:pslCanonicalEntrystringRequired
zp:pslSectionstringRequired
zp:pslURLstring
zp:pslDelegatedSLDsarray
zp:allowedTaxonomyFieldsarray
zp:credentialProfileobject
zp:domainVerificationAuthoritystring | null
zp:dotlessstring
zp:zoneTypestring
zp:tldManagerstring | null
zp:ianaAdministrativeContactNamestring | null
zp:ianaAdministrativeContactOrganizationstring | null
zp:ianaAdministrativeContactEmailstring | null
zp:ianaTechnicalContactNamestring | null
zp:ianaTechnicalContactOrganizationstring | null
zp:ianaTechnicalContactEmailstring | null
zp:translationstring | null
zp:agreementTypeLabelstring | null
zp:operatorNamestring | null
zp:agreementStatusstring | null
zp:agreementDatestring | null
zp:agreementUrlstring | null
zp:registrationServicesUrlstring | null
zp:whoisServerstring | null
zp:ianaUrlstring | null
zp:backendOperatorstring | null
zp:backendOperatorSlugstring | null
zp:rdapServerstring | null
zp:isSponsoredboolean
zp:isRestrictedboolean
zp:contractSignedDatestring | null
zp:delegatedDatestring | null
zp:lastUpdatedDatestring | null
zp:geographicScopestring | null
zp:audienceCategorystring | null
zp:targetAudiencestring | null
zp:verificationRequiredboolean
zp:levelstring | null
zp:parentTldstring | null
zp:privateNamespaceOperatorstring | null
zp:zoneProofClaimStatusstringRequired
zp:zoneProofCoverageStatusstringRequired
zp:registrantProfileCountinteger
zp:namespaceNotestring | null
zp:namespaceRecordVersionstringRequired
zp:namespaceRecordExpiresstringRequired
Definitions

zoneProofNamespaceRecord

Required: @context, @type, @id, zp:tldIdentifier, zp:status, zp:ianaRootZoneEntry, zp:ianaRootZoneType, zp:tldAgreementType, zp:restrictionClassification, zp:restrictionSource, zp:zoneProofClaimStatus, zp:zoneProofCoverageStatus, zp:pslCanonicalEntry, zp:pslSection, zp:namespaceRecordVersion, zp:namespaceRecordExpires

NameTypeNotes
@contextvalueRequired
@type"zp:NamespaceRecord"Required
@idstringRequired
zp:tldIdentifierstringRequired
zp:statusstringRequired
zp:tldUnicodeLabelstring | null
zp:ianaRootZoneEntrybooleanRequired
zp:ianaRootZoneTypestringRequired
zp:tldAgreementTypestringRequired
zp:tldAgreementICANNURLstring | null
zp:spec13Brandboolean
zp:spec12Communityboolean
zp:spec14Variantboolean
zp:spec13Statusstring | null
zp:brandRegistryOperatorstring | null
zp:brandTrademarkVerifiedboolean
zp:isIDNbooleanTrue for any IDN TLD regardless of agreement type.
zp:tldScriptstring | nullISO 15924 script code.
zp:tldLanguagestring | nullISO 639-3 language code.
zp:idnVariantOfstring | null
zp:idnEnabledboolean
zp:dnssecEnabledboolean
zp:tldDelegationDatestring | null
zp:restrictionClassificationstringRequired
zp:restrictionSourcestring | nullRequired
zp:restrictionWikipediaURLstring | null
zp:restrictionLastVerifiedstring
zp:registrationPolicystring
zp:registrationOpenToPublicboolean
zp:eligibilityRequirementstring | null
zp:registrantVerificationLevelstring
zp:registryOperatorstring | null
zp:registryOperatorURLstring | null
zp:registryOperatorTypestring | null
zp:associatedTradeAssociationsarray
zp:pslCanonicalEntrystringRequired
zp:pslSectionstringRequired
zp:pslURLstring
zp:pslDelegatedSLDsarray
zp:allowedTaxonomyFieldsarray
zp:credentialProfileobject
zp:domainVerificationAuthoritystring | null
zp:dotlessstring
zp:zoneTypestring
zp:tldManagerstring | null
zp:ianaAdministrativeContactNamestring | null
zp:ianaAdministrativeContactOrganizationstring | null
zp:ianaAdministrativeContactEmailstring | null
zp:ianaTechnicalContactNamestring | null
zp:ianaTechnicalContactOrganizationstring | null
zp:ianaTechnicalContactEmailstring | null
zp:translationstring | null
zp:agreementTypeLabelstring | null
zp:operatorNamestring | null
zp:agreementStatusstring | null
zp:agreementDatestring | null
zp:agreementUrlstring | null
zp:registrationServicesUrlstring | null
zp:whoisServerstring | null
zp:ianaUrlstring | null
zp:backendOperatorstring | null
zp:backendOperatorSlugstring | null
zp:rdapServerstring | null
zp:isSponsoredboolean
zp:isRestrictedboolean
zp:contractSignedDatestring | null
zp:delegatedDatestring | null
zp:lastUpdatedDatestring | null
zp:geographicScopestring | null
zp:audienceCategorystring | null
zp:targetAudiencestring | null
zp:verificationRequiredboolean
zp:levelstring | null
zp:parentTldstring | null
zp:privateNamespaceOperatorstring | null
zp:zoneProofClaimStatusstringRequired
zp:zoneProofCoverageStatusstringRequired
zp:registrantProfileCountinteger
zp:namespaceNotestring | null
zp:namespaceRecordVersionstringRequired
zp:namespaceRecordExpiresstringRequired

sldRecord

Required: zp:sld, zp:sldFQDN, zp:sldPolicy, zp:zoneProofClaimStatus, zp:zoneProofCoverageStatus

NameTypeNotes
zp:sldstringRequired
zp:sldFQDNstringRequired
zp:sldPolicystringRequired
zp:sldRestrictionAuthoritystring | null
zp:sldRestrictionTypestring | null
zp:sldRestrictedToEntitystring | null
zp:sldWikipediaSourcestring | null
zp:zoneProofClaimStatusstringRequired
zp:zoneProofCoverageStatusstringRequired
zp:sldRegistrantProfileCountinteger

JSON Schema

ZoneProof Entity Record v1

/schema/entity-record-v1.json

Verified organization or person records used by entity search and domain profiles.

Required@context, @type, @id, name, zp:status, zp:updatedAt
NameTypeNotes
@context"https://zoneproof.org/schema/context.jsonld"Required
@typePerson | OrganizationRequired
@idstringRequired
namestringRequired
alternateNamestring | array
industriesarray
servicesarray
specialtiesarray
languagesarray
zp:statusstringRequired
locationsarray
zp:sourcesource
zp:updatedAtstringRequired
Definitions

location

Required: @type, locationType, isPrimary, zp:updatedAt

NameTypeNotes
@type"PostalAddress"Required
locationTypestringRequired
isPrimarybooleanRequired
streetAddressstring
addressCountrystring
addressRegionstring
addressLocalitystring
postalCodestring
latitudenumber
longitudenumber
zp:sourcesource
zp:updatedAtstringRequired

source

Required: name, url, retrievedAt

NameTypeNotes
namestringRequired
urlstringRequired
versionstring
retrievedAtstringRequired

JSON Schema

ZoneProof Domain Record v1

/schema/domain-record-v1.json

Domain trust and web-identity records linked to namespaces and entities.

Required@context, @type, @id, zp:domain, zp:namespace, zp:domainRegistrationStatus, zp:isCredentialedDomain, zp:updatedAt
NameTypeNotes
@context"https://zoneproof.org/schema/context.jsonld"Required
@type"zp:DomainRecord"Required
@idstringRequired
zp:domainstringRequired
zp:namespacestringRequired
zp:domainRegistrationStatusstringRequired
zp:entitystring
zp:isCredentialedDomainbooleanRequired
verifiedBystring
zp:expiresDatestring
zp:sourcesource
zp:updatedAtstringRequired
Definitions

source

Required: name, url, retrievedAt

NameTypeNotes
namestringRequired
urlstringRequired
versionstring
retrievedAtstringRequired

JSON Schema

ZoneProof Credential Record v1

/schema/credential-record-v1.json

Current-state credential records for regulated entities and namespace-domain credentials.

Required@context, @type, @id, zp:credentialKey, zp:entity, zp:scope, zp:credentialType, zp:credentialStatus, zp:credentialAuthority, zp:credentialIdentifier, zp:credentialIdentifierType, zp:jurisdictionCountry, zp:jurisdictionRegion, zp:source, zp:updatedAt
NameTypeNotes
@context"https://zoneproof.org/schema/context.jsonld"Required
@type"zp:CredentialRecord"Required
@idstringRequired
zp:credentialKeystringRequired
zp:entitystringRequired
zp:domainstring
zp:namespacestring
zp:scopestringRequired
zp:credentialTypestringRequired
zp:credentialStatusstringRequired
zp:credentialIdentifierstringRequired
zp:credentialIdentifierTypestringRequired
zp:jurisdictionCountryarrayRequired
zp:jurisdictionRegionarrayRequired
zp:credentialAuthoritystringRequired
zp:credentialAuthorityUrlstring
zp:verificationMethodstring
zp:verificationSourcestring
zp:verifiedAtstring
zp:validFromstring
zp:validThroughstring
zp:sourceobjectRequired
zp:updatedAtstringRequired
Definitions

embeddedCredentialSummary

Required: zp:credentialType, zp:credentialStatus, zp:credentialAuthority, zp:credentialIdentifier, zp:credentialIdentifierType

NameTypeNotes
zp:credentialTypestringRequired
zp:credentialStatusstringRequired
zp:credentialAuthoritystringRequired
zp:credentialAuthorityUrlstring
zp:credentialIdentifierstringRequired
zp:credentialIdentifierTypestringRequired
zp:jurisdictionCountryarray
zp:jurisdictionRegionarray
zp:validFromstring
zp:validThroughstring