Open Protocol Specification

GL1: A Verifiable Digital Licensing Protocol for Gambling Regulation

White Paper, Schema & API Reference
Author: Ed Campbell, Security Consultant to GRAI
Version: 1.0
Date: April 2026
Status: Public Draft for Comment
Licence: CC BY 4.0
Part I

White Paper

GL1: A Verifiable Digital Licensing Protocol for Gambling Regulation

A. Abstract

This paper introduces GL1 (Gambling Licence version 1), an open protocol for machine-readable, cryptographically verifiable digital gambling licences. GL1 enables gambling regulators to issue digitally signed licence credentials that can be independently verified by any party — consumers, Internet Service Providers, payment processors, search engines, app stores, and other gambling regulators — without requiring trust in the operator or real-time access to the issuing authority.

GL1 defines three complementary verification mechanisms built entirely on existing open standards:

Together, these mechanisms provide defence-in-depth verification that is resistant to forgery, instantly revocable, and designed for adoption by any gambling regulatory authority worldwide.

The protocol addresses a fundamental gap in global gambling regulation: the absence of a standardised, machine-readable mechanism for distinguishing licensed from unlicensed operators. This gap undermines enforcement, enables illegal operators to reach consumers unchallenged, and makes it difficult for payment processors and ISPs to comply with their obligations.

GL1 is published as an open specification. GRAI intends to submit it for standardisation through the IETF and to register the gambling-licence well-known URI suffix with IANA.

1. The Problem

1.1 The Scale of Illegal Online Gambling

Online gambling is a global industry generating over €90 billion annually in gross gaming revenue. Alongside the regulated market, a substantial illegal market operates across jurisdictions, targeting consumers without the oversight, consumer protections, or tax contributions required by law.

Illegal gambling operators:

1.2 The Verification Gap

Despite decades of gambling regulation, there is no standardised, machine-readable protocol for verifying whether an online gambling operator holds a valid licence from a recognised regulatory authority.

Today, licence verification requires:

  1. A human visiting the regulator's website
  2. Manually searching a registry (if one exists)
  3. Interpreting the result (licence types, conditions, jurisdictional scope)
  4. Repeating this process for every regulator that may have issued a licence

This process is:

1.3 Who Needs Automated Verification?

StakeholderNeed
ConsumersKnow whether a gambling site is licensed before depositing money
ISPsDetermine which gambling domains to block under court orders or regulatory mandates
Payment processorsVerify licence status before processing gambling transactions
Card schemes (Visa, Mastercard)Ensure merchant accounts are held by licensed operators
Search enginesFilter or label gambling results based on licence status
App storesVerify licence before approving gambling app submissions
Advertising platformsOnly accept gambling ads from licensed operators
Other regulatorsVerify claims of licensure by operators in their jurisdiction
Law enforcementQuickly assess licensing status during investigations
Researchers / mediaAnalyse the licensed vs unlicensed gambling landscape

1.4 The Opportunity

The technical building blocks for solving this problem already exist. Email authentication solved an analogous problem — proving sender legitimacy — using DNS records (SPF, DKIM, DMARC). Certificate transparency solved the problem of verifiable issuance for TLS certificates. Web PKI provides a global trust framework for cryptographic identity.

GL1 applies these proven patterns to gambling licence verification, creating a protocol that is:

2. Current State of Licence Verification

2.1 Regulator Registries

Most gambling regulators maintain some form of public registry:

RegulatorRegistryMachine-ReadableCryptographicReal-Time
UK Gambling CommissionPublic register (web search)NoNoPartial
Malta Gaming AuthorityLicensee register (web search)NoNoPartial
Gibraltar Gambling CommissionerLicensee list (PDF/web)NoNoNo
Isle of Man GSCLicensee list (web)NoNoNo
Alderney GCCLicensee directory (web)NoNoNo
Sweden (Spelinspektionen)Licence register (web)NoNoPartial
Netherlands (KSA)Licence register (web)NoNoYes

Key Observation

No regulator currently provides a machine-readable, cryptographically signed licence verification mechanism. All rely on human-readable web pages that cannot be programmatically verified at scale.

2.2 Operator Self-Assertion

Licensed operators typically display licence badges or seals on their websites. These are:

2.3 Analogous Solved Problems

ProblemSolutionMechanism
Email sender legitimacySPF + DKIM + DMARCDNS TXT records + cryptographic signatures
Website identityWeb PKI (X.509 certificates)Certificate Authorities + TLS
Domain control verificationACME (Let's Encrypt).well-known URI challenges
Certificate issuance transparencyCertificate Transparency (CT)Append-only public logs
Code signing authenticityCode signing certificatesPKI + signature verification
API authenticationOAuth 2.0 / OpenID Connect.well-known discovery + tokens

GL1 draws directly from these proven approaches.

3. Design Principles

GL1 is designed around seven core principles:

3.1 Open Standards Only

GL1 uses exclusively open, royalty-free standards. No proprietary protocols, formats, or algorithms. Every component is defined by an existing RFC or open specification. GL1 itself is published as an open specification and will be submitted for IETF standardisation.

3.2 Authority-Issued, Operator-Hosted

Licence credentials are generated and signed by the regulatory authority, not the operator. The operator hosts the signed credential but cannot modify it. This ensures that the authority retains control over licence assertions while distributing verification load.

3.3 Offline-First Verification

The primary verification mechanisms (.well-known file and DNS record) do not require real-time connectivity to the issuing authority. A verifier can validate the cryptographic signature against the authority's published public key without contacting the authority's servers. The verification API provides optional real-time confirmation.

3.4 Defence in Depth

Three independent mechanisms provide layered verification:

Each mechanism can function independently. Together, they provide redundancy and resistance to evasion.

3.5 Instant Revocability

When a licence is suspended or revoked, the change must propagate to all verification channels within a bounded time:

3.6 Multi-Authority by Design

GL1 is not a single-authority protocol. Any gambling regulatory authority can operate as a GL1 issuer using its own signing keys and verification infrastructure. The protocol includes a discovery mechanism that allows verifiers to resolve the issuing authority for any licence credential and obtain the correct public key for verification.

3.7 Minimal Operator Burden

Operators are required to:

  1. Host a static file at a well-known URI (trivial for any web server)
  2. Publish a DNS TXT record (trivial for any DNS configuration)
  3. Update both when the authority issues new credentials (automatable)

No specialised software, hardware, or expertise is required.

4. Protocol Overview

4.1 Participants

RoleDescription
Issuing AuthorityGambling regulatory body that issues licences (e.g., GRAI, UKGC, MGA)
OperatorLicensed gambling operator that hosts the credential
VerifierAny party that checks licence validity (ISP, payment processor, consumer, browser, regulator)

4.2 Credential Lifecycle

1. LICENCE ISSUED
   Authority issues gambling licence to operator
                    |
                    v
2. CREDENTIAL GENERATED
   Authority generates signed GL1 credential
   (JSON document + DNS record content)
                    |
                    v
3. CREDENTIAL DISTRIBUTED
   Authority transmits credential to operator
   via secure channel (API, portal, email)
                    |
                    v
4. CREDENTIAL HOSTED
   Operator publishes:
   - JSON file at /.well-known/gambling-licence
   - DNS TXT record at _gambling-licence.{domain}
                    |
                    v
5. CREDENTIAL VERIFIED
   Verifier checks one or more mechanisms:
   - Fetch .well-known file --> verify signature
   - Resolve DNS TXT record --> verify signature
   - Call verification API --> get authoritative status
                    |
                    v
6. CREDENTIAL UPDATED (on change)
   Authority issues updated credential when:
   - Licence renewed
   - Conditions changed
   - Licence suspended or revoked
   Operator updates hosted credential within SLA

4.3 Trust Model

                 +------------------+
                 |   GL1 Trust      |
                 |   Directory      |
                 | (gl1.gamblinglicence.org)  |
                 +--------+---------+
                          |  Lists known authorities
                          |  and their public keys
                 +--------+--------+
                 |        |        |
           +-----+--+ +--+---+ +--+------+
           |  GRAI  | | UKGC | |  MGA    |   ... other authorities
           |(issuer)| |(issuer)| |(issuer)|
           +---+----+ +--+---+ +---+-----+
               |         |         |
               |  Signs credentials for their licensees
               |         |         |
          +----+---+ +---+--+ +---+--+
          |Operator| |Op. B | |Op. C |
          |   A    | |      | |      |
          +----+---+ +------+ +------+
               |
               |  Hosts credential at .well-known + DNS
               |
          +----+---+
          |Verifier|  (ISP, payment processor, consumer, etc.)
          +--------+
               Fetches credential --> resolves authority -->
               obtains authority public key --> verifies signature

5. Mechanism 1: Well-Known URI

5.1 Endpoint

Licensed operators MUST serve a GL1 licence credential at:

https://{operator-domain}/.well-known/gambling-licence

This follows the Well-Known URIs framework defined in RFC 8615.

5.2 Document Format

The document is a JSON object with three top-level members:

MemberTypeDescription
gl1stringProtocol version identifier. MUST be "1.0"
licenceobjectLicence details (see 5.3)
signatureobjectCryptographic signature (see Section 8)

5.3 Licence Object

JSON
{
  "gl1": "1.0",
  "licence": {
    "id": "GRL-2026-001234",
    "type": "remote_gambling",
    "activities": ["sports_betting", "casino", "poker"],
    "operator": {
      "name": "Example Gambling Ltd",
      "trading_as": "ExampleBet",
      "registration": "IE-123456",
      "country": "IE"
    },
    "authority": {
      "id": "GRAI",
      "name": "Gambling Regulatory Authority of Ireland",
      "country": "IE",
      "uri": "https://www.grai.ie",
      "verify": "https://verify.grai.ie/api/v1"
    },
    "scope": {
      "territories": ["IE"],
      "domains": ["examplebet.ie", "examplebet.com"],
      "apps": [
        {"platform": "ios", "id": "com.examplebet.app"},
        {"platform": "android", "id": "com.examplebet.app"}
      ]
    },
    "validity": {
      "issued": "2026-04-01",
      "expires": "2027-03-31"
    },
    "status": "active",
    "conditions": [],
    "updated": "2026-04-01T00:00:00Z"
  },
  "signature": {
    "alg": "ES384",
    "kid": "grai-licence-signing-2026-01",
    "x5u": "https://pki.grai.ie/certs/licence-signing-2026.pem",
    "value": "<base64url-encoded signature>"
  }
}

5.4 Field Definitions

licence.id — The unique licence identifier assigned by the authority. Format is authority-defined. MUST be globally unique when combined with authority.id.

licence.type — The licence type. Recommended values: remote_gambling, retail_gambling, betting, casino, lottery, bingo, poker, gaming_machine, software_supplier, testing_laboratory. Authorities MAY define additional types.

licence.activities — Array of permitted gambling activities. Allows granular verification of whether a specific activity is licensed.

licence.authority.id — Short identifier for the issuing authority. MUST match the authority's entry in the GL1 Trust Directory (see Section 10).

licence.authority.verify — Base URI for the authority's GL1 verification API. Enables verifiers to perform real-time checks.

licence.scope.territories — ISO 3166-1 alpha-2 country codes where the licence is valid.

licence.scope.domains — All domains authorised to operate under this licence. The .well-known file MUST be served from each listed domain.

licence.status — Current licence status. MUST be one of: active, suspended, revoked, expired, surrendered.

5.5 Serving Requirements

RequirementValue
ProtocolHTTPS (TLS 1.2+) required
Content-Typeapplication/json
Cache-Controlmax-age=3600 (1 hour maximum)
CORSAccess-Control-Allow-Origin: * (to enable browser-based verification)
AvailabilityMUST be served from every domain in scope.domains
ModificationOperators MUST NOT modify the document content
Update SLAUpdated credential MUST be deployed within 4 hours of receipt from authority

6. Mechanism 2: DNS TXT Record

6.1 Record Location

Operators MUST publish a DNS TXT record at:

_gambling-licence.{operator-domain}.  IN  TXT  "<GL1 record>"

6.2 Record Format

The GL1 DNS record follows a tag-value format inspired by SPF (RFC 7208) and DMARC (RFC 7489):

v=GL1; a=GRAI; id=GRL-2026-001234; t=remote_gambling; s=active; e=2027-03-31; u=https://verify.grai.ie/api/v1/licence/GRL-2026-001234; sig=<base64url>

6.3 Field Definitions

TagRequiredDescriptionExample
vMUSTProtocol versionGL1
aMUSTAuthority identifierGRAI
idMUSTLicence identifierGRL-2026-001234
tMUSTLicence typeremote_gambling
sMUSTStatusactive
eMUSTExpiry date (ISO 8601)2027-03-31
uMUSTVerification URIhttps://verify.grai.ie/...
sigMUSTSignature (see Section 8)<base64url>

6.4 Signature Input

The signature is computed over the concatenation of the non-signature fields in the order they appear in the record, separated by semicolons:

v=GL1;a=GRAI;id=GRL-2026-001234;t=remote_gambling;s=active;e=2027-03-31;u=https://verify.grai.ie/api/v1/licence/GRL-2026-001234

6.5 DNS Configuration Requirements

RequirementValue
TTL3600 seconds (1 hour)
DNSSECSTRONGLY RECOMMENDED
Update SLARecord MUST be updated within 4 hours of credential change
Multiple recordsIf operator holds licences from multiple authorities, each publishes a separate TXT record

6.6 Advantages of DNS-Layer Verification

7. Mechanism 3: Verification API

7.1 Purpose

The verification API is the authoritative, real-time source of licence status. While the .well-known file and DNS record provide offline-verifiable credentials, the API provides:

7.2 Endpoints

Each issuing authority operates its own API at the base URI specified in authority.verify.

Licence verification:

GET  {authority.verify}/licence/{licence-id}

Domain lookup:

GET  {authority.verify}/domain/{domain-name}

Bulk verification:

POST {authority.verify}/verify/bulk
Content-Type: application/json

{"domains": ["domain1.com", "domain2.com", ...]}

Blacklist:

GET  {authority.verify}/blacklist
GET  {authority.verify}/blacklist?since={ISO-date}

Authority metadata (discovery):

GET  {authority.verify}/.well-known/gl1-authority

Returns the authority's public keys, supported algorithms, contact information, and federation membership.

7.3 Response Format

JSON
{
  "gl1": "1.0",
  "licence": {
    "id": "GRL-2026-001234",
    "status": "active",
    "type": "remote_gambling",
    "operator": {
      "name": "Example Gambling Ltd",
      "trading_as": "ExampleBet"
    },
    "validity": {
      "issued": "2026-04-01",
      "expires": "2027-03-31"
    },
    "domains": ["examplebet.ie", "examplebet.com"],
    "enforcement_actions": [],
    "last_updated": "2026-04-01T00:00:00Z"
  },
  "authority": {
    "id": "GRAI",
    "name": "Gambling Regulatory Authority of Ireland"
  }
}

7.4 Authentication Tiers

TierAuthenticationRate LimitUse Case
PublicNone100 req/hourConsumer verification
RegisteredAPI key10,000 req/hourDevelopers, researchers
PartnermTLS certificate100,000 req/hourISPs, payment processors
RegulatormTLS + MOUUnlimitedPeer regulatory authorities

7.5 Data Feeds

For high-volume consumers, authorities SHOULD provide bulk data feeds:

FeedFormatFrequency
Full licence listJSON, CSVDaily
Delta updatesJSON (webhook or poll)Hourly
BlacklistJSON, CSV, RPZReal-time (webhook) + hourly batch
DNS blocking listRPZ zone fileHourly

8. Cryptographic Framework

8.1 Signature Algorithm

GL1 uses ECDSA with the P-384 curve (ES384), as defined in:

Rationale

ES384 provides 192-bit security strength with compact signatures (96 bytes). It is widely supported in modern cryptographic libraries, endorsed by NIST, and used extensively in JWT/JWS ecosystems. It is the same algorithm class used by the European Digital Identity framework (eIDAS 2.0).

8.2 Signature Computation — Well-Known Document

  1. Extract the licence object from the GL1 document
  2. Canonicalise the JSON using JCS (RFC 8785 — JSON Canonicalization Scheme)
  3. Compute the SHA-384 hash of the canonical bytes
  4. Sign the hash using the authority's private key (ECDSA P-384)
  5. Encode the signature as base64url (RFC 4648 Section 5)
  6. Place in signature.value

8.3 Signature Computation — DNS Record

  1. Concatenate the non-signature fields in record order, semicolon-separated
  2. UTF-8 encode the concatenated string
  3. Compute SHA-384 hash
  4. Sign with ECDSA P-384
  5. Encode as base64url
  6. Place in sig field

8.4 Key Management

RequirementSpecification
Key storageHardware Security Module (HSM) — FIPS 140-2 Level 3 or equivalent
Key rotationSigning keys SHOULD be rotated annually
Key identifiersEach key has a unique kid (key identifier)
Key publicationPublic keys published at {authority.verify}/.well-known/gl1-authority
Key historyPrevious public keys MUST remain available for verification of unexpired credentials
Compromise responseCompromised key revocation and re-issuance of all affected credentials

8.5 Verification Procedure

1. Obtain GL1 credential (from .well-known, DNS, or API)
2. Extract authority identifier (authority.id or 'a' tag)
3. Resolve authority's public keys:
   a. Check local cache
   b. Fetch from GL1 Trust Directory (gl1.gamblinglicence.org)
   c. Or fetch from authority's .well-known/gl1-authority
4. Select the correct key using 'kid' identifier
5. Reconstruct the signed content:
   - For .well-known: JCS-canonicalised licence object
   - For DNS: concatenated non-sig fields
6. Verify ECDSA-P384 signature
7. Check licence status is "active"
8. Check expiry date is in the future
9. Optionally: call verification API for real-time confirmation

8.6 Post-Quantum Cryptographic Agility

GL1's initial algorithm (ECDSA P-384) is vulnerable to quantum computing attacks. Shor's algorithm, executed on a sufficiently capable quantum computer, breaks all elliptic curve cryptography. GL1 is designed as a long-lived international standard and must prepare for the post-quantum era.

The Quantum Threat to GL1

A quantum computer running Shor's algorithm could forge GL1 credential signatures, allowing unlicensed operators to create fake licence credentials indistinguishable from genuine ones. While such computers don't yet exist, GL1's standardisation timeline (targeting RFC by 2028) means the protocol will still be in active use when quantum computers are expected to become cryptographically relevant (2030–2035+).

NIST Post-Quantum Signature Standards (Finalized August 2024)

StandardAlgorithmSignature SizePublic KeySecurity LevelGL1 Role
ECDSA P-384 (current)ES38496 bytes48 bytes192-bit classicalGL1 v1.0 default
FIPS 204ML-DSA-65 (Dilithium)3,309 bytes1,952 bytesNIST Level 3Primary PQC candidate
FIPS 204ML-DSA-87 (Dilithium)4,627 bytes2,592 bytesNIST Level 5High-security option
FIPS 205SLH-DSA (SPHINCS+)7,856+ bytes32 bytesNIST Level 1–5Backup algorithm (different math basis)
Draft FIPS 206FN-DSA-512 (FALCON)~666 bytes897 bytesNIST Level 1Compact option (complex implementation)

Impact on GL1 Mechanisms

MechanismPQC ImpactMitigation
.well-known JSON No issue ML-DSA-65 sig (~4,412 chars base64url) fits easily in JSON Direct algorithm substitution in signature.alg
DNS TXT record Problem PQC signatures exceed DNS TXT record limits (~450 bytes) New sig-uri field pointing to full signature at API; sig-hash for integrity check
Verification API No issue No size constraint on API responses Direct algorithm substitution
X.509 certificates Manageable Larger certificates; standards in progress Follow IETF post-quantum certificate work

Algorithm Agility (Built Into GL1 v1.0)

GL1 is designed with algorithm agility from day one:

Hybrid Signatures (Transition Period)

During transition, GL1 supports dual signatures — classical + post-quantum simultaneously:

JSON { "signature": { "alg": "ES384+ML-DSA-65", "kid": "grai-hybrid-2030-01", "classical": { "alg": "ES384", "value": "<base64url ES384 signature>" }, "pqc": { "alg": "ML-DSA-65", "value": "<base64url ML-DSA-65 signature>" } } }

Verification rule: valid if either signature verifies (backwards compatibility), but fully verified only if both verify. If either algorithm is broken, the other provides protection.

DNS Mechanism — Post-Quantum Adaptation

When PQC signatures exceed DNS TXT limits, the record adapts with new fields:

DNS _gambling-licence.example.com. IN TXT "v=GL1;a=GRAI;id=GRL-2026-001234;t=remote_gambling;s=active;e=2027-03-31;u=https://verify.grai.ie/...;sig-alg=ML-DSA-65;sig-hash=<SHA-256 of full sig>;sig-uri=https://verify.grai.ie/.../signature"
FieldPurpose
sig-algIdentifies the PQC algorithm used
sig-hashSHA-256 hash of the full signature (integrity check against API-fetched sig)
sig-uriURI where the full PQC signature can be fetched

This preserves DNS utility for quick status checks and bulk scanning while delegating full PQC verification to the API layer.

Migration Timeline

PhasePeriodAction
Prepare2026–2028Deploy GL1 with ES384. Implement algorithm agility in all GL1 software. Monitor NIST PQC maturity and HSM vendor support.
Test2028–2030Pilot hybrid signatures (ES384 + ML-DSA-65) with willing operators and verifiers. Validate DNS adaptation.
Transition2030–2032Mandate hybrid signatures for all new credentials. Encourage verifiers to implement PQC verification.
PQC-Only2032+Deprecate ES384-only credentials. Require PQC signatures (ML-DSA-65 or successor).

Design Decision

By building algorithm agility into GL1 v1.0 and defining the hybrid signature format now, the protocol can migrate to post-quantum cryptography without a breaking protocol version change. Verifiers implementing GL1 today are already prepared for the quantum transition.

9. Revocation Model

9.1 Revocation Channels

When a licence is suspended or revoked, the change propagates through all three mechanisms:

ChannelPropagation TimeMechanism
Verification APIImmediateAuthority updates database
.well-known file4 hoursAuthority issues new credential; operator deploys
DNS TXT record4 hoursAuthority issues new record; operator updates DNS

9.2 Failsafe Behaviour

If the .well-known file or DNS record shows "status": "active" but the credential is stale (close to or past the updated timestamp + SLA), verifiers SHOULD fall back to the verification API for confirmation.

If the API is unreachable, verifiers SHOULD treat credentials with valid signatures and unexpired dates as provisionally valid, but flag for re-verification.

9.3 Operator Non-Compliance

If an operator fails to update their hosted credential after a suspension or revocation:

  1. The verification API returns the true status (suspended/revoked)
  2. The authority publishes the operator on its blacklist feed
  3. The authority notifies ISPs and payment processors via data feeds
  4. The stale .well-known file will eventually expire (based on validity.expires)
  5. The authority may take further enforcement action for non-compliance with hosting requirements

9.4 Short-Lived Credentials (Optional)

Authorities MAY issue short-lived credentials (e.g., 24-hour validity) that require frequent renewal. This reduces the revocation window but increases operational burden. Recommended for high-risk operators or during enforcement proceedings.

10. Multi-Authority Federation

10.1 GL1 Trust Directory

A critical component of GL1 is the Trust Directory — a registry of recognised gambling regulatory authorities and their public keys. This enables verifiers to resolve the authority for any credential and obtain the correct verification key.

Location: https://gl1.gamblinglicence.org (proposed)

Governance: Operated by an independent body or consortium of founding authorities.

Content:

JSON
{
  "gl1": "1.0",
  "directory_version": "2026-04-01",
  "authorities": [
    {
      "id": "GRAI",
      "name": "Gambling Regulatory Authority of Ireland",
      "country": "IE",
      "uri": "https://www.grai.ie",
      "verify": "https://verify.grai.ie/api/v1",
      "keys_uri": "https://verify.grai.ie/.well-known/gl1-authority",
      "status": "active",
      "joined": "2026-04-01"
    },
    {
      "id": "UKGC",
      "name": "UK Gambling Commission",
      "country": "GB",
      "verify": "https://verify.gamblingcommission.gov.uk/api/v1",
      "keys_uri": "https://verify.gamblingcommission.gov.uk/.well-known/gl1-authority",
      "status": "active",
      "joined": "2026-09-01"
    }
  ]
}

10.2 Authority Onboarding

To join the GL1 federation, an authority must:

  1. Be a recognised governmental gambling regulatory body
  2. Generate signing keys in an HSM
  3. Publish public keys at /.well-known/gl1-authority
  4. Operate a verification API conforming to GL1 specification
  5. Submit application to Trust Directory governance body
  6. Undergo peer review by existing federation members
  7. Be added to the Trust Directory

10.3 Cross-Border Verification

When a verifier encounters a credential from an unfamiliar authority:

  1. Extract authority.id from the credential
  2. Look up the authority in the GL1 Trust Directory
  3. Fetch the authority's public keys
  4. Verify the credential signature
  5. The verifier now has cryptographic proof that the authority issued this licence

This enables a payment processor in Ireland to verify a Malta Gaming Authority licence, or a UK ISP to verify a GRAI licence — without any prior relationship with the issuing authority.

10.4 Mutual Recognition

Important Distinction

GL1 is a verification protocol, not a mutual recognition agreement. Verifying that an operator holds a valid MGA licence does not mean Ireland recognises that licence for Irish regulatory purposes. Mutual recognition remains a policy decision for each jurisdiction. GL1 provides the technical infrastructure to support whatever policy framework jurisdictions adopt.

11. Deployment Model

11.1 Phase 1: Single Authority (National)

A single authority (e.g., GRAI) deploys GL1 for its licensees:

11.2 Phase 2: Regional Federation (European)

Multiple European authorities adopt GL1:

11.3 Phase 3: Global Federation

IAGR coordinates global adoption:

12. Security Analysis

12.1 Threat Model

ThreatAttackMitigation
Credential forgeryUnlicensed operator creates fake GL1 credentialCryptographic signature verification against authority's public key in Trust Directory
Key compromiseAuthority's signing key stolenHSM protection (FIPS 140-2 L3); key rotation; compromise response procedure
Replay attackAttacker re-uses expired credentialExpiry date checking; real-time API verification
Credential tamperingOperator modifies signed credentialSignature verification detects any modification
DNS spoofingAttacker forges DNS TXT recordDNSSEC validation; signature verification independent of DNS integrity
Man-in-the-middleAttacker intercepts .well-known fetchHTTPS enforcement; optional certificate pinning
Trust Directory compromiseAttacker adds rogue authority to directoryGovernance controls; peer review; signing of directory entries
Revocation delaySuspended operator's credential still shows activeShort cache TTLs; API fallback; short-lived credentials option
Denial of serviceDDoS against verification APICDN protection; offline-first design (sig verification works without API)
Domain squattingAttacker registers similar domain with GL1 recordScope checking: credential's domains list must include the serving domain

12.2 Security Properties

PropertyAchieved By
AuthenticityECDSA signature by authority's HSM-protected key
IntegrityAny modification invalidates signature
Non-repudiationAuthority cannot deny having issued a credential (signed with their key)
FreshnessExpiry dates, update timestamps, API real-time verification
RevocabilityMulti-channel revocation with bounded propagation time
DecentralisationAny authority can issue; any party can verify; no single point of failure

13. Privacy Considerations

13.1 Data Minimisation

GL1 credentials contain only information that is already publicly associated with a gambling licence:

No personal data about consumers, employees, or beneficial owners is included in GL1 credentials.

13.2 Verification Privacy

The .well-known and DNS mechanisms provide verifier-private verification: the verifier fetches the credential from the operator's infrastructure or public DNS, not from the authority. The authority does not learn who is verifying which licence.

The verification API does reveal verification activity to the authority. Authorities SHOULD:

13.3 GDPR Compliance

GL1 credentials contain no personal data as defined by GDPR Article 4(1). The operator and company information in credentials is corporate data already in the public domain. No GDPR data subject rights apply to GL1 credential contents.

14. Economic Analysis

14.1 Cost to Implement

ParticipantEstimated CostFrequency
Issuing authorityAPI development, key management, credential generation infrastructureOne-time + annual operations
Licensed operatorHost a static file; publish a DNS recordNegligible marginal cost
ISPIntegrate GL1 check into DNS resolver or proxyOne-time integration
Payment processorIntegrate GL1 check into merchant onboarding and transaction processingOne-time integration
Trust DirectoryOperate a simple, highly-available JSON endpointAnnual operations

14.2 Value Delivered

BeneficiaryValue
ConsumersInstant, reliable verification of licence status before depositing funds
Licensed operatorsClear differentiation from unlicensed competitors; reduced regulatory friction
RegulatorsScalable enforcement; automated detection of unlicensed operators
ISPsAutomated compliance with blocking obligations; clear, machine-readable blocking criteria
Payment processorsAutomated due diligence; reduced regulatory risk
Tax authoritiesBetter identification of taxable gambling activity

15. Comparison with Existing Approaches

ApproachMachine-ReadableCryptographicReal-TimeMulti-AuthorityOpen Standard
Regulator web registryNoNoPartialNoN/A
Operator self-assertion (badges)NoNoNoNoN/A
Clickable badge → registryPartialNoPartialNoN/A
Blockchain-based licenceYesYesDependsPossibleVaries
GL1YesYesYesYesYes

15.1 Why Not Blockchain?

Blockchain-based approaches have been proposed for various credential verification use cases. GL1 does not use blockchain because:

16. Standardisation Pathway

16.1 Immediate Actions

  1. Publish this white paper for public comment
  2. Publish the GL1 specification as an open document under Creative Commons Attribution 4.0 (CC BY 4.0)
  3. Implement reference deployment (GRAI as first issuer)
  4. Gather operational experience over 12 months

16.2 IETF Internet-Draft

  1. Submit Internet-Draft: "The GL1 Gambling Licence Verification Protocol"
  2. Register gambling-licence as a well-known URI suffix with IANA (per RFC 8615 Section 3.1)
  3. Progress through IETF review (likely Applications and Real-Time Area — ART)
  4. Target: Proposed Standard RFC

16.3 European Harmonisation

  1. Present to GREF for European regulatory forum discussion
  2. Propose as CEN/CENELEC technical specification for EU gambling regulation
  3. Integrate with EU Digital Identity framework (eIDAS 2.0) where applicable

16.4 International Adoption

  1. Present to IAGR annual conference
  2. Establish GL1 Trust Directory governance with founding authorities
  3. Coordinate with IMGL on legal framework implications

17. Call to Action

GL1 is a practical, implementable solution to a real and growing problem. We invite:

Gambling regulators worldwide

Licensed gambling operators

ISPs and payment processors

Standards bodies (IETF, CEN/CENELEC)

Researchers and the public

Author

Ed Campbell
Security Consultant to the Gambling Regulatory Authority of Ireland (GRAI)
Email: [email protected]

GL1 was conceived, designed, and authored by Ed Campbell. The protocol concept — applying .well-known URI standards (RFC 8615), DNS TXT record verification, and PKI-based cryptographic licensing to gambling regulation — is Campbell's original work, developed under his consultancy engagement with GRAI.

Intellectual Property: The GL1 protocol concept and design are the original work of Ed Campbell. IP ownership and licensing terms between Campbell and GRAI are governed by the consultancy engagement. This white paper is published under CC BY 4.0 with attribution to Ed Campbell.

Commissioned by: Gambling Regulatory Authority of Ireland (GRAI)
Website: https://www.grai.ie

GL1 Specification Repository
[To be established — proposed: gl1-protocol organisation on GitHub]

References

  1. RFC 8615 — Well-Known Uniform Resource Identifiers (URIs). M. Nottingham. May 2019.
  2. RFC 8785 — JSON Canonicalization Scheme (JCS). A. Rundgren, B. Jordan, S. Erdtman. June 2020.
  3. RFC 7208 — Sender Policy Framework (SPF). S. Kitterman. April 2014.
  4. RFC 7489 — Domain-based Message Authentication, Reporting, and Conformance (DMARC). M. Kucherawy, E. Zwicky. March 2015.
  5. RFC 6960 — Online Certificate Status Protocol (OCSP). S. Santesson et al. June 2013.
  6. RFC 5280 — Internet X.509 PKI Certificate and CRL Profile. D. Cooper et al. May 2008.
  7. RFC 4648 — The Base16, Base32, and Base64 Data Encodings. S. Josefsson. October 2006.
  8. RFC 6979 — Deterministic Usage of DSA and ECDSA. T. Pornin. August 2013.
  9. RFC 7518 — JSON Web Algorithms (JWA). M. Jones. May 2015.
  10. FIPS 186-4 — Digital Signature Standard (DSS). NIST. July 2013.
  11. Gambling Regulation Act 2024 (Ireland).
  12. Directive (EU) 2022/2555 — NIS2 Directive.
  13. Regulation (EU) 2024/1183 — eIDAS 2.0.
Part II

Intellectual Property & Patent Strategy

Defensive patents, open pledge, and licensing framework for GL1

II. Intellectual Property & Patent Strategy

1. Patent Considerations for GL1

GL1 is an open protocol designed for global adoption by gambling regulators, operators, and intermediaries. The IP strategy must balance two objectives:

The combination of specific GL1 innovations — the three-mechanism defence-in-depth approach to licence verification (well-known URI, DNS TXT, and API), the authority-issued/operator-hosted credential model, and the federated Trust Directory for multi-authority key discovery — may be patentable as a system and method. If GRAI does not secure defensive protection, a commercial entity could potentially patent aspects of the protocol and impede adoption.

2. Options Analysis

OptionDescriptionProsCons
A. No patent Publish the specification and rely on prior art to prevent others from patenting Simplest approach; no filing costs; clear public domain intent Prior art defence is reactive, not proactive; a well-resourced entity could still file and force GRAI to challenge; prior art must be proven in each jurisdiction
B. Defensive patent only File patent application, but never assert it against implementers; hold it solely to block others Strongest legal protection against third-party patent trolls; clear ownership; can be used to invalidate competing patents Filing and maintenance costs; must be accompanied by a clear pledge to prevent chilling effect on adoption
C. Defensive patent + irrevocable royalty-free pledge File patent, then immediately publish an irrevocable, royalty-free patent pledge granting all parties the right to implement GL1 Maximum legal protection against trolls; irrevocable pledge provides implementer confidence; well-established model (Google, Microsoft, IBM use this for web standards) Filing and maintenance costs; requires careful drafting of pledge

3. Recommendation: Option C — Defensive Patent with Irrevocable Royalty-Free Pledge

Recommended Approach

A defensive patent should be filed covering the GL1 protocol, with an irrevocable, royalty-free patent pledge published immediately. This is the approach used by major technology companies when contributing protocols to open standards.

3.1 Inventor and Ownership

The GL1 protocol was conceived and designed by Ed Campbell, security consultant to GRAI. As the inventor, Campbell is named on any patent filing. The ownership and licensing arrangements between Campbell and GRAI are governed by the terms of the consultancy engagement.

Options for patent ownership structure:

Regardless of ownership structure, Campbell must be named as inventor on the patent filing, as this is a legal requirement in all major patent jurisdictions.

3.2 Rationale for Defensive Patent

Filing a defensive patent serves the public interest because:

3.3 Precedent: Industry Patent Pledges for Open Standards

OrganisationProtocol/StandardPatent Approach
GoogleVP8/VP9 video codecsDefensive patent + irrevocable royalty-free licence
MicrosoftC# / .NET / Open XMLOpen Specification Promise (irrevocable, royalty-free)
IBM500+ patents (2005 pledge)Irrevocable royalty-free pledge for open source / open standards
TeslaElectric vehicle patents"Good faith" open patent pledge
W3CAll W3C RecommendationsRoyalty-free patent policy required for all contributors
IETFInternet standardsRFC 8179: reasonable and non-discriminatory (RAND) or royalty-free

3.4 Proposed Patent Pledge Language

GL1 Patent Pledge (Draft)

The holder(s) of [Patent No. TBD] covering the GL1 Gambling Licence Verification Protocol, invented by Ed Campbell, hereby grant an irrevocable, worldwide, royalty-free, non-exclusive licence to any person or entity to make, use, sell, offer to sell, import, and otherwise exploit any implementation of the GL1 protocol as defined in the GL1 Specification (version 1.0 and all subsequent versions published at gamblinglicence.org).

This pledge is irrevocable. It applies to all current and future claims in the GL1 Patent that are necessarily infringed by a conformant implementation of the GL1 Specification. This pledge is not contingent on reciprocity. It survives any transfer, assignment, or change of ownership of the patent.

This pledge does not extend to implementations that are not conformant with the GL1 Specification, nor to patent claims that are not necessarily infringed by a conformant implementation.

3.5 Filing Jurisdiction

The patent should be filed in:

3.6 Estimated Costs

ItemEstimated CostFrequency
Patent drafting (specialist IP counsel)€15,000 – €25,000One-time
EPO filing and prosecution€8,000 – €15,000One-time
USPTO filing and prosecution€10,000 – €20,000One-time
PCT application (optional)€5,000 – €10,000One-time
Annual maintenance fees (EPO + USPTO)€3,000 – €5,000Annual
Total (Year 1)€38,000 – €70,000

These costs are modest relative to the value of protecting an international enforcement protocol from encumbrance.

4. Specification Licensing

ArtefactLicenceRationale
GL1 White PaperCC BY 4.0Allows sharing, adaptation, and commercial use with attribution
GL1 SpecificationCC BY 4.0Consistent with IETF and W3C practice for specification documents
JSON Schema (gl1-schema.json)CC BY 4.0Schema definitions should be freely reusable
OpenAPI Specification (gl1-openapi.yaml)CC BY 4.0API definitions should be freely reusable
Reference implementations (code)Apache 2.0 or MITPermissive open-source licences; Apache 2.0 includes explicit patent grant
Validation librariesApache 2.0Apache 2.0 preferred due to patent grant clause
Trust Directory softwareApache 2.0Operational infrastructure should be freely deployable

Note on Apache 2.0 vs MIT

For reference implementations, Apache 2.0 is preferred over MIT because Apache 2.0 includes an explicit patent grant (Section 3) that provides additional legal clarity for implementers. This is particularly important for GL1, where the defensive patent strategy means there are known patents that implementers need assurance about.

5. Timeline

ActionTimelineOwner
Engage IP counsel with standards experienceQ2 2026GRAI Legal / CISO
Draft patent applicationQ2–Q3 2026IP Counsel
File EPO and USPTO applicationsQ3 2026IP Counsel
Publish irrevocable patent pledgeSimultaneously with filingGRAI CEO
Notify IETF of patent pledge (per RFC 8179)With Internet-Draft submissionGRAI Technical
File PCT (if additional jurisdictions needed)Within 12 months of priority filingIP Counsel
Part III

JSON Schema Reference

GL1 Gambling Licence Credential — Complete Field Definitions

III. GL1 Credential JSON Schema

The GL1 credential schema is published at:
https://verify.grai.ie/schemas/gl1/v1/credential.json

Schema draft: JSON Schema 2020-12. The credential is a JSON object with three required top-level properties. All fields are fully defined below.

Top-Level Object

PropertyTypeRequiredDescription
gl1string (const: "1.0")YesGL1 protocol version. MUST be "1.0" for this specification.
licenceLicence objectYesThe licence details. This object is the input to the signature computation (canonicalised via JCS/RFC 8785).
signatureSignature objectYesCryptographic signature over the licence object.

additionalProperties: false — no other top-level properties are permitted.

Licence Object

The core licence details. All required fields MUST be present.

licence.id string REQUIRED
Unique licence identifier assigned by the Issuing Authority. Globally unique when combined with authority.id.
Example: "GRL-2026-001234"
licence.type string (enum) REQUIRED
Licence type. Authorities MAY define additional types beyond those listed.
remote_gamblingretail_gamblingbettingcasinolotterybingopokergaming_machinesoftware_suppliertesting_laboratory
licence.activities array of string OPTIONAL
Specific permitted gambling activities under this licence.
Example: ["sports_betting", "casino", "poker"]
licence.operator Operator object REQUIRED
Information about the licensed operator (see Operator Object below).
licence.authority Authority object REQUIRED
Information about the Issuing Authority (see Authority Object below).
licence.scope Scope object REQUIRED
The territorial and domain scope of the licence (see Scope Object below).
licence.validity Validity object REQUIRED
Licence validity period (see Validity Object below).
licence.status string (enum) REQUIRED
Current licence status.
activesuspendedrevokedexpiredsurrendered
licence.conditions array of string OPTIONAL
Notable licence conditions.
licence.updated string (date-time) REQUIRED
ISO 8601 datetime when this credential was last generated by the Authority.
Example: "2026-04-01T00:00:00Z"

Operator Object

PropertyTypeRequiredDescriptionExample
namestringYesLegal name of the entity"Example Gambling Ltd"
trading_asstringNoTrading name(s)"ExampleBet"
registrationstringNoCompany registration number"IE-123456"
countrystring (pattern: ^[A-Z]{2}$)YesISO 3166-1 alpha-2 country code of incorporation"IE"

Authority Object

PropertyTypeRequiredDescriptionExample
idstringYesShort identifier. MUST match Trust Directory entry."GRAI"
namestringYesFull name of the Authority"Gambling Regulatory Authority of Ireland"
countrystring (pattern: ^[A-Z]{2}$)YesISO 3166-1 alpha-2 country code of jurisdiction"IE"
uristring (format: uri)NoURI of the Authority's website"https://www.grai.ie"
verifystring (format: uri)YesBase URI of the Authority's GL1 verification API"https://verify.grai.ie/api/v1"

Scope Object

PropertyTypeRequiredDescriptionExample
territoriesarray of string (pattern: ^[A-Z]{2}$, minItems: 1)YesISO 3166-1 alpha-2 country codes where the licence is valid["IE"]
domainsarray of string (format: hostname, minItems: 1)YesFQDNs authorised to operate under this licence["examplebet.ie", "examplebet.com"]
appsarray of AppNoMobile applications authorised under this licenceSee App Object

App Object

PropertyTypeRequiredDescriptionExample
platformstring (enum: ios, android)YesMobile platform"ios"
idstringYesBundle identifier (iOS) or package name (Android)"com.examplebet.app"

Validity Object

PropertyTypeRequiredDescriptionExample
issuedstring (format: date)YesISO 8601 date of licence issuance"2026-04-01"
expiresstring (format: date)YesISO 8601 date of licence expiry"2027-03-31"

Signature Object

PropertyTypeRequiredDescriptionExample
algstring (const: "ES384")YesSignature algorithm. MUST be "ES384" (ECDSA P-384)."ES384"
kidstringYesKey identifier for the signing key"grai-licence-signing-2026-01"
x5ustring (format: uri)NoURI of the signing certificate (X.509)"https://pki.grai.ie/certs/licence-signing-2026.pem"
valuestringYesBase64url-encoded ECDSA-P384 signature over the JCS-canonicalised licence object(base64url string)

Complete Schema

The full JSON Schema document (gl1-schema.json):

JSON Schema 2020-12
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://verify.grai.ie/schemas/gl1/v1/credential.json",
  "title": "GL1 Gambling Licence Credential",
  "type": "object",
  "required": ["gl1", "licence", "signature"],
  "additionalProperties": false,
  "properties": {
    "gl1": { "type": "string", "const": "1.0" },
    "licence": { "$ref": "#/$defs/Licence" },
    "signature": { "$ref": "#/$defs/Signature" }
  },
  "$defs": {
    // Licence, Operator, Authority, Scope, App,
    // Validity, Signature definitions as above
    // See gl1-schema.json for complete definitions
  }
}
Part IV

API Reference

GL1 Gambling Licence Verification API v1.0.0

IV. Verification API Reference

Public API for verifying gambling licence credentials issued under the GL1 protocol. Each Issuing Authority operates its own instance of this API. This specification defines the common interface that all GL1-conformant authorities MUST implement.

6
Endpoints
4
Auth Tiers
REST
Architecture
JSON
Response Format

Base URL

https://verify.grai.ie/api/v1

GRAI Production — Gambling Regulatory Authority of Ireland

Authentication Tiers

TierMethodRate LimitUse Case
PublicNone required100 req/hourConsumer verification, casual lookups
RegisteredAPI key via X-GL1-API-Key header10,000 req/hourDevelopers, researchers
PartnerMutual TLS (mTLS) certificate100,000 req/hourISPs, payment processors
RegulatormTLS + Memorandum of UnderstandingUnlimitedPeer regulatory authorities
GET /licence/{licenceId} Verify a gambling licence

Returns the current status and details of a specific gambling licence. This is the authoritative, real-time source of licence status.

Path Parameters

NameTypeRequiredDescription
licenceIdstringYesThe licence identifier (e.g., GRL-2026-001234)

Responses

StatusDescription
200Licence found — returns LicenceResponse
404Licence not found — returns ErrorResponse
429Rate limit exceeded — includes Retry-After header

Example Response (200)

JSON
{
  "gl1": "1.0",
  "licence": {
    "id": "GRL-2026-001234",
    "status": "active",
    "type": "remote_gambling",
    "activities": ["sports_betting", "casino", "poker"],
    "operator": {
      "name": "Example Gambling Ltd",
      "trading_as": "ExampleBet",
      "country": "IE"
    },
    "validity": {
      "issued": "2026-04-01",
      "expires": "2027-03-31"
    },
    "domains": ["examplebet.ie", "examplebet.com"],
    "enforcement_actions": [],
    "last_updated": "2026-04-01T00:00:00Z"
  },
  "authority": {
    "id": "GRAI",
    "name": "Gambling Regulatory Authority of Ireland"
  }
}
GET /domain/{domainName} Look up licence by domain

Returns the licence associated with a gambling domain. If the domain is covered by a valid GL1 licence, returns the licence details. If no licence covers the domain, returns 404.

Path Parameters

NameTypeRequiredDescription
domainNamestring (hostname)YesThe fully qualified domain name to look up (e.g., examplebet.ie)

Responses

StatusDescription
200Domain is covered by a valid licence — returns LicenceResponse
404No licence covers this domain

Example Response (404)

JSON
{
  "gl1": "1.0",
  "error": {
    "code": "DOMAIN_NOT_FOUND",
    "message": "No GL1 licence covers the domain 'unlicensed-site.com'"
  }
}
GET /operator Search operators

Search for licensed operators by name, trading name, or registration number.

Query Parameters

NameTypeRequiredDescription
qstring (minLength: 2)YesSearch query (operator name, trading name, or registration number)
countrystring (pattern: ^[A-Z]{2}$)NoFilter by operator country (ISO 3166-1 alpha-2)
statusstring (enum)NoFilter by licence status: active, suspended, revoked, expired, surrendered
limitinteger (1–100, default: 20)NoMaximum results to return
offsetinteger (min: 0, default: 0)NoOffset for pagination

Responses

StatusDescription
200Search results — returns OperatorSearchResponse (array of LicenceResponse with pagination)
POST /verify/bulk Bulk domain verification

Verify licence status for multiple domains in a single request. Designed for ISPs and payment processors performing bulk compliance checks.

Authentication required: Partner or Regulator tier (mTLS or API key).

Request Body

JSON
{
  "domains": [
    "examplebet.ie",
    "examplebet.com",
    "unlicensed-site.com",
    "another-operator.ie"
  ]
}

Maximum 1,000 domains per request.

Example Response (200)

JSON
{
  "gl1": "1.0",
  "results": [
    {
      "domain": "examplebet.ie",
      "licensed": true,
      "licence_id": "GRL-2026-001234",
      "status": "active",
      "authority": "GRAI"
    },
    {
      "domain": "unlicensed-site.com",
      "licensed": false,
      "licence_id": null,
      "status": null,
      "authority": null
    }
  ],
  "total": 4,
  "licensed_count": 3,
  "unlicensed_count": 1
}
GET /blacklist Get unlicensed operator blacklist

Returns the list of identified unlicensed gambling operators. Supports delta queries via the since parameter.

Query Parameters

NameTypeRequiredDescription
sincestring (format: date)NoReturn only entries added or updated since this date
formatstring (enum: json, csv, rpz; default: json)NoResponse format. rpz returns a DNS Response Policy Zone file suitable for direct loading into ISP DNS resolvers.
limitinteger (1–10,000, default: 1,000)NoMaximum entries to return
offsetinteger (min: 0, default: 0)NoOffset for pagination

Blacklist Entry Fields

FieldTypeDescription
domainstringThe unlicensed domain
identifieddateDate the domain was first identified as unlicensed
operator_namestring?Name of the operator (if known)
jurisdictionstring?Where the operator appears to be based
enforcement_actionsarrayActions taken: warning, blocking_order, payment_disruption, prosecution_referral
blocking_statusstringOne of: pending, ordered, active, expired
GET /.well-known/gl1-authority Authority discovery and key publication

Returns the Authority's metadata, current signing public keys, and federation membership. This is the primary discovery endpoint for Verifiers to obtain the Authority's public keys for credential signature verification.

Example Response (200)

JSON
{
  "gl1": "1.0",
  "authority": {
    "id": "GRAI",
    "name": "Gambling Regulatory Authority of Ireland",
    "country": "IE",
    "uri": "https://www.grai.ie",
    "contact": "[email protected]"
  },
  "keys": [
    {
      "kid": "grai-licence-signing-2026-01",
      "alg": "ES384",
      "use": "sig",
      "x5c": ["MIIBxTCCAWugAwIBAgI...base64-cert"],
      "valid_from": "2026-01-01",
      "valid_until": "2027-01-01"
    }
  ],
  "federation": {
    "trust_directory": "https://gl1.gamblinglicence.org",
    "member_since": "2026-04-01"
  }
}

Error Codes

CodeHTTP StatusDescription
LICENCE_NOT_FOUND404The specified licence ID does not exist
DOMAIN_NOT_FOUND404No GL1 licence covers the specified domain
INVALID_REQUEST400Malformed request parameters
RATE_LIMIT_EXCEEDED429Rate limit exceeded for the current authentication tier
INTERNAL_ERROR500Server-side error

API Licence

The GL1 Verification API specification is published under CC BY 4.0 (Creative Commons Attribution 4.0 International).

Part V

Internet-Draft Summary

IETF Internet-Draft and IANA Registration Requests

V. IETF Internet-Draft

Draft Identifier

draft-grai-gl1-gambling-licence-00

A formal IETF Internet-Draft has been prepared for submission to the Applications and Real-Time Area (ART) of the IETF. The draft formalises the GL1 protocol specification as defined in this white paper, with the precision and structure required by the IETF standards process.

Document Metadata

FieldValue
TitleThe GL1 Gambling Licence Verification Protocol
Draft namedraft-grai-gl1-gambling-licence-00
Intended statusProposed Standard
IETF AreaApplications and Real-Time (ART)
AuthorEd Campbell, Security Consultant to GRAI
FormatRFC XML v3 (per RFC 7991)

IANA Registration Requests

The Internet-Draft requests two IANA registrations:

1. Well-Known URI Registration

FieldValue
URI suffixgambling-licence
Change controllerIETF
Referencedraft-grai-gl1-gambling-licence-00, Section 5
StatusPermanent
Related informationPer RFC 8615 Section 3.1; serves a JSON document containing a cryptographically signed gambling licence credential.

2. DNS Underscore Label Registration

FieldValue
Label_gambling-licence
Change controllerIETF
Referencedraft-grai-gl1-gambling-licence-00, Section 6
RR TypeTXT
Related informationPer RFC 8552 (Scoped DNS); carries a compact, signed gambling licence assertion in tag-value format.

Standardisation Timeline

MilestoneTarget DateNotes
Internet-Draft -00 submissionQ3 2026Initial submission after GRAI reference deployment operational experience
IETF presentation (ART area)IETF 118 or 119Request for working group adoption
Working group last call2027Following implementation experience from multiple authorities
IESG evaluation2027–2028Standards-track review
RFC publication2028Proposed Standard

IPR Disclosure

Per RFC 8179, an IPR disclosure will be filed with the IETF at the time of Internet-Draft submission, noting the defensive patent (see Part II), the inventor (Ed Campbell), and the irrevocable, royalty-free patent pledge. This satisfies the IETF's requirement that contributors disclose known patent claims on standards-track protocols.