Registration API Status / 2026-06-18

GCA Registration API Status

This is the public status page for the live GCA email registration and contact suppression backend. The current production API runs on Cloudflare Workers + D1 at https://gca-registration-api.gcagochina.workers.dev.

Latest public smoke check passed at 2026-06-18T08:41:31Z with the public-only API checker. The check verified the health endpoint, CORS, access config, and token-protected admin read boundaries without writing test records.

Latest deploy-readiness check at 2026-06-18T08:37:28Z passed Worker dry-run and D1 visibility, but failed cloudflare-auth-session and Worker deploy permission with Cloudflare error 10000. Do not apply remote migrations or deploy until those two checks pass.

The public checks verify health and read protections without writing test registrations. Admin reads remain token protected and should only be run locally by an operator with the local admin token file.

Provider Cloudflare Workers + D1
API Base gca-registration-api.gcagochina.workers.dev
Public Check Live / no secrets
Latest Check 2026-06-18 passed
Admin Read Token protected
Custom Domain api.gcagochina.com pending zone access
Public Records Not readable
Smoke Tool tools/check_gca_registration_api.py
Workflow check-gca-registration-api.yml

Live Endpoints

GET /health

Public health endpoint. Expected service is gca-registration-api.

POST /gca/email-registrations

Live public gca_email_registration_v1 intake for email-only user registration.

POST /gca/contact-suppressions

Live public gca_contact_suppression_v1 intake for email do-not-contact requests.

GET /gca/access-config

Live public access configuration for chain ID 8453, the GCA contract, thresholds, ledger boundaries, and safety rules.

POST /gca/wallet-verifications

Live public read-only wallet verification. The Worker reads GCA balance with Base Mainnet eth_call; it does not request signatures or transactions.

POST /gca/member-access

Live public account intake for email, Base wallet, holder-credit review, GCA Member review, and D1 ledger writes for eligible records.

GET /gca/email-registrations

Live token-protected admin read. Public visitors should receive an authorization error, not registration records.

GET /gca/contact-suppressions

Live token-protected admin read for suppression sync. Public visitors cannot read the suppression ledger.

GET /gca/credit-ledger

Live token-protected admin read for 100 credits ledger records.

GET /gca/member-ledger

Live token-protected admin read for GCA Member ledger records and member-benefit review status.

GET/POST /gca/service-requests

Prepared token-protected service request queue. The 2026-06-18 readiness check passed Worker dry-run and D1 visibility; production remains non-live because cloudflare-auth-session and Worker deploy permission failed with Cloudflare error 10000. Remote migration, deploy, and pending-route smoke checks are still blocked.

GET/POST /gca/credit-usage

Prepared token-protected credit usage ledger. The 2026-06-18 readiness check passed Worker dry-run and D1 visibility; production remains non-live because cloudflare-auth-session and Worker deploy permission failed with Cloudflare error 10000. Remote migration, deploy, and pending-route smoke checks are still blocked.

Future Domain api.gcagochina.com

Pending until the Cloudflare account used for Workers can manage the gcagochina.com DNS zone.

Public Check

This command checks the live health endpoint and confirms unauthenticated admin reads are blocked. It does not need secrets and does not write test records.

python3 tools/check_gca_registration_api.py --public-only --timeout 30

Admin Check

This local operator check reads a small record sample with ADMIN_READ_TOKEN. Keep the token file local and do not publish it.

python3 tools/check_gca_registration_api.py --token-file cloudflare/gca-registration-worker/.env.admin.local --limit 5

Deploy Readiness

This checks Worker bundling, Cloudflare account authentication, D1 visibility, and read-only Worker deployment permission before publishing a new Worker version. Latest result: dry-run passed, D1 visibility passed, cloudflare-auth-session failed, and Worker deploy permission failed with error 10000. If the report includes authRecovery.status, use its safe next actions before migrations or deploy.

python3 tools/check_gca_worker_deploy_readiness.py --run-wrangler --run-cloudflare --require-deploy-auth

Pending Routes Handoff

The prepared /gca/service-requests and /gca/credit-usage routes remain non-live. D1 visibility passed on 2026-06-18, but Cloudflare account authentication and Worker publish permission still fail with error 10000; remote D1 migrations apply, deploy, and both public/admin smoke checks with --include-pending-routes remain blocked.

Worker Routes Handoff is the readable public handoff for the same deploy gate order and claim boundaries.

Source handoffdocs/gca_worker_pending_routes_deploy_handoff.md
Migrationnpx wrangler d1 migrations apply gca_registration --remote
Public smokepython3 tools/check_gca_registration_api.py --public-only --timeout 30 --include-pending-routes
Admin smokepython3 tools/check_gca_registration_api.py --token-file cloudflare/gca-registration-worker/.env.admin.local --limit 5 --include-pending-routes

Operator Tools

Export registrationstools/export_cloudflare_email_registrations.py
Sync registrationstools/sync_cloudflare_email_registrations.py
Contact CSVtools/export_gca_email_contacts.py
Suppression synctools/sync_cloudflare_contact_suppressions.py
Ops summarytools/run_gca_registration_ops.py

Public Boundaries

  • Email registration does not require a wallet, wallet signature, payment, private key, seed phrase, exchange API secret, or withdrawal permission.
  • Contact suppression does not change GCA balances, pool state, credits, member status, or on-chain assets.
  • Public visitors cannot read the registration ledger or suppression ledger.
  • 100 credits and GCA Member ledger records are live for eligible wallet submissions; the 10,000 GCA member benefit remains manual review and reserve-wallet processing only.

API Status References

Use these readable status, daily snapshot, API contract, operations, and privacy pages for public implementation context. The Operator Console is localhost-only at http://127.0.0.1:8787/operator.html after running the local backend.