rail-readiness

Get payment rail readiness. (read access required)

Changed on

Reports whether each payment rail is actually configured well enough to take payments, so setup UIs do not have to re-derive it from several list endpoints. Each rail returns isReady plus the individual checks behind it, each with a stable id the admin UI maps its setup steps onto. CardanoV2 also returns per-policy/contract PurchaseSources so read-auth consumers can gate outbound purchases against the exact source; these identifiers are public on-chain values. isReady covers blocking checks only: for x402 that means an enabled chain with a usable RPC URL and exactly one facilitator mode configured (a row with both a facilitator wallet and a facilitator URL fails at settle time), while the purchasing wallet is reported but optional. Only configuration presence is exposed — no keys or private wallet data.

get/rail-readiness

Request

  • Base URL: ./../api/v1/ (relative, and the document was published on a file host, not at the API’s origin)
  • URL: ./../api/v1/rail-readiness
  • Auth: API key in header token

Query parameters

network'Preprod' | 'Mainnet' required

Cardano environment to report on. x402 chains are grouped in by their testnet flag

Response

Rail readiness

status'success' required

Example response

{
  "status": "success",
  "data": {
    "network": "Preprod",
    "Rails": [
      {
        "rail": "CardanoV2",
        "isReady": false,
        "PurchaseSources": [
          {
            "policyId": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
            "smartContractAddress": "addr_test1_v2_contract",
            "isPurchaseReady": true,
            "Checks": [
              {
                "id": "cardano.payment_source",
                "label": "Payment source",
                "isComplete": true,
                "detail": "Active Web3CardanoV2 source found"
              },
              {
                "id": "cardano.contract_current",
                "label": "Current contract",
                "isComplete": true,
                "detail": null
              },
              {
                "id": "cardano.rpc_provider",
                "label": "Blockfrost API key",
                "isComplete": true,
                "detail": null
              },
              {
                "id": "cardano.admin_signatures",
                "label": "Admin wallets",
                "isComplete": true,
                "detail": null
              },
              {
                "id": "cardano.purchasing_wallet",
                "label": "Purchasing wallet",
                "isComplete": true,
                "detail": null
              },
              {
                "id": "cardano.payments_enabled",
                "label": "Payments enabled",
                "isComplete": true,
                "detail": null
              }
            ]
          }
        ],
        "Checks": [
          {
            "id": "cardano.payment_source",
            "label": "Payment source",
            "isComplete": true,
            "detail": "Active Web3CardanoV2 source found"
          },
          {
            "id": "cardano.contract_current",
            "label": "Current contract",
            "isComplete": true,
            "detail": null
          },
          {
            "id": "cardano.rpc_provider",
            "label": "Blockfrost API key",
            "isComplete": true,
            "detail": null
          },
          {
            "id": "cardano.admin_signatures",
            "label": "Admin wallets",
            "isComplete": true,
            "detail": null
          },
          {
            "id": "cardano.selling_wallet",
            "label": "Selling wallet",
            "isComplete": false,
            "detail": "No selling wallet — the source cannot receive payments"
          },
          {
            "id": "cardano.purchasing_wallet",
            "label": "Purchasing wallet",
            "isComplete": true,
            "detail": null
          },
          {
            "id": "cardano.payments_enabled",
            "label": "Payments enabled",
            "isComplete": true,
            "detail": null
          }
        ]
      },
      {
        "rail": "X402",
        "isReady": true,
        "Checks": [
          {
            "id": "x402.enabled_chain",
            "label": "Enabled chain",
            "isComplete": true,
            "detail": "eip155:84532"
          },
          {
            "id": "x402.rpc_url",
            "label": "RPC endpoint",
            "isComplete": true,
            "detail": null
          },
          {
            "id": "x402.facilitator",
            "label": "Facilitator",
            "isComplete": true,
            "detail": "Self-hosted facilitator wallet"
          },
          {
            "id": "x402.selling_wallet",
            "label": "Selling wallet",
            "isComplete": true,
            "detail": null
          },
          {
            "id": "x402.purchasing_wallet",
            "label": "Purchasing wallet",
            "isComplete": false,
            "detail": "Optional — needed only to pay other agents"
          }
        ]
      }
    ]
  }
}

Changes

    • info

      removed the x402.budget enum value from the ///// response property for the response status

    • info

      removed the x402.budget enum value from the /////// response property for the response status

    • info

      added the optional property /// to the response with the status