
Grantex
io.github.mishrasanjeev由 GitHub 帳號 mishrasanjeev 發布v0.1.9更新於 Nov 3, 2026
OAuth 2.0 for AI agents — scoped delegation tokens, audit trails, and revocation.
概覽
Grantex 為 AI 代理提供類似 OAuth 的委派授權:具作用域的授權權杖、稽核紀錄、撤銷與可驗證憑證。
- 可以做什麼
- 註冊代理並以限定作用域向使用者申請授權
- 以授權碼換取簽章授權權杖,並依發布方公鑰在本機驗證
- 將執行動作寫入稽核紀錄並查詢撤銷狀態
- 簽發、列出與驗證 W3C 可驗證憑證與代理護照,含撤銷狀態清單
- 透過 Grantex API 管理預算、用量計量、自訂網域與政策包
- 適用情境
- 適合在建置或運作代表使用者行事的代理時使用,需要可限定範圍、可撤銷的權限與稽核軌跡;也適合服務端驗證代理權杖與憑證。它屬於授權與身分基礎設施,而非一般任務工具。
- 執行需求
- 以本機 stdio 程序執行,來自 npm 套件 @grantex/mcp。需在 GRANTEX_API_KEY 環境變數提供 Grantex API 金鑰,並需連網存取 Grantex 託管服務(api.grantex.dev)以完成權杖交換、金鑰取得與驗證。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Grantex,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Grantex
AI Agent Authorization and Delegated Access, with Open-Source SDKs
What OAuth 2.0 is to humans, Grantex is to agents.
[SDKs: Apache 2.0] [Platform: Orchestrum Personal Use 1.0] [Spec Version] [IETF Draft] [OAuth Agent Grants] [CI] [npm] [PyPI] [npm downloads] [GitHub Stars] [Docs] [MCP Tool Server] [MCP Auth] [DPDP Mapping] [EU AI Act Mapping]
Docs | Quickstart | Release JSON | LLM Index | Spec | IETF Draft
Ownership: Grantex is owned by Orchestrum Technologies LLP. Inventor and owner: Sanjeev Kumar. Contact: [email protected] or [email protected].
Website operators: marketing enquiry delivery and acceptance.
For a scoped technical pilot, begin with security controls, token verification, and OACP authority boundaries. AgenticOrg runs buyer/seller agents and workflows; Grantex governs delegated authority; merchant systems and payment providers retain operational authority. Discuss a bank, fintech or merchant integration at [email protected], without sharing credentials or private customer records.
[Grantex Protocol Flow]
Licence
Grantex has two licences. LICENSING.md lists which directory uses which.
- Platform, free: an individual using, copying or changing it for their own personal purposes (learning, personal study, experiments and hobby projects), not acting for, on behalf of or for the benefit of any organisation.
- Platform, needs prior written permission from Orchestrum Technologies
LLP: any use by or for an organisation, whether companies, firms, sole
proprietors' businesses, charities, schools, universities, research bodies
or government, and whether paid or free. That includes evaluation, testing,
pilots, internal use, hosting or SaaS, resale, distribution and embedding
the platform in another product. Commercial use of the hosted services (the
grantex.devAPIs) also needs an agreement, even through the open SDKs. See COMMERCIAL-LICENSE.md and write to [email protected]. - Existing users: releases published before 21 October 2026 remain available under the terms they were released with. Versions and updates of the platform published from that date are not, so an organisation needs written permission to use them.
- Names: "Grantex" and "AgenticOrg" are trademarks of Orchestrum Technologies LLP. Commercial use of the names, logos or brand needs Orchestrum's prior written approval, including with the Apache-licensed SDKs and earlier versions. See TRADEMARKS.md.
What is Grantex?
Grantex is a delegated authorization protocol and reference implementation for AI agents, with open-source SDKs and a source-available server. It gives each agent a verifiable identity and scoped, time-limited, revocable authority from a human or organization, with multi-agent delegation, service-side verification, and audit records.
Grantex complements OAuth 2.0 and MCP: OAuth handles application and user authorization, MCP connects models to tools, and Grantex proves which agent may perform which action for which principal. Use Grantex when an AI agent acts for a person or organization and a relying service must verify exactly what that agent may do.
For AgenticOrg business onboarding cases, Grantex grants provide delegated
tool authority while AgenticOrg owns tenant isolation, case state, the local
case-purpose allowlist, human review and the provider call boundary. The
last verified AgenticOrg integration does not enforce token-level case
purpose or per-case caps. Published Python grantex==0.7.2 contains purpose
and cap APIs, but that integration has not been verified
to use them. See the governed-case integration boundary
and release status. Neither this repository nor an
MCP tool grants an agent authority to approve a case as a human.
Agent Prepaid Wallets and x402 v2
Repository source includes principal-controlled prepaid wallets for AI agents. A principal can assign one or multiple wallets, apply assignment, wallet, agent, shared budget-group, principal, and developer controls, constrain recipients, resource origins, actions, merchants, purposes, projects, and cost centers, require an exact human approval, govern reload velocity, and block one assignment, one wallet, or all wallets available to an agent. Authorizations reserve value atomically in PostgreSQL and are bound to the agent's DPoP OAuth identity and the policy-evaluated semantic context.
@grantex/x402 uses official x402 v2 PAYMENT-REQUIRED,
PAYMENT-SIGNATURE, and PAYMENT-RESPONSE messages. The old simulated
X-Payment-Proof path is not used. sandbox_ledger is implemented end to end;
external custody records deliberately fail closed unless a configured provider
can verify funding and settlement. The source checkout now includes opt-in
Base native USDC EIP-3009 payments with policy-gated signing, verified funding,
durable signature retries and finalized-chain reconciliation. Python 0.7.2
and Go v0.4.3 publish the EVM response and reconciliation APIs; neither adds
an automatic HTTP payment wrapper. Published TypeScript 0.8.2 and x402 0.4.1
include the opt-in automatic Base 402/sign/retry flow. All four releases are
registry verified. See the
Base USDC custody guide, including the limit
that blocking cannot recall an already issued on-chain signature.
For side-effecting resources, the merchant must durably cache the business result
under Idempotency-Key. Grantex settlement is idempotent, but a settled payment
authorization cannot be verified or execute protected work a second time.
The OAuth grant must include wallet:spend and the exact merchant action scope
advertised as extra.grantexScope; wallet assignment policy can restrict that
human-approved authority but cannot add to it.
Where Grantex fits
Grantex owns delegated agent identity, semantic spend policy, cross-wallet budgets, exact approvals, atomic reservations, stop controls, and audit. An AgenticOrg deployment or another agent runtime owns orchestration and the human interaction. The wallet issuer or custodian remains responsible for KYC/KYB, AML and sanctions controls, custody, network authorization, MCC/geography/card controls, settlement, FX, refunds, disputes, fraud, and reconciliation. The merchant remains responsible for server-trusted price/payee data, order idempotency, settlement gating, and delivery of the paid result.
See Agent Wallet Governance for the complete responsibility matrix, policy composition, exact approval protocol, and honest residual gap list.
The managed clients are implemented in registry-verified @grantex/[email protected],
@grantex/[email protected], Python grantex==0.7.2, and Go v0.4.3. External
custody, principal notification delivery, and
merchant result idempotency remain operator responsibilities.
See the x402 integration
guide, wallet
lifecycle, and production-readiness
guide.
Self-hosted prepaid-wallet dependencies
Running the auth-service does not provision every dependency needed for a real-money product. Self-hosting operators must explicitly provide and test:
- PostgreSQL migrations
091_agent_prepaid_wallets.sqland092_layered_wallet_spend_controls.sql, backups, restore, and reconciliation for the append-only wallet ledger and policy decisions; - HTTPS ingress for the exact OAuth audience, including
/v1/prepaid-walletsand/v1/prepaid-wallets/**(a static-host404breaks agent wallet access even while the origin service is healthy); - a provider-specific custody, funding, settlement, webhook-deduplication, and
recovery adapter before using
externalwallets; without one, Grantex deliberately returns503 CUSTODY_ADAPTER_UNAVAILABLE; - an SSE/WebSocket notification bridge for reload events when a principal must be notified by email, SMS, Slack, WhatsApp, or another external channel; no built-in wallet-email delivery is claimed;
- a merchant-side durable result cache keyed by the HTTP
Idempotency-Keyfor side effects after settlement; - independent security, provider, reconciliation, incident-response, and applicable legal/regulatory review.
The server deployment and each SDK release are separate. Registry consumers should verify an exact version before installing it rather than inferring availability from repository manifests. The production-readiness guide contains the full hosting checklist and a maintainer-only PowerShell publication runbook.
Supply-chain and license controls
The security workflow audits every tracked npm lockfile, every tracked Python
project and requirements surface, and all three Go modules. Dependabot coverage
is checked against the repository manifests, external GitHub Actions and
container images are pinned to immutable digests, and unreviewed npm license
identifiers fail CI. Run npm run audit:supply-chain and
npm run audit:python locally before a release.
The Grantex licences cover Grantex source, not third-party dependencies. See
THIRD_PARTY_NOTICES.md for the current
Sharp/libvips LGPL and caniuse-lite CC-BY distribution notes, and the
supply-chain security guide for the
operator checklist. This inventory is an engineering control, not a legal
non-infringement opinion; distributors must review the exact artifacts they
ship.
OAuth Agent Grants Profile
The hosted auth service and repository TypeScript client implement the three
roles in candidate draft-mishra-oauth-agent-grants-03. The tested profile
requires PAR, PKCE S256, DPoP sender constraints, RFC 9207 response issuer
validation, five-minute access tokens, rotating refresh tokens with family
replay revocation, 300-second exact-request recovery when a refresh response is
lost, AES-256-GCM encrypted recovery state with expiry cleanup, same-resource
RFC 8693 attenuation, and RFC 7009 revocation.
Verification completed with 2,138 auth-service tests, 456 TypeScript SDK tests,
and 255 tests across 23 sequential Docker E2E files. This is self-assessed evidence for
the tested Grantex configuration, not independent interoperability
certification, OAuth Working Group adoption, or IETF endorsement. The
updated OAuthAgentClient is published in registry-verified
@grantex/[email protected].
Revision -02 remains the current Datatracker publication. Candidate -03
must not be uploaded before 2026-09-09 and requires a fresh explicit approval
after the scheduled final review.
Open Agentic Commerce Protocol (OACP) Authority
Open Agentic Commerce Protocol (OACP) is Grantex's agentic-commerce trust and artifact-authority layer. Grantex governs OACP policy, signed artifact and mandate issuance or refusal, verification, and compatibility adapters. AgenticOrg owns buyer and seller AI-agent runtime, merchant self-service onboarding, Shopify connector runtime, future merchant connector setup intent, buyer sessions, channel bridges, OACP cache, and provider-owned capability verification.
Merchant systems such as Shopify, future WooCommerce/ERP sources, POS systems, and provider systems remain the source of record. Provider, bank, POS, and payment rails own mandate, payment, and in-store execution. Grantex signs and verifies artifacts; it is not a merchant connector runtime or a toll booth for every buyer and seller message.
Start with the OACP runtime launch closure PRD, OACP authority overview, merchant self-service config boundary, truth inventory, AgenticOrg integration guide, POS bridge boundary, and operator runbook. The older Commerce V1 overview remains historical/contextual and should not be used to imply that Grantex owns AgenticOrg merchant connector runtime.
Agent Trust Registry: accredited issuers and Agent Passports
The registry lets a relying party, such as a merchant, a payment service provider or an API, check an AI agent before it acts. It answers three questions: which software the agent is, which key it holds, and which accredited issuer vouches for it. The answer comes as a computed trust level, not a claim the agent makes about itself. The grant still says what the agent may do; the passport says who the agent is. See Passport vs grant.
New behaviour on existing paths is off by default. Turn it on per deployment:
REGISTRY_PUBLIC_ENDPOINTS_ENABLEDserves the unauthenticated reads: the issuer list, the status lists, the lookup without an API key and the manifest.PASSPORT_BOUND_GRANTS_ENABLEDturns on passport-bound grants.AGENT_KEY_HISTORY_MIRROR_ENABLEDmakesPOSTandPATCH /v1/agentswrite the agent's key into the key history, and refuse a key that is compromised or belongs to another agent.REGISTRY_ATTESTATION_EDDSA_ENABLEDaccepts EdDSA attestations as well as ES256.
Self-hosting lists every variable. Guides for each audience:
- Becoming an accredited issuer
- Registering agents, for providers
- Verifying agents, for relying parties
The specifications are registry federation, attestations, agent keys, Agent Passport 1.0, passport binding and verification. This Agent Passport, an SD-JWT VC issued by an accredited issuer, is separate from the MPP AgentPassportCredential described below.
Demo: developer opt-in attestation
make demo-attest runs the registration flow end to end against the
repository's mock accredited issuer, with no external party: register an
agent, prove its key, request attestation through the issuer adapter seam,
see the level attested in the public lookup, revoke at the issuer, and see
the level drop. make demo-verify goes on to a grant bound to the passport,
a relying party's verify() passing, the issuer revoking and verify()
denying, and the verifier's adversarial fixtures all denied. Each step is
labelled live (the registry), fixture (the mock issuer) or verifier. See
Running the Mock Issuer
and Verifying Agents.
Current Releases
Grantex components are independently versioned. The protocol specification remains v1.0 Final; SDK, MCP package, and roadmap milestone versions are separate release lines and do not represent a monorepo-wide version.
Public releases below were verified on 2026-10-04. Repository versions are release candidates until the corresponding registry confirms publication.
The current releases are TypeScript 0.8.2, Python 0.7.2, Go v0.4.3,
CLI 0.4.2, gateway 0.3.0, and MCP Auth 4.1.0. See the complete
migration guide before
upgrading: Node.js requirements, audience binding, capped-call amounts and
online revocation defaults are breaking changes.
TypeScript 0.8.2 and Python 0.7.2 include service-side enforce() audience
binding, denial of capped calls without trusted amounts, and online revocation
by default. Register the agent's resource servers before audience-bound
authorization, configure the intended audience at the service boundary, and
supply a validated amount for every capped call. Offline verification alone
does not prove current revocation; integrations must explicitly wire their
current-state enforcement. Node.js 22.12+ is required for the changed npm packages.
See release limitations.
The October 4 npm and PyPI artifacts match their validated CI archives; the Go tag resolves through the public proxy and its downloaded module passed tests and vet. A clean Python SDK install passed on the workstation. Earlier Docker testing applies to the versions in the historical validation report.
Deployment responsibilities: MCP Auth
4.1.0supports durable shared storage, rendered consent and corrected code handoff. Configure shared state, resource audience, a required host-authenticated human-principal resolver and trusted current-grant verification before production use. A consent page does not itself authenticate a human or provision passkeys. See the release-status guide.
Repository development status: the auth service enforces Redis-backed Free/Pro/Enterprise developer budgets of 100/500/2,000 requests per minute on API-key routes handled by the standard auth plugin; revoking and the emergency stop have a budget of their own, as do the revocation feed and status reads. Custom-auth quota policy remains open and the managed-service rollout remains independent of SDK publication.
Omit a version pin to install the registry's current latest release. See the release-status documentation, COMPATIBILITY.md for the full package matrix, and CHANGELOG.md for release notes.
- @grantex/gemma: Offline consent bundles and on-device verification examples
- MCP Authorization Server (
@grantex/mcp-auth): OAuth 2.1 + PKCE endpoints with durable storage adapters, rendered consent, authenticated human-principal resolution, resource binding and current-grant verification; version 4 requires host authentication configuration - MCP Tool Server (
@grantex/mcp): Agent-facing Grantex tools for MCP clients - @grantex/dpdp: DPDP Act 2023 and EU AI Act control mappings
- Trust Registry: Public DID verification registry —
grantex.dev/registry grantex verify: Token inspection CLI — no account needed- Agent CLI Skills: One-command
SKILL.mdinstallation for Hermes, OpenClaw, and portable Agent Skills clients - Anomaly Detection: Four implemented SQL-backed checks, lifecycle APIs, and stored rule/channel configuration; notification delivery requires a host worker
SDK quickstart
Execution authority and human identity
Signature verification alone does not establish current permission or prove that the executing agent belongs to the authenticated human. Published TypeScript SDK 0.8.1 adds optional per-invocation issuer checks and trusted principal/agent bindings. Python, Go and changed execution integrations are now published. Existing offline defaults are unchanged. Human authentication and live consent remain issuer/host responsibilities. Action-bound decisions and cumulative spend controls must be enforced using the actual execution inputs, not inferred from a valid JWT. See SDK execution authority for setup, package boundaries and release requirements.
Hermes, OpenClaw, and any agent CLI
Shell-capable agents use the same JSON-first CLI; no agent-specific SDK is required:
The bundle installs use-grantex-cli for delegated-authorization operations and integrate-grantex for service-boundary implementation work. For a different host, use grantex agent install --dir /path/to/skills. Prefer --env, --file, or --stdin token inputs and keep final enforcement inside the protected service.
35 packages across TypeScript, Python, and Go. Integrations for Anthropic SDK, LangChain, OpenAI Agents SDK, Google ADK, Strands Agents SDK, CrewAI, Vercel AI, AutoGen, MCP, Express.js, FastAPI, and Terraform. Use the compatibility matrix for versions, the changelog for release notes, and GitHub Actions for current CI status. SDKs are Apache-2.0; the self-hostable server is under the Orchestrum Personal Use License 1.0, and any organisation needs written permission (see Licence). The new relying-party Python verifier remains private source, not a registry release.
The Problem
AI agents are booking travel, sending emails, deploying code, and spending money — on behalf of real humans. But:
- No scoping — agents get the same access as the key owner
- No consent — users never approve what the agent can do
- No per-agent identity — you know the key was used, but not which agent or why
- No revocation granularity — one agent misbehaves, rotate the key, kill everything
- No delegation control — Agent A calls Agent B? Copy-paste credentials
- No spending limits — an agent with a cloud API key can provision unlimited resources
OAuth and IAM provide essential foundations, but many agent deployments still rely on shared credentials that do not identify the individual agent or encode its delegated authority.
How It Works
[Grantex Protocol Flow]Quickstart
1. Register your agent
2. Request authorization from a user
3. Exchange the authorization code for a grant token
Refresh tokens are single-use and rotate on every accepted refresh. If the
refresh HTTP response is lost after the server commits, retry the same previous
refresh token immediately; Grantex can recover the already-rotated token pair
for five minutes (300 seconds). Refresh does not extend token.expiresAt; after
the grant expires, start a new authorization request.
4. Verify the token and use it
5. Record the action at the execution boundary
6. Verify a token (service-side)
7. Give users control over their permissions
Python SDK
The Grant Token
Grantex tokens are standard JWTs (RS256) extended with agent-specific claims. Any service can verify their signatures locally using the issuer's published JWKS. The provided verifiers retrieve those keys from the configured JWKS URL, so applications should account for network availability, caching, and key rotation:
Delegation claims (present on sub-agent tokens):
Multi-Agent Delegation
Grantex supports multi-agent pipelines where a root agent spawns sub-agents with narrower scopes. Sub-agent tokens carry a full delegation chain that any service can inspect.
Constraints enforced by the protocol:
- Sub-agent scopes must be a strict subset of the parent's scopes — scope escalation is rejected with 400
- Sub-agent token expiry is
min(parent expiry, requested expiry)— sub-agents can never outlive their parent - Revoking a root grant cascades to all descendant grants atomically
Advanced Features
Enterprise SSO - OIDC and SAML 2.0, plus an LDAP direct-bind preview
Enterprise SSO
Grantex provides OIDC and SAML 2.0 enterprise SSO with multiple identity-provider connections, email-domain routing, JIT provisioning, and group-to-scope mapping from identity-provider claims. The LDAP surface is a direct-bind preview: it authenticates a supplied directory identity but does not search directories or retrieve LDAP groups. The hosted dashboard sign-in currently supports OIDC; SAML and LDAP callback flows are for custom integrations.
Key capabilities:
- Multi-IdP connections - Configure multiple OIDC and SAML 2.0 identity providers per organization; LDAP connection records support the direct-bind preview
- OIDC Discovery + JWKS verification — Automatic endpoint discovery and cryptographic ID token verification
- SAML 2.0 — Full SAML response parsing with certificate-based signature verification
- LDAP / Active Directory preview - Direct-bind authentication only; directory search and LDAP group retrieval are not implemented
- Domain-based routing — Automatically route users to the correct IdP based on their email domain
- JIT provisioning — Auto-create or update principals on first SSO login
- Group-to-scope mapping - Map OIDC or SAML group/role claims to Grantex scopes; this does not retrieve LDAP groups
- Human SSO enforcement — With the server feature enabled and an organization opt-in, require a matching SSO session for hosted dashboard sign-in and principal consent; live consent still requires a passkey. Machine API keys remain valid for API automation.
- Session management — Track, list, and revoke active SSO sessions
TypeScript
Python
CLI
Enabling invalidates prior browser SSO sessions and safely migrates only
unambiguous, session-proven JIT identities. If a principal was mapped to
multiple IdP subjects, enablement fails with SSO_IDENTITY_CONFLICT until
resolved. An active JIT-enabled OIDC connection and a recent successful admin
SSO login are required. The developer API key is a deliberate machine-access
exception: it can still call management APIs and disable enforcement, so store
it as a privileged secret. See the enterprise SSO guide
for the rollout and local signed-IdP test procedure.
FIDO2 / WebAuthn — passkey-based consent verification
FIDO2 / WebAuthn
Grantex supports passkey-based human presence verification using FIDO2/WebAuthn. Live-mode consent requires a passkey assertion; sandbox-mode accounts can opt in with fidoRequired: true. The assertion confirms use of a registered credential during the consent flow. A passkey-required sandbox request stays pending just like live consent: neither /v1/authorize nor OAuth PAR auto-approves it, and developer-key shortcuts cannot approve or deny it.
How It Works
- Developer configures FIDO — Live mode already requires it; set
fidoRequired: trueviaPATCH /v1/meto require it in sandbox mode too. - Application enrolls the customer — After authenticating the customer, the application issues a one-use hosted enrollment link for their exact principal ID. The consent URL alone cannot register a passkey.
- User authenticates on consent — On subsequent authorization requests, the user completes a WebAuthn assertion challenge instead of a simple button click
- Consent requires verified presence — With portable evidence enabled, Grantex stores the verified assertion on the pending request, binds it to the grant, and puts a signed digest reference in the grant token. An opt-in VC carries the assertion verification inputs.
SDK Usage
Hosted enrollment is included in published @grantex/[email protected],
grantex==0.7.2, and github.com/mishrasanjeev/[email protected].
The Grantex-hosted service has PASSKEY_ENROLLMENT_ENABLED=true and uses
grantex.dev as its WebAuthn RP ID; self-hosted operators must configure
their own HTTPS origin and enable the flag. Publishing an SDK does not enable
it on a server.
WebAuthn API Endpoints
Hosted enrollment requires PASSKEY_ENROLLMENT_ENABLED=true and a correctly configured HTTPS FIDO_ORIGIN/FIDO_RP_ID; the server feature is off by default. Live-mode consent requires an existing passkey, with no weaker fallback. See the WebAuthn guide for the customer identity-binding and one-use link requirements. The guide also distinguishes the hosted SDK methods from the REST-only custom assertion ceremony.
For a production rollout, deploy the auth service and the /passkey-enroll hosting rewrite before enabling the flag. Then run Production Passkey and Irregularity E2E from GitHub Actions. That test creates an isolated live account, enrolls a virtual passkey, approves consent, checks portable evidence in an opt-in VC, refreshes and delegates the grant, and tests alert-only and revoke modes. It leaves the test account and audit records in production; do not run it against a customer account.
The workflow also tests sandbox/live consent parity, two authenticator devices,
denial, credential removal, one-use ticket replay, and live OAuth approval and
denial after interactive principal selection. Credential removal blocks new
assertions. A dashboard browser regression covers login, enrollment-link
issuance, registration, listing and confirmed removal using a bodyless DELETE;
the portal sends JSON content type only for requests with a JSON body. Revoke
existing grants separately. Agents with issued VCs cannot
be hard-deleted (409 AGENT_HAS_CREDENTIAL_HISTORY); suspend them and revoke
their grants to retain verifiable status history. Chromium virtual-authenticator
checks are not certification of every physical device or browser.
Verifiable Credentials — W3C VC-JWT issuance and verification
Verifiable Credentials
Grantex can issue W3C Verifiable Credentials (VCs) alongside standard JWTs. While JWTs are optimized for real-time authorization, VCs provide a portable, tamper-evident, standards-based proof of authorization that can be presented to any verifier — including systems outside the Grantex ecosystem.
Why VCs Matter for Agents
In agentic commerce, an agent acting on your behalf needs to prove its authorization to third-party services that may not integrate with Grantex directly. A Verifiable Credential is a self-contained, cryptographically signed document that any party can verify using the issuer's published DID document — no API calls, no accounts, no trust relationships required.
How It Works
When exchanging an authorization code for a grant token, pass credentialFormat: "vc-jwt" to receive a Verifiable Credential alongside the standard grant token:
Credential Types
Verifying a VC
Revocation via StatusList2021
Grantex implements the W3C StatusList2021 revocation mechanism. Each credential references a status list entry. When a grant is revoked, the corresponding bit in the status list is flipped, and any verifier checking the credential sees it as revoked.
Portable Passkey Evidence
The hosted Grantex service enabled portable evidence on September 27, 2026 and passed the production passkey, delegation, refresh, and revocation E2E workflow. Self-hosted installations still default to off and must follow the rollout guide. The current published TypeScript, Python, and Go SDKs expose typed grant evidence references and VC attestations; custom assertion ceremonies still use the REST endpoints.
Live consent requires a passkey assertion. With PORTABLE_WEBAUTHN_EVIDENCE_ENABLED=true (source default off), newly issued grants and grant tokens carry a signed webauthnEvidence summary with the assertion digest. Activation also requires IRREGULARITY_CASCADE_REVOCATION_ENABLED=true and PORTABLE_WEBAUTHN_EVIDENCE_STATUS_CHECK_ENABLED=true, so automatic grant revocation updates delegated grants, VCs, and public status-list bits, and issuer verification checks the underlying grant. Keep both safety flags on if portable issuance is later rolled back. Request credentialFormat: 'vc-jwt' (or 'both') at token exchange to receive a signed VC with the raw assertion, public key, challenge, RP ID, origin, and prior counter in vc.evidence. With this rollout enabled or evidence already present, the VC is issued atomically with the grant. Delegated grants inherit this original-ceremony evidence, not a new human approval. Historical grants without captured evidence cannot be upgraded retroactively; the principal must complete a new consent ceremony after activation.
Verify the VC signature, expiry and a fresh revocation status list; require your trusted RP ID and origin; reverify the WebAuthn assertion; and compare its digest to the grant-token reference. Offline signature verification alone does not prove current grant status. The authenticator signs a challenge, not the grant's scopes. Grantex's issuer signature supplies that binding and attests its credential enrollment; a verifier must decide whether to trust that issuer and enrollment process. Raw evidence contains a stable credential public key and is opt-in because it can correlate presentations. No payment-network certification is implied. See the WebAuthn guide and VC guide.
DID Infrastructure
Grantex publishes a W3C DID document at /.well-known/did.json (did:web:grantex.dev). This document contains the public keys used to sign Verifiable Credentials, enabling any party to verify credentials without contacting Grantex:
Verifiable Credentials API Endpoints
MPP Agent Identity — verifiable agent identity for machine payments
MPP Agent Identity
MPP (Machine Payments Protocol) defines HTTP 402 payment flows for software clients. Grantex can attach an AgentPassportCredential based on W3C Verifiable Credentials 2.0 so a configured merchant can verify agent, principal, category, amount-limit, expiry, and delegation claims after obtaining the issuer keys and current status data. The credential carries authorization context; it does not prove that a payment settled, an order was approved, or a provider accepted the transaction.
Why Agent Passports?
A wallet or payment-source identifier may not tell a merchant which internal agent is acting, which principal delegated authority, or which policy limits apply. An agent passport can supply that context when both sides integrate and enforce it.
The current Grantex passport shape uses Ed25519 signatures, a W3C VC 2.0 data model, configured purchase categories, transaction ceilings, expiry, delegation context, and StatusList2021-style status data. A relying merchant must still validate the issuer, refresh keys and status according to its risk policy, enforce the claims at the protected action, and run its own payment, fraud, sanctions, order, and settlement controls.
How It Works
Verification boundary: cached keys can support local signature checks after retrieval. Current revocation requires refreshed status data, and cache policy determines how quickly a relying service observes a change.
Credential Structure
Issue a Passport
TypeScript:
cURL:
Attach to MPP Requests
Verify on the Merchant Side
Standalone verification:
Express middleware (one-liner):
The 402 challenge flow
MPP's HTTP 402 flow is the "Payment" HTTP authentication scheme: WWW-Authenticate: Payment on the 402, Authorization: Payment on the retry, Payment-Receipt on success. (PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSE are x402 v2's headers.)
Trust Registry
Query any organization's verified trust level — no authentication required:
Revocation
Revoking a passport updates server-side status immediately. Local verifiers observe the change only after an online revocation check or status-data refresh, so cached results can lag:
Error Codes
MPP Agent Identity API Endpoints
See packages/mpp/ for full package docs. Demo: grantex.dev/mpp-demo.
SD-JWT Selective Disclosure — privacy-preserving credential presentation
SD-JWT Selective Disclosure
Grantex supports SD-JWT (Selective Disclosure JWT) for privacy-preserving credential presentation. While a standard VC-JWT reveals all claims to every verifier, SD-JWT lets the holder choose exactly which fields to disclose — keeping everything else hidden.
Why SD-JWT?
In agentic commerce, different verifiers need different levels of information. A payment processor needs to know the agent's scopes and budget, but not the principal's identity. A compliance auditor needs the principal and timestamps, but not the scopes. SD-JWT enables minimum-disclosure presentations that satisfy each verifier's requirements without over-sharing.
How It Works
When exchanging an authorization code, pass credentialFormat: "sd-jwt" to receive an SD-JWT credential:
Creating a Presentation
The holder selects which claims to disclose when presenting to a verifier:
SD-JWT Format
An SD-JWT consists of: <issuer-jwt>~<disclosure1>~<disclosure2>~...~
Each disclosure is a base64url-encoded JSON array [salt, claim-name, claim-value]. The verifier can only see claims for which a disclosure is provided.
Disclosable Claims
SD-JWT API Endpoints
Budget Controls — per-agent spending limits with atomic debit
Budget Controls
Grantex provides per-grant budget controls that let developers cap how much an agent can spend. Budget allocations are enforced atomically — if a debit would exceed the remaining balance, it fails with a 402 INSUFFICIENT_BUDGET error. Threshold alerts fire at 50% and 80% consumption, and the remaining budget is embedded in grant tokens via the bdg JWT claim.
Budget API Endpoints
Event Streaming — real-time SSE and WebSocket
Event Streaming
Self-hosters can set EVENT_STREAM_READY_ENABLED=true to flush an initial SSE
comment once the subscription is ready, avoiding the idle 30-second heartbeat
wait. The flag defaults off; hosted deployments enable it. Authentication,
connection limits and event payloads are unchanged, and no SDK update is needed.
Grantex provides real-time event streaming via Server-Sent Events (SSE) and WebSocket. Subscribe to authorization lifecycle events as they happen — grant creation, revocation, token issuance, and budget threshold alerts. Events are published to both webhooks and streaming endpoints, so you can choose push or pull.
Event Types
Event Streaming API Endpoints
Usage Metering — track API consumption per developer
Usage Metering
Grantex tracks API usage per developer — token exchanges, authorization requests, and verification calls. Use the metering API to monitor consumption, enforce plan limits, and export usage data for billing.
Usage Metering API Endpoints
Custom Domains — register & verify domains for white-labeling
Custom Domains
Grantex provides domain registration and DNS-based ownership verification so your account is provisioned and ready to host Grantex on your own domain. Today the API covers registration, verification, listing, and deletion; runtime traffic routing through verified domains (consent UI / API endpoints served from your domain) is on the roadmap and currently still served from *.grantex.dev. Track progress in issues.
Custom Domains API Endpoints
Policy-as-Code — OPA and Cedar policy backends
Policy-as-Code
Grantex supports pluggable policy backends for fine-grained authorization decisions. In addition to the built-in policy engine, you can connect OPA (Open Policy Agent) or Cedar to evaluate authorization requests against externally managed policy bundles. Policy bundles can be synced via direct upload or triggered automatically from a git repository webhook.
Supported Policy Backends
Policy-as-Code API Endpoints
DPDP Compliance — India's Digital Personal Data Protection Act 2023
DPDP Act 2023 Compliance
DPDP Act 2023 support includes consent records bound to grants and versioned notices with a signed proof, withdrawal with optional grant revocation, erasure that reports what is retained and why, grievances with a published response period, a breach register, and exports (DPDP audit, per-person GDPR Art. 15, EU AI Act evidence). This is a technical control mapping, not a legal certification: Grantex is not a registered Consent Manager and does not notify the Data Protection Board or data principals. Most DPDP obligations apply from 13 May 2027 (DPDP Rules 2025). See DPDP Compliance.
The published SDKs (@grantex/[email protected], grantex==0.7.2, [email protected]) and CLI (@grantex/[email protected]) cover the routes in the first table below; call the routes in the second table over REST unless your SDK version lists them.
DPDP API Endpoints
Newer routes, over REST:
Scope Enforcement
Enforce tool-level permissions on any connector — define your own manifests or use the 53 pre-built ones.
Quick Start
Permission Hierarchy
Bring your own manifests: define inline, load from JSON files, load from a directory, or auto-generate from source code via CLI. 53 pre-built manifests included: Salesforce, HubSpot, Jira, Stripe, SAP, S3, Gmail, Slack, GitHub, and 44 more — use as-is or as a starting point.
Framework helpers: wrapTool() wraps LangChain tools with automatic scope enforcement. createGrantexTool() covers TypeScript agent framework helpers including Strands Agents SDK. create_grantex_tool() covers Python OpenAI Agents SDK, Google ADK, and Strands Agents SDK tools. enforceMiddleware() adds one-line enforcement to Express/Fastify routes. FastAPI uses the GrantexEnforcer dependency.
See the Scope Enforcement Guide for full documentation.
Local Development
Use Node.js 24 LTS for repository installs, builds and tests. The upgraded
Vitest 5 toolchain needs Node.js 22.12 or newer; this contributor requirement
is separate from the runtime requirements of an already published SDK.
Use the checked-in lockfiles with npm ci and see CONTRIBUTING.md.
Start the full stack with one command:
Two API keys are seeded automatically:
Sandbox mode is designed for testing. With a sandbox key and fidoRequired: false (the default), POST /v1/authorize returns a code in the response body — no redirect required. Set fidoRequired: true to rehearse the real enrollment and consent ceremony instead:
Developer portal is available at grantex.dev/dashboard — sign up or enter an API key to manage agents, grants, policies, anomalies, compliance exports, and billing from the browser.
Account settings for live consent and irregularities: The Billing page shows your account's actual plan. The source limits are 1,000 active grants on Free, 50,000 on Pro, and unlimited on Enterprise, counted across the developer account rather than per agent. Check the deployed account with authenticated GET /v1/billing/subscription; an agent ID alone cannot reveal its plan. The Irregularities page offers an account-wide alert_only response to findings from POST /v1/anomalies/detect when IRREGULARITY_RESPONSE_POLICY_ENABLED=true. Without that server flag, the detector retains its existing agent-wide revocation of active grants on high/critical findings. Alert-only preserves alerts and does not bypass manual revocation or independent security gates. See the setup guide. Server availability depends on deployment and rollout flags. TypeScript @grantex/[email protected], Python grantex==0.7.2, and Go v0.4.3 publish the client methods.
For local development, the auth service also serves a lightweight dashboard at http://localhost:3001/dashboard.
See the self-hosting guide for production deployment guidance, or DEPLOYMENT.md for the complete deployment reference (system requirements, environment variables, Docker/Kubernetes/Cloud Run options, security checklist, monitoring). Python dependencies are in requirements.txt.
Why an Open Standard?
Grantex is built as an open protocol, not a closed SaaS product. Here's why that matters:
Model-neutral. Grantex operates at the SDK or protected-service boundary rather than depending on one model provider. The project documents use with OpenAI, Anthropic, Google, Llama, and Mistral models.
Framework-native. First-class integrations for LangChain, AutoGen, CrewAI, OpenAI Agents SDK, Google ADK, Strands Agents SDK, and plain code. Install one package, get Grantex in your existing stack.
Offline-verifiable signatures. Services verify token signatures locally using published JWKS. Applications should plan for JWKS retrieval and key rotation; availability during an issuer outage depends on their verifier's cache behavior.
Compliance-oriented controls. The EU AI Act, GDPR, and emerging AI regulations increasingly expect records of what automated systems did and who authorised it. Grantex provides technical controls that can support those programs from day one.
Scope Naming Convention
Grantex defines a standard scope format: resource:action[:constraint]
Service providers implement scope definitions for their APIs. Agents declare which scopes they need. Users see plain-language descriptions, never raw scope strings.
Integrations
This table is a source-and-registry status snapshot as of 2026-09-07; the primary SDK rows follow the release snapshot verified 2026-09-29. For integration packages, "Published package" identifies a public package surface; check its registry page and compatibility notes before choosing a version.
The guarded publish-primary-sdks.yml workflow builds and tests each prepared
version once, then publishes those immutable artifacts. Before it can publish, a
maintainer must configure the protected sdk-release GitHub environment, npm
trusted-publisher records for both npm packages, a PyPI trusted publisher for
grantex, and a narrowly scoped Go-repository release token. A manifest version
bump by itself is not a release.
Community x402 services
- JMT x402 Agent Tools provides paid Base-mainnet tools for search, analysis, market data, filings, company intelligence, and news. Query its discovery endpoint for the current tool catalog and pricing.
Framework Quick Examples
Express.js — grant token verification + scope-based authorization:
FastAPI — dependency injection with scope enforcement:
LangChain — scope-enforced tools + audit callbacks:
Vercel AI SDK — scope checked at construction time:
AutoGen / OpenAI function calling:
CrewAI (Python):
OpenAI Agents SDK (Python):
Google ADK (Python):
Strands Agents SDK (Python):
CLI (90+ commands, all support --json for AI agent / scripting use):
Interactive Playground
Try the full Grantex authorization flow live in your browser — no signup required:
Walk through all 7 steps of the protocol: register an agent, authorize, exchange tokens, verify, refresh, revoke, and verify revocation. Uses sandbox mode with your API key.
Examples
Architecture
Product Roadmap
The current product roadmap prioritizes a 2026.08 production-trust baseline: durable MCP authorization, primary-SDK parity and release safety, revocation-aware enforcement, plan throughput, and production Commerce consent. Repository progress is recorded under Unreleased; the release-status guide, compatibility matrix, and package-specific documentation remain authoritative for published versions, deployment status, and limitations. The labels below are historical source milestones, not release or production-readiness claims.
Contributing
Grantex welcomes contributions. CONTRIBUTING.md explains the contribution licence that lets Orchestrum Technologies LLP license contributions, including commercially:
- Report bugs — open a GitHub Issue with reproduction steps
- Propose features — open a GitHub Discussion with your use case
- Build new integrations — add Grantex support to your favorite framework
- Improve docs — better examples, tutorials, and translations
Read CONTRIBUTING.md before submitting a PR.
Standards & Compliance
Full compliance matrix: docs.grantex.dev/guides/compliance-matrix
Trusted By
Using Grantex under a commercial agreement with Orchestrum? Write to [email protected] to be listed here.
FAQ
Is this just another auth library?
Human identity systems and Grantex solve different layers. Human auth establishes who the person is; Grantex carries the scoped authority that person or organization delegated to a specific agent. Current revocation requires an online state check or synchronized revocation data at the enforcement point.
Why not just use OAuth 2.0?
OAuth 2.0 was designed for "user grants app permission to access their data." Agents introduce new requirements: the agent needs a verifiable identity separate from its creator, grants need to be chainable across multi-agent pipelines, and every autonomous action must be attributable and auditable. We extend OAuth 2.0 concepts but add the agent-specific primitives it lacks.
What about MCP (Model Context Protocol)?
MCP connects clients to tools and resources and defines optional OAuth-based authorization for HTTP transports. Grantex adds agent-specific delegated authority at the tool or service boundary: which agent may perform which action for which principal. The two layers are complementary.
Who owns the standard?
The v1.0 protocol specification is published in this repository under the Orchestrum Personal Use License 1.0. Grantex is owned by Orchestrum Technologies LLP, and Sanjeev Kumar is listed as inventor and owner. Orchestrum Technologies LLP maintains the reference implementation. Revision -02 is published as an active individual IETF Internet-Draft, and revision -03 is under review; neither publication nor repository implementation is working-group adoption, independent certification, or IETF endorsement.
Can I self-host?
Yes. The SDKs are Apache-2.0 and free for any use. The auth service and portal are under the Orchestrum Personal Use License 1.0: an individual may self-host them for their own personal use, and self-hosting by or for any organisation, including evaluation and pilots, needs prior written permission from Orchestrum Technologies LLP (see Licence). Docker Compose deploy in one command. See DEPLOYMENT.md for the complete guide or the self-hosting docs.
License
SDKs and client packages (packages/) and examples (examples/): Apache-2.0,
open source and free for any use. Auth service, portal, specification text,
documentation and website: Orchestrum Personal Use License 1.0,
licensor Orchestrum Technologies LLP; free only for an individual's personal
use, and any organisation needs prior written permission from Orchestrum
Technologies LLP
(COMMERCIAL-LICENSE.md,
[email protected]). Directory scope:
LICENSING.md. Trademarks: TRADEMARKS.md.
Third-party packages and the third-party files listed in
THIRD_PARTY_NOTICES.md retain their own licenses.
Review that file before redistribution.
Product ownership: Grantex is owned by Orchestrum Technologies LLP. Inventor and owner: Sanjeev Kumar. Ownership contact: [email protected] or [email protected].
來源:README.md,提交 cdf5207
工具
0版本歷史
1- v0.1.9最新Sep 16, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。