{
  "schema": "https://gcagochina.com/operations.json",
  "pageUrl": "https://gcagochina.com/operations.html",
  "status": "public-access-operations-runbook-published",
  "lastUpdated": "2026-06-18",
  "title": "GCA Access Operations Runbook",
  "scope": "Public SOP for live GCA email registration, member account intake, read-only wallet verification, eligible credit/member ledger records, review queue statuses, support responses, redacted review package handoff, and manual member-benefit boundaries.",
  "chainId": 8453,
  "contractAddress": "0x3197c42f4a06f7be32a9a742ac2a766f0ff682c6",
  "currentState": {
    "currentStage": "account-ledger-operations-live",
    "publicRunbookOnly": false,
    "runbookOnlyForManualReviewHandling": true,
    "backendLive": true,
    "emailRegistrationBackendLive": true,
    "contactSuppressionBackendLive": true,
    "accountAndMemberBackendLive": true,
    "publicSubmissionQueueLive": true,
    "controlledHttpsAccountUiLive": true,
    "creditsEligibilitySubmissionLive": true,
    "gcaMemberEligibilitySubmissionLive": true,
    "creditUsageLedgerPrepared": true,
    "creditUsageLedgerWritesLive": false,
    "creditUsageWorkerDeployBlocked": true,
    "creditUsageWorkerDryRunPassed": true,
    "creditUsageWorkerDeployBlockedBy": "Latest 2026-06-18 readiness check passed Worker dry-run and D1 visibility; blocked by Cloudflare account authentication and Worker deploy permission error [code: 10000]",
    "serviceRequestQueueLocalLive": true,
    "serviceRequestQueueWorkerPrepared": true,
    "serviceRequestQueueWorkerDryRunPassed": true,
    "serviceRequestQueueWorkerDeployBlocked": true,
    "serviceRequestQueueWorkerDeployBlockedBy": "Latest 2026-06-18 readiness check passed Worker dry-run and D1 visibility; blocked by Cloudflare account authentication and Worker deploy permission error [code: 10000]",
    "serviceRequestQueueProductionLive": false,
    "ledgerWritesLive": true,
    "liveTradingEnabled": false
  },
  "emailRegistrationOpsPipeline": {
    "status": "production-email-registration-api-live-operator-sync-ready",
    "provider": "Cloudflare Workers + D1",
    "workerBaseUrl": "https://gca-registration-api.gcagochina.workers.dev",
    "publicHealthEndpoint": "https://gca-registration-api.gcagochina.workers.dev/health",
    "publicSubmissionEndpoint": "https://gca-registration-api.gcagochina.workers.dev/gca/email-registrations",
    "publicSuppressionEndpoint": "https://gca-registration-api.gcagochina.workers.dev/gca/contact-suppressions",
    "adminReadEndpoint": "https://gca-registration-api.gcagochina.workers.dev/gca/email-registrations",
    "adminSuppressionReadEndpoint": "https://gca-registration-api.gcagochina.workers.dev/gca/contact-suppressions",
    "adminTokenFile": "cloudflare/gca-registration-worker/.env.admin.local",
    "adminTokenPrinted": false,
    "publicOnlyCheckCommand": "python3 tools/check_gca_registration_api.py --public-only --timeout 30",
    "publicOnlyCheckRequiresSecrets": false,
    "adminExportCommand": "python3 tools/export_cloudflare_email_registrations.py --limit 100 --output .gca_access_data/cloudflare_email_registrations_export.json",
    "registrationSyncCommand": "python3 tools/sync_cloudflare_email_registrations.py --limit 100 --data-dir .gca_access_data",
    "contactSuppressionSyncCommand": "python3 tools/sync_cloudflare_contact_suppressions.py --limit 100 --suppression-file .gca_access_data/gca_contact_suppressions.jsonl",
    "combinedOpsCommand": "python3 tools/run_gca_registration_ops.py --limit 100 --data-dir .gca_access_data",
    "localSyncedLedger": ".gca_access_data/email_registrations.jsonl",
    "localContactSuppressionLedger": ".gca_access_data/gca_contact_suppressions.jsonl",
    "internalContactCsv": ".gca_access_data/gca_email_contacts.csv",
    "publicRedactedContactCsv": ".gca_access_data/gca_email_contacts_public_redacted.csv",
    "summaryOutput": ".gca_access_data/gca_registration_ops_summary.json",
    "boundaries": {
      "operatorOnly": true,
      "ignoredLocalOutputs": true,
      "walletCalls": false,
      "requiresSignature": false,
      "requiresTransaction": false,
      "automaticTokenTransfer": false,
      "publicRedactedCsvRequiredBeforeExternalSharing": true
    }
  },
  "memberAccessOpsPipeline": {
    "status": "token-protected-member-ops-ready",
    "provider": "Cloudflare Workers + D1",
    "workerBaseUrl": "https://gca-registration-api.gcagochina.workers.dev",
    "adminTokenFile": "cloudflare/gca-registration-worker/.env.admin.local",
    "adminTokenEnvironmentVariable": "ADMIN_READ_TOKEN",
    "pipelineCommand": ".venv/bin/python tools/run_gca_member_access_ops.py --base-url https://gca-registration-api.gcagochina.workers.dev --limit 100 --redact none --summary-output .gca_access_data/gca_member_access_ops_summary.json",
    "offlineHoldingReportCommand": ".venv/bin/python tools/run_gca_member_access_ops.py --base-url https://gca-registration-api.gcagochina.workers.dev --limit 100 --redact none --include-holding-report --holding-no-live-read --summary-output .gca_access_data/gca_member_access_ops_summary.json",
    "digestRefreshCommand": ".venv/bin/python tools/run_gca_daily_ops.py --build-digest --update-public-status",
    "workerDeployReadinessCommand": "python3 tools/check_gca_worker_deploy_readiness.py --run-wrangler --run-cloudflare --require-deploy-auth",
    "workerDeployReadinessAuthSessionCheck": "cloudflare-auth-session",
    "workerDeployReadinessAuthRecoveryField": "authRecovery",
    "latestDeployReadinessCheckAt": "2026-06-18T08:37:28Z",
    "latestDeployReadinessSummary": {
      "wranglerDeployDryRun": "passed",
      "cloudflareD1Visibility": "passed",
      "cloudflareAuthSession": "failed",
      "cloudflareWorkerDeployPermission": "failed",
      "writesD1Records": false,
      "deploysWorker": false
    },
    "pendingRoutePostDeployPublicSmokeCommand": "python3 tools/check_gca_registration_api.py --public-only --timeout 30 --include-pending-routes",
    "pendingRoutePostDeployAdminSmokeCommand": "python3 tools/check_gca_registration_api.py --token-file cloudflare/gca-registration-worker/.env.admin.local --limit 5 --include-pending-routes",
    "pendingRouteReleaseGates": [
      "cloudflare-auth-session passes",
      "D1 visibility passes",
      "Worker deploy permission passes",
      "remote D1 migrations apply successfully",
      "wrangler deploy succeeds",
      "public smoke check passes with --include-pending-routes",
      "admin smoke check passes with --include-pending-routes"
    ],
    "serviceRequestQueueWorkerEndpoint": "https://gca-registration-api.gcagochina.workers.dev/gca/service-requests",
    "localExportJson": ".gca_access_data/cloudflare_member_access_export.json",
    "reportSummaryOutput": ".gca_access_data/member_access_report/gca_member_access_summary.json",
    "serviceRequestQueueLocalLedger": ".gca_access_data/service_requests.jsonl",
    "serviceRequestCsv": ".gca_access_data/member_access_report/gca_service_requests.csv",
    "creditUsageCsv": ".gca_access_data/member_access_report/gca_credit_usage.csv",
    "supportQueueOutput": ".gca_access_data/member_access_report/gca_member_support_queue.csv",
    "supportQueueSummaryOutput": ".gca_access_data/member_access_report/gca_member_support_queue_summary.json",
    "holdingPeriodSummaryOutput": ".gca_access_data/member_access_report/gca_holding_period_summary.json",
    "pipelineSummaryOutput": ".gca_access_data/gca_member_access_ops_summary.json",
    "boundaries": {
      "operatorOnly": true,
      "ignoredLocalOutputs": true,
      "writesProductionData": false,
      "adminTokenPrinted": false,
      "requiresSignature": false,
      "requiresTransaction": false,
      "automaticTokenTransfer": false,
      "memberBenefitTransferAutomatic": false,
      "holdingReportLiveReadOptional": true,
      "holdingNoLiveReadUsesExistingSnapshots": true
    }
  },
  "identity": {
    "network": "Base Mainnet",
    "chainId": 8453,
    "contractAddress": "0x3197c42f4a06f7be32a9a742ac2a766f0ff682c6",
    "symbol": "GCA",
    "decimals": 18
  },
  "memberPacketVersion": "gca_member_preregistration_v2",
  "memberEvidenceFields": [
    "memberBenefitReviewEvidence.holdingStartDate",
    "memberBenefitReviewEvidence.daysSinceHoldingStartPreview",
    "memberBenefitReviewEvidence.holdingPeriodPreviewEligible",
    "memberBenefitReviewEvidence.evidenceTxHash",
    "memberBenefitReviewEvidence.evidenceTxHashFormatOk",
    "memberBenefitReviewEvidence.evidenceNote"
  ],
  "operatorWorkflow": [
    {
      "id": "intake-triage",
      "label": "Intake Triage",
      "operatorAction": "Accept only non-sensitive account intent, public wallet address, declared GCA balance, program intent, public transaction references, GCA Member holding start date, and member evidence note from the gca_member_preregistration_v2 packet.",
      "outputStatus": "received"
    },
    {
      "id": "identity-check",
      "label": "Identity Check",
      "operatorAction": "Confirm Base Mainnet chain ID 8453 and the official GCA contract address before any review note is made.",
      "outputStatus": "wallet_pending"
    },
    {
      "id": "wallet-balance-check",
      "label": "Wallet Balance Check",
      "operatorAction": "Use read-only eth_call and ERC-20 balanceOf. Do not request signatures or transactions for balance reads.",
      "outputStatus": "eligible or below_threshold"
    },
    {
      "id": "holding-period-review",
      "label": "Holding Period Review",
      "operatorAction": "For GCA Member benefit review, verify the gca_member_preregistration_v2 holdingStartDate, evidenceTxHash, evidenceTxHashFormatOk, and public purchase or transfer evidence showing at least 1,000,000 GCA held continuously for 30 days.",
      "outputStatus": "eligible, below_threshold, or needs_more_information"
    },
    {
      "id": "eligibility-decision",
      "label": "Eligibility Decision",
      "operatorAction": "Mark 10,000 GCA holder credit eligibility, 1,000,000 GCA plus 30-day GCA Member eligibility, and one-time 10,000 GCA member benefit eligibility; eligible credit/member records are written through the reviewed backend path while token-benefit handling remains manual.",
      "outputStatus": "eligible, below_threshold, or needs_more_information"
    },
    {
      "id": "support-reply",
      "label": "Support Reply",
      "operatorAction": "Reply with status, next step, and public links from a full internal export only. Public-redacted exports are reviewer handoff artifacts and must not be used as contactable support queues. Do not promise approval timing, listing approval, price support, audit approval, or trading results.",
      "outputStatus": "received or closed"
    },
    {
      "id": "ledger-handoff",
      "label": "Ledger Handoff",
      "operatorAction": "Use the reviewed backend path to inspect and reconcile credit or member records, then keep manual-review notes for any 10,000 GCA member benefit handling.",
      "outputStatus": "ledger_recorded or manual_review_required"
    },
    {
      "id": "service-request-triage",
      "label": "Service Request Triage",
      "operatorAction": "Queue requested GCA AI Quant Access service scope in the local service_requests ledger before delivery. Confirm the credit ledger and remaining credits when present, but do not deduct credits until service delivery is reviewed.",
      "outputStatus": "queued_operator_review or needs_more_information"
    },
    {
      "id": "credit-usage-recording",
      "label": "Credit Usage Recording",
      "operatorAction": "After a reviewed GCA AI Quant Access service unit is delivered or accepted for delivery, record creditUsageId, serviceId, creditAmountUsed, remainingCreditsBefore, and remainingCreditsAfter through the operator-only credit usage ledger.",
      "outputStatus": "usage_recorded or exhausted"
    },
    {
      "id": "platform-follow-up",
      "label": "Platform Follow-Up",
      "operatorAction": "When a reviewer asks for more information, send public URLs only and keep pool, contract, status, and claim boundaries consistent.",
      "outputStatus": "platform_follow_up"
    },
    {
      "id": "review-package-handoff",
      "label": "Review Package Handoff",
      "operatorAction": "When a reviewer asks for local member-ledger evidence, export only the redacted-public local review package, verify packageDigestSha256, and use the Platform Replies handoff template. Full-local packages remain internal only.",
      "outputStatus": "platform_follow_up"
    },
    {
      "id": "closure",
      "label": "Closure",
      "operatorAction": "Close the record only after status, evidence reference, reviewer note, and next public link are recorded without secrets.",
      "outputStatus": "closed"
    }
  ],
  "requiredReviewRecord": [
    "reviewId",
    "registrationId",
    "lane",
    "status",
    "walletAddress",
    "checkedAt",
    "holdingStartDate",
    "holdingPeriodDaysVerified",
    "holdingPeriodPreviewEligible",
    "evidenceTxHash",
    "evidenceTxHashFormatOk",
    "memberBenefitReviewEvidenceStatus",
    "serviceRequestId",
    "requestedCreditHold",
    "remainingCreditsAtRequest",
    "creditUsageId",
    "creditAmountUsed",
    "remainingCreditsAfter",
    "reviewerNote",
    "publicEvidenceReference",
    "reviewPackageRedactionMode",
    "reviewPackageDigestSha256"
  ],
  "allowedEvidence": [
    "official account record",
    "public Base wallet address",
    "read-only GCA balance from eth_call balanceOf",
    "public transaction hash",
    "public purchase or transfer transaction hash used for holding-period review",
    "member holding start date from gca_member_preregistration_v2 packet",
    "0x-format evidence transaction hash check",
    "member evidence note",
    "non-sensitive support note",
    "non-sensitive service request scope",
    "public review reference",
    "public-redacted local review package digest"
  ],
  "operatorControls": {
    "chainIdMustEqual": 8453,
    "contractAddressMustEqual": "0x3197c42f4a06f7be32a9a742ac2a766f0ff682c6",
    "walletVerificationReadOnly": true,
    "usesEthCall": true,
    "usesErc20BalanceOf": true,
    "requiresSignatureForBalanceRead": false,
    "requiresTransactionForBalanceRead": false,
    "manualSupportCanOverrideBalanceVerification": false,
    "manualSupportCanBypassReleaseGates": false,
    "redactedExportCanGenerateUserReplies": false,
    "publicRedactedExportForReviewerHandoffOnly": true,
    "emailRegistrationOpsAdminTokenPrinted": false,
    "emailRegistrationOpsPublicCheckRequiresSecrets": false,
    "externalReviewPackageMustBeRedacted": true,
    "fullLocalPackageExternalSharingAllowed": false,
      "reviewPackageDigestRequiredBeforeSharing": true,
      "serviceRequestQueueWorkerPrepared": true,
      "serviceRequestQueueProductionLive": false,
      "serviceRequestDoesNotDeductCredits": true,
      "creditUsageLedgerPrepared": true,
    "creditUsageLedgerWritesLive": false,
    "memberPacketVersionMustEqual": "gca_member_preregistration_v2",
    "structuredAuditTrailRequired": true,
    "requiredAuditFields": [
      "reviewId",
      "registrationId",
      "lane",
      "status",
      "walletAddress",
      "checkedAt",
      "holdingStartDate",
      "holdingPeriodDaysVerified",
      "holdingPeriodPreviewEligible",
      "evidenceTxHash",
      "evidenceTxHashFormatOk",
      "memberBenefitReviewEvidenceStatus",
      "serviceRequestId",
      "requestedCreditHold",
      "remainingCreditsAtRequest",
      "creditUsageId",
      "creditAmountUsed",
      "remainingCreditsAfter",
      "reviewerNote",
      "publicEvidenceReference",
      "reviewPackageRedactionMode",
      "reviewPackageDigestSha256"
    ]
  },
  "decisionRules": {
    "holderBonusMinimum": "10000 GCA",
    "holderBonusCreditAmount": "100 GCA AI Quant Access credits",
    "gcaMemberMinimum": "1000000 GCA",
    "gcaMemberMinimumHoldingDays": 30,
    "gcaMemberBenefitAmount": "10000 GCA",
    "gcaMemberBenefitSource": "project or owner-held reserve transfer only; no new minting",
    "walletLimit": "one verified wallet per registered user",
    "registeredUserLimit": "one holder bonus, one member status review, and one member benefit review per registered user",
    "manualSupportCannotOverrideBalanceVerification": true,
    "belowThresholdStatus": "below_threshold",
    "missingEvidenceStatus": "needs_more_information"
  },
  "eligibilityThresholds": {
    "holderBonusMinimum": "10000 GCA",
    "holderBonusCreditAmount": "100 GCA AI Quant Access credits",
    "gcaMemberMinimum": "1000000 GCA",
    "gcaMemberMinimumHoldingDays": 30,
    "gcaMemberBenefitAmount": "10000 GCA",
    "gcaMemberBenefitSource": "project or owner-held reserve transfer only; no new minting",
    "walletLimit": "one verified wallet per registered user",
    "registeredUserLimit": "one holder bonus, one member status review, and one member benefit review per registered user"
  },
  "responseRules": {
    "received": "Confirm queue receipt only.",
    "needs_more_information": "Ask only for non-sensitive correction.",
    "eligible": "Say pending ledger activation.",
    "below_threshold": "State read-only balance result.",
    "platform_follow_up": "Send public URLs and consistent status only.",
    "redacted_export": "Do not send user replies from redacted-public data; rerun a full internal export first.",
    "closed": "State final review status."
  },
  "reviewPackageHandoff": {
    "status": "local-operator-only",
    "trigger": "platform or reviewer asks for local member-ledger evidence",
    "localDataDirectory": ".gca_access_data/",
    "externalSharingMode": "redacted-public",
    "internalOnlyMode": "full-local",
    "exportCommand": ".venv/bin/python tools/export_gca_review_package.py --redact public --output gca-public-redacted-review-package.json",
    "verifyCommand": ".venv/bin/python tools/verify_gca_review_package.py gca-public-redacted-review-package.json",
    "replyTemplatePage": "https://gcagochina.com/platform-replies.html",
    "replyTemplateJson": "https://gcagochina.com/platform-replies.json",
    "requiredBeforeSharing": [
      "confirm package redactionMode is redacted-public",
      "verify packageDigestSha256 with tools/verify_gca_review_package.py",
      "confirm no private key, seed phrase, exchange API secret, withdrawal permission, one-time code, user email, Telegram handle, reviewer note, support note, or evidence note is present"
    ],
    "publicClaimBoundary": "support evidence only; not a third-party audit, security-vendor approval, listing approval, or liquidity-depth claim"
  },
  "doNotCollect": [
    "private key",
    "seed phrase",
    "exchange API secret",
    "withdrawal permission",
    "one-time code",
    "recovery phrase",
    "custody request",
    "fund-transfer request",
    "live trading instruction"
  ],
  "doNotClaim": [
    "approval timing",
    "listing approval",
    "price support",
    "completed third-party audit",
    "permanent wallet-warning removal",
    "deep liquidity",
    "trading outcome",
    "live order execution",
    "self-service credits claiming",
    "self-service GCA Member claiming",
    "self-service 10,000 GCA member benefit claiming",
    "local review package as third-party audit"
  ],
  "safeReplyTemplate": "Your account request has been received. GCA can review your public Base wallet address with a read-only GCA balance check and, for member benefit review, the gca_member_preregistration_v2 holding start date plus public purchase or transfer transaction hash. We will never ask for private keys, seed phrases, exchange API secrets, withdrawal permission, custody, or fund transfers.",
  "officialMarket": {
    "pair": "GCA/USDT",
    "dex": "Uniswap v4",
    "network": "Base Mainnet",
    "poolAddress": "0xfe6a598bf738d7eec9640897064ca3a490128d3d447ced96077aef8e9dd1c1d0",
    "quoteAsset": "USDT",
    "quoteAssetAddress": "0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2",
    "liquidityDepth": "starter-depth-only"
  },
  "officialLinks": {
    "operationsRunbookPage": "https://gcagochina.com/operations.html",
    "operationsRunbook": "https://gcagochina.com/operations.json",
    "reviewQueuePage": "https://gcagochina.com/review-queue.html",
    "reviewQueue": "https://gcagochina.com/review-queue.json",
    "accessApiPage": "https://gcagochina.com/access-api.html",
    "accessApi": "https://gcagochina.com/access-api.json",
    "accessPortalPage": "https://gcagochina.com/access.html",
    "accessPortal": "https://gcagochina.com/access.json",
    "memberLedgerPage": "https://gcagochina.com/member-ledger.html",
    "memberLedger": "https://gcagochina.com/member-ledger.json",
    "supportPage": "https://gcagochina.com/support.html",
    "supportJson": "https://gcagochina.com/support.json",
    "releaseGatesPage": "https://gcagochina.com/release-gates.html",
    "releaseGates": "https://gcagochina.com/release-gates.json",
    "reviewerKitPage": "https://gcagochina.com/reviewer-kit.html",
    "reviewerKit": "https://gcagochina.com/reviewer-kit.json",
    "platformRepliesPage": "https://gcagochina.com/platform-replies.html",
    "platformReplies": "https://gcagochina.com/platform-replies.json",
    "market": "https://gcagochina.com/markets.html"
  },
  "publicClaimBoundaries": {
    "safeClaims": [
      "GCA has published a public access operations runbook.",
      "The operations runbook defines SOP for live account intake, wallet verification, eligible ledger records, and manual member-benefit review.",
      "Wallet review must use read-only eth_call and ERC-20 balanceOf.",
      "GCA Member benefit review requires 1,000,000 GCA held for 30 consecutive days before a one-time 10,000 GCA member benefit can be approved.",
      "Manual support cannot override on-chain wallet-balance verification or release gates.",
      "GCA operators can export a redacted-public local review package for reviewer evidence handoff when local ledger records exist.",
      "GCA operators can record service-level credit usage with before/after remaining credits in the local operator backend; the Cloudflare Worker route is prepared, Worker dry-run and D1 visibility passed on 2026-06-18, and production remains non-live until Cloudflare auth, Worker deploy permission, remote deploy, and pending-route smoke gates pass.",
      "GCA operators can queue service scope requests in the local operator backend before delivery; queued requests do not deduct credits or create trading permission.",
      "GCA email registration and unsubscribe APIs are live on Cloudflare Workers + D1.",
      "GCA operators can sync email registration records into an ignored local JSONL ledger and export public-redacted contact CSVs.",
      "Public-redacted exports are for reviewer evidence handoff only and cannot be used as contactable user support queues.",
      "The official public market route is the Base Mainnet Uniswap v4 GCA/USDT pool."
    ],
    "doNotClaim": [
      "the operations runbook is a private-data dropbox, custody system, withdrawal system, or trading terminal",
      "100 GCA AI Quant Access credits are cash, income, reimbursement, trading permission, or transferable value",
      "GCA Member status bypasses wallet verification, holding-period evidence, or support review",
      "the 10,000 GCA member benefit is automatic or self-service transferred before holding-period verification, support approval, and manual reserve-wallet processing",
      "support can override wallet-balance verification, release gates, or ledger activation",
      "credit usage is automatic self-service redemption, cash settlement, wallet settlement, or trading permission",
      "a service request queue record means service delivery, credit deduction, trading permission, or wallet action has already happened",
      "a public-redacted export is a contactable support queue or permission to send account-specific user replies",
      "review status provides trading permission, live order execution, custody, withdrawals, price support, listing approval, or completed third-party audit",
      "a redacted local review package is a third-party audit, security-vendor approval, listing approval, or liquidity-depth claim"
    ]
  }
}
