close
Skip to main content

Overview

Operator credentials (opc_...) let agents identify their human operator without a wallet. After the operator completes KYC, they (or their agent) can create credentials via the API or MCP tools. Credentials expire after a configurable TTL (default 24 hours). Agents can self-serve new credentials via the API.

Create credential

Response

The credential value is shown only once. Store it securely.
The agent_memory block is a cross-merchant pattern hint; LLM-hosted agents should persist the pattern (never secrets) to long-term memory so future AgentScore-gated endpoints become returning-customer encounters. Same block is emitted on POST /v1/sessions, on missing_identity bootstrap denials (when no auto-session is created), and inline on the first-mint 402 Payment Required from merchants that echo the hint.

409: KYC required

If the account has not completed identity verification, credential creation returns 409 Conflict:

List credentials

Returns active (non-expired, non-revoked) credentials for your account, along with the account’s verification status.
The sanctions gate is exposed as a paired field rather than a raw status: credentials[].refreshable is true when a live refresh token can still mint a replacement for that credential. The list includes an expired credential while this holds: revoking it is what stops the renewal, and a credential that stops listing can never be revoked. When the account has no KYC, account_verification contains only the status:

Revoke credential

{id} is either the credential’s id from GET /v1/credentials or the opc_... value itself, so an agent holding only the credential can revoke it.
Revoking also revokes the refresh token minted with the credential, and every later rotation of that token along with the credentials those rotations minted, in the same transaction. An agent in that chain cannot mint a replacement; it has to run a fresh Passport login.

Usage

Pass the credential as the X-Operator-Token header when calling /v1/assess or merchant endpoints:
Or via AgentScore Gate middleware; agents send X-Operator-Token alongside requests to gated services.

Report a captured wallet

Merchants call this after a successful payment to report the signer wallet back to AgentScore. Builds a cross-merchant credential↔wallet profile that powers unified reputation, cross-merchant sanctions, and already-verified detection on future credentials from known wallets.

Response

first_seen is true the first time this (credential, wallet, network) tuple is reported, and false on subsequent observations (internal transaction_count is incremented). When an idempotency_key matches the most recent capture’s key, the response is:
and no state change happens (no transaction_count bump, no last_seen update).

Auth & tier

Any authenticated tier (free or paid). Rate limits still apply. Call this fire-and-forget; a failed capture must never block a payment response.

Errors

SDK helpers

  • node-sdk: client.associateWallet({ operatorToken, walletAddress, network })
  • python-sdk: client.associate_wallet(operator_token, wallet_address, network) (plus async aassociate_wallet)
  • node-commerce identity adapters expose captureWallet(ctx, { walletAddress, network }) which reads the operator_token from the gate state; no need to re-pass it.