Cortex Licenses

Cortex Licenses turn payment into permission. Providers can keep Stripe, AWS Marketplace, x402, API keys, or invoices while publishing a canonical license record agents can verify before using a protected resource.

Why It Matters

Payments prove money moved. Licenses tell an agent what it is allowed to do with what it bought: read a report, analyze a dataset, produce commercial output, create derivatives, redistribute data, or use results for model training.

This helps agents avoid unauthorized use, helps providers sell to agent buyers without replacing their billing stack, and gives enterprise buyers an audit trail that connects quote, receipt, fulfillment, and usage rights.

License Document

{
  "schema": "cortex.license.v1",
  "issuer": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "holder": "0x1111111111111111111111111111111111111111",
  "merchant_id": "1",
  "service_numeric_id": "1",
  "service_id": "company-enrichment-v1",
  "asset_id": "dataset:company-enrichment:v1",
  "quote_hash": "0x1111111111111111111111111111111111111111111111111111111111111111",
  "receipt_id": "42",
  "rights": ["read", "analyze", "commercial_output"],
  "constraints": {
    "commercial_use": true,
    "derivative_use": true,
    "model_training": false,
    "redistribution": false
  },
  "expires_at": 1798761600
}

Seller Flow

  1. Register the merchant and service.
  2. Publish license tiers in the service catalog.
  3. After payment or entitlement creation, store the license through POST /licenses.
  4. Bind the license hash into quote terms, receipts, or attestations.
  5. Check the license before serving protected data.

Agent Flow

  1. Discover a service and inspect available rights.
  2. Pay through an allowed rail.
  3. Store the returned license_hash.
  4. Call check_license over MCP before using the resource.

Check API

{
  "license_hash": "0x...",
  "agent": "0x1111111111111111111111111111111111111111",
  "action": "commercial_output",
  "context": {
    "commercial": true,
    "model_training": false,
    "redistribution": false,
    "derivative": true
  }
}