openapi: 3.0.1 info: title: thirdweb Authentication Payments API description: thirdweb provides a unified interface for Web3 development. This specification documents real, publicly documented HTTP endpoints across the thirdweb unified API (api.thirdweb.com - wallets, transactions, contracts, tokens, payments and bridge), Engine (backend transaction execution), Insight (indexed on-chain data) and Nebula (AI blockchain interface). Authenticate frontend usage with an x-client-id header (plus x-bundle-id for native apps) or a Bearer JWT, and backend usage with an x-secret-key header. termsOfService: https://thirdweb.com/tos contact: name: thirdweb Support url: https://thirdweb.com/support version: '1.22' servers: - url: https://api.thirdweb.com description: thirdweb unified API (wallets, transactions, contracts, tokens, payments, bridge) - url: https://engine.thirdweb.com description: thirdweb Engine (backend transaction execution) - url: https://insight.thirdweb.com description: thirdweb Insight (indexed on-chain data) - url: https://nebula-api.thirdweb.com description: thirdweb Nebula (AI blockchain interface) security: - SecretKeyAuth: [] - ClientAuth: [] - BearerAuth: [] tags: - name: Payments description: Bridge, swap, convert, onramp, and x402 payments. paths: /v1/bridge/chains: get: operationId: bridgeChains tags: - Payments summary: List chains supported for bridging. responses: '200': description: Supported chains. /v1/bridge/routes: get: operationId: bridgeRoutes tags: - Payments summary: List supported bridge/swap routes. responses: '200': description: Supported routes. /v1/bridge/convert: get: operationId: bridgeConvert tags: - Payments summary: Convert a fiat amount to a crypto quote. responses: '200': description: Conversion quote. /v1/bridge/swap: post: operationId: bridgeSwap tags: - Payments summary: Swap or bridge tokens. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BridgeSwapRequest' responses: '200': description: Swap prepared. /v1/payments/x402/verify: post: operationId: x402Verify tags: - Payments summary: Verify an x402 payment. requestBody: required: true content: application/json: schema: type: object responses: '200': description: Verification result. /v1/payments/x402/settle: post: operationId: x402Settle tags: - Payments summary: Settle an x402 payment. requestBody: required: true content: application/json: schema: type: object responses: '200': description: Settlement result. /v1/payments/x402/supported: get: operationId: x402Supported tags: - Payments summary: List supported x402 payment methods. responses: '200': description: Supported payment methods. components: schemas: BridgeSwapRequest: type: object properties: tokenIn: type: object description: Source token (chainId and address). tokenOut: type: object description: Destination token (chainId and address). exact: type: string description: Exact input or output amount. from: type: string receiver: type: string slippageToleranceBps: type: integer required: - tokenIn - tokenOut securitySchemes: ClientAuth: type: apiKey in: header name: x-client-id description: Client ID for frontend usage. Web sends x-client-id only; native apps also send x-bundle-id. BundleIdAuth: type: apiKey in: header name: x-bundle-id description: Bundle ID for native (desktop/mobile) platform authentication alongside x-client-id. SecretKeyAuth: type: apiKey in: header name: x-secret-key description: Secret key for backend usage; never expose publicly. BearerAuth: type: http scheme: bearer bearerFormat: JWT description: JWT access token obtained from wallet authentication, for frontend usage.