openapi: 3.1.0 info: title: Biconomy Supertransaction API (MEE) version: '1.0' description: >- The Biconomy Supertransaction API exposes the Modular Execution Environment (MEE) over a small REST surface. /v1/quote composes a multichain execution plan and returns the signable payload(s); /v1/execute submits the signed quote and the MEE orchestrates cross-chain settlement. Three account modes are supported - eoa, smart-account (ERC-4337 / Nexus / ERC-7579), and eoa-7702 (EIP-7702 delegation). contact: name: Biconomy url: https://docs.biconomy.io license: name: Proprietary servers: - url: https://api.biconomy.io description: Biconomy MEE production security: - ApiKeyAuth: [] components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Key description: Project-scoped API key issued from dashboard.biconomy.io. paths: /v1/quote: post: description: Compose instructions and retrieve a MEE quote in a single request. summary: Compose instructions and generate a quote tags: &ref_0 - root parameters: [] operationId: quote requestBody: description: Body content: application/json: schema: description: >- Combine compose flows with quote configuration to compose instructions and generate a quote in a single call. type: object properties: mode: type: string enum: - smart-account - eoa - eoa-7702 ownerAddress: description: >- EOA wallet address which is used as owner of the orchestrator account type: string example: '0x0a7C906832544293a6018bA25280c7f7b0Bbf120' authorizations: type: array items: description: >- Object containing the EIP-7702 authorization signature fields for delegation, including the signer address, chain ID, nonce, and ECDSA signature components (r, s, v/yParity). Used to prove delegation intent and validity. type: object properties: address: description: >- The EVM address of the delegation contract to which your EOA (Externally Owned Account) is being upgraded. Must be a valid checksummed Ethereum address. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: >- The chain ID for which this authorization is valid. Use 0 for multichain or specify a supported chain ID. type: number example: 8453 nonce: description: Signature nonce type: number example: 38 r: description: >- The "r" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x192a2503401595804c35cdc5b748fe35cceb77ef534bf5d670f7797376487ded s: description: >- The "s" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x1fd3c8acd0b7c5f64a8d72c35c39988544fca961b838277ab11750041cccc3d1 v: example: '28' description: >- The "v" value of the ECDSA signature (recovery id), as a string. Optional for EIP-2098 signatures. type: string yParity: description: >- The y-parity value (EIP-2098) for the signature. Should be 0 or 1. type: number example: 1 required: - address - chainId - nonce - r - s - yParity additionalProperties: false fundingTokens: type: array items: description: >- Object containing the funding token deposit for MEE fusion execution. type: object properties: tokenAddress: description: >- Contract address of the token that will be deposited into the Nexus smart account. type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' chainId: description: >- Chain ID where the funding token resides. Use a supported chain ID. type: number example: 1 amount: description: >- Amount of funding token in wei/smallest unit to deposit. type: string example: '1000000000' required: - tokenAddress - chainId - amount additionalProperties: false feeToken: description: >- Optional fee token configuration. If not specified, sponsorship will be used. type: object properties: address: description: >- Contract address of the token used to pay MEE execution fees type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' chainId: description: >- Chain ID where the fee token resides. Use a supported chain ID. type: number example: 1 gasRefundAddress: example: '0x0a7C906832544293a6018bA25280c7f7b0Bbf120' description: >- Custom gas refund address to receive remaining unspent gas. Defaults to owner address. Gas refunds are always in ETH and may be refunded on multiple chains depending on userOps involved. type: string required: - address - chainId additionalProperties: false cleanUps: description: Optional cleanup configurations for intermediate tokens type: array items: description: >- Cleanup configuration for intermediate tokens that may remain after failed operations. type: object properties: tokenAddress: description: Address of the token to cleanup type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' chainId: description: Chain ID where the token cleanup should occur type: number example: 1 recipientAddress: description: Address to receive the cleanup tokens type: string example: '0x0a7C906832544293a6018bA25280c7f7b0Bbf120' amount: example: '1000000' description: >- Amount to cleanup in wei. If not specified, uses runtime balance (entire balance). type: string gasLimit: example: '150000' description: Custom gas limit for cleanup userOp type: string required: - tokenAddress - chainId - recipientAddress additionalProperties: false gasLimit: description: Optional gas limit override for the gas userop. type: string example: '12345678901234567890' lowerBoundTimestamp: description: The lower bound timestamp for the user operation. type: number example: 1710000000 upperBoundTimestamp: description: The upper bound timestamp for the user operation. type: number example: 1710003600 simulate: type: boolean simulationOverrides: type: object properties: tokenOverrides: default: [] type: array items: type: object properties: tokenAddress: description: Address of the token to override the balance for. type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' accountAddress: example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' description: >- Address of the account to override the balance for. type: string chainId: description: Chain ID where the token override should occur type: number example: 1 balance: description: >- Balance of the token to override the balance for, in wei/smallest unit. type: string example: '1000000000' required: - tokenAddress - chainId - balance additionalProperties: false customOverrides: default: [] type: array items: type: object properties: contractAddress: description: >- Address of the contract to override the storage slot for. type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' storageSlot: description: Storage slot to override the value for. type: string example: >- 0x1234567890123456789012345678901234567890123456789012345678901234 chainId: description: >- Chain ID where the storage slot override should occur type: number example: 1 value: description: Value to override the storage slot for. type: string example: '0x1234567890123456789012345678901234567890' required: - contractAddress - storageSlot - chainId - value additionalProperties: false required: - tokenOverrides - customOverrides additionalProperties: false composeFlows: minItems: 1 maxItems: 10 type: array items: description: >- This enable developers to specify a build, intent-simple, or intent operation anyOf: - type: object properties: type: description: >- Compose flow for the "build" type to generate composable MEE instructions from a custom specification. example: /instructions/build type: string const: /instructions/build data: description: >- Request to build composable instructions from ABI signature and arguments type: object properties: to: description: Target contract address type: string example: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' chainId: description: >- Chain ID where the transaction will be executed type: number example: 8453 value: example: '0' description: Native token value in wei type: string gasLimit: example: '50000' description: Gas limit for the transaction type: string functionSignature: description: >- Function signature string (e.g., "function approve(address spender, uint256 amount)") type: string example: function transfer(address to, uint256 amount) args: type: array items: {} required: - to - chainId - functionSignature - args additionalProperties: false batch: description: >- Flag to enable or disable instructions batching. By default, batching is enabled type: boolean example: true required: - type - data additionalProperties: false - type: object properties: type: description: >- Compose flow for the "build-raw" type to generate composable MEE instructions from raw calldata. example: /instructions/build-raw type: string const: /instructions/build-raw data: description: >- Request to build composable instructions from raw calldata type: object properties: to: description: Target contract address type: string example: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' chainId: description: >- Chain ID where the transaction will be executed type: number example: 8453 value: example: '0' description: Native token value in wei type: string gasLimit: example: '50000' description: Gas limit for the transaction type: string data: description: >- Raw calldata as hex string (e.g., "0x1234..." for encoded function call) type: string example: >- 0xa9059cbb0000000000000000000000001234567890123456789012345678901234567890000000000000000000000000000000000000000000000000000000000000000a required: - to - chainId - data additionalProperties: false batch: description: >- Flag to enable or disable instructions batching. By default, batching is enabled type: boolean example: true required: - type - data additionalProperties: false - type: object properties: type: description: >- Compose flow for the "build-ccip" type to generate composable MEE instructions for Chainlink CCIP token bridging example: /instructions/build-ccip type: string const: /instructions/build-ccip data: type: object properties: srcToken: description: >- Source token EVM address. Must be a valid checksummed Ethereum address. type: string example: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' dstToken: description: >- Destination token EVM address. Must be a valid checksummed Ethereum address. type: string example: '0x94b008aa00579c1307b0ef2c499ad98a8ce58e58' srcChainId: description: >- The source chain ID for the swap or token bridging. Use a supported chain ID number. type: number example: 8453 dstChainId: description: >- The destination chain ID for the swap or token bridging. Use a supported chain ID number. type: number example: 10 amount: anyOf: - example: '1000000' - description: >- Schema for specifying a runtime ERC20 balance check, including the target address, token address, and optional constraints. type: object properties: type: example: runtimeErc20Balance type: string const: runtimeErc20Balance targetAddress: example: >- 0x742d35cc6639cb8d4b5d1c5d7b8b5e2e7c0c7a8a description: >- The address whose ERC20 balance will be checked at runtime. If not provided, the balance will be checked for the smart account address derived from the owner address. type: string tokenAddress: example: >- 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 constraints: description: >- Constraints for runtime value checks. Specify one or more of gte, lte, or eq to restrict the value. type: object properties: gte: example: '1000000' description: Greater than or equal to type: string lte: example: '10000000' description: Less than or equal to type: string eq: example: '5000000' description: Equal to type: string additionalProperties: false required: - type - tokenAddress additionalProperties: false gasLimit: example: '50000' description: Gas limit for the CCIP token bridging type: string required: - srcToken - dstToken - srcChainId - dstChainId - amount additionalProperties: false batch: description: >- Flag to enable or disable instructions batching. By default, batching is enabled type: boolean example: true required: - type - data additionalProperties: false - type: object properties: type: description: >- Compose flow for the "intent-simple" type for basic cross-chain swaps. example: /instructions/intent-simple type: string const: /instructions/intent-simple data: type: object properties: srcToken: description: >- Source token EVM address. Must be a valid checksummed Ethereum address. type: string example: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' dstToken: description: >- Destination token EVM address. Must be a valid checksummed Ethereum address. type: string example: '0x94b008aa00579c1307b0ef2c499ad98a8ce58e58' srcChainId: description: >- The source chain ID for the swap or token bridging. Use a supported chain ID number. type: number example: 8453 dstChainId: description: >- The destination chain ID for the swap or token bridging. Use a supported chain ID number. type: number example: 10 amount: example: '1000000' routeSelectionMode: description: >- Swap route selection strategy. Use `cheap` (default) to evaluate every route and pick the highest output. Use `fast-quote` to return as soon as the first valid route is discovered. `fast-execution` is reserved for future use. example: cheap type: string enum: - cheap - fast-quote - fast-execution allowSwapProviders: example: lifi,gluex description: >- Comma-separated list of allowed swap providers. type: string denySwapProviders: example: '' description: Comma-separated list of denied swap providers. type: string allowBridgeProviders: example: across description: >- Comma-separated list of allowed bridge providers. type: string denyBridgeProviders: example: across description: >- Comma-separated list of denied bridge providers. type: string slippage: description: 'Slippage tolerance (0-1, default: 0.01 = 1%)' example: 0.01 default: 0.01 type: number minimum: 0 maximum: 1 required: - srcToken - dstToken - srcChainId - dstChainId - amount - slippage additionalProperties: false batch: description: >- Flag to enable or disable instructions batching. By default, batching is enabled type: boolean example: true required: - type - data additionalProperties: false - type: object properties: type: description: >- Compose flow for the "intent" type for advanced multi-chain, multi-asset operations. example: /instructions/intent type: string const: /instructions/intent data: type: object properties: slippage: description: >- Slippage must be a number between 0 and 1 (inclusive) example: 0.003 type: number minimum: 0 maximum: 1 inputPositions: minItems: 1 type: array items: description: >- Input position specifying the chain, token, and amount to be used as input for the intent request. type: object properties: chainToken: description: >- The chain and token for the input position. Must include a supported chainId and a valid EVM token address. example: chainId: 8453 tokenAddress: >- 0x742d35Cc6634C0532925a3b844Bc454e4438f44e type: object properties: chainId: description: >- The chain and token for the input position. Must include a supported chainId and a valid EVM token address. type: number example: 8453 tokenAddress: description: >- The chain and token for the input position. Must include a supported chainId and a valid EVM token address. type: string example: >- 0x742d35Cc6634C0532925a3b844Bc454e4438f44e required: - chainId - tokenAddress additionalProperties: false amount: example: '1000000' required: - chainToken - amount additionalProperties: false targetPositions: description: >- Target positions: target assets with their respective weights. Weights define the distribution of the output assets. Weights for all the entries must sum to 1 minItems: 1 type: array items: description: >- Target position specifying the chain, token, and weight for the intent request. type: object properties: chainToken: description: >- The chain and token for the target position. Must include a supported chainId and a valid EVM token address. example: chainId: 8453 tokenAddress: >- 0x742d35Cc6634C0532925a3b844Bc454e4438f44e type: object properties: chainId: description: >- The chain and token for the target position. Must include a supported chainId and a valid EVM token address. type: number example: 8453 tokenAddress: description: >- The chain and token for the target position. Must include a supported chainId and a valid EVM token address. type: string example: >- 0x742d35Cc6634C0532925a3b844Bc454e4438f44e required: - chainId - tokenAddress additionalProperties: false weight: example: 0.5 required: - chainToken - weight additionalProperties: false required: - slippage - inputPositions - targetPositions additionalProperties: false batch: description: >- Flag to enable or disable instructions batching. By default, batching is enabled type: boolean example: true required: - type - data additionalProperties: false required: - mode - ownerAddress - composeFlows additionalProperties: false responses: '200': description: >- Combined response containing composed instructions and the resulting MEE quote. content: application/json: schema: description: >- Combined response containing composed instructions and the resulting MEE quote. type: object properties: ownerAddress: description: >- Owner wallet address which will be used as a owner of orchestrator account type: string example: '0x1234567890abcdef1234567890abcdef12345678' fee: description: 'Fee details: amount, token address, and chain ID.' type: object properties: amount: description: Fee amount for the quote in wei. type: string example: '10000000000000000' token: description: >- EVM address of the fee token (zero address for native ETH). type: string example: '0x0000000000000000000000000000000000000000' chainId: description: Chain ID where the fee token resides. type: number example: 8453 required: - amount - token - chainId additionalProperties: false quoteType: description: >- Type of MEE signature: permit, onchain, simple, permit-sca, or mm-dtk. example: permit type: string enum: - permit - onchain - simple - permit-sca - mm-dtk quote: description: MEE network compatible quote information type: object properties: hash: description: Supertransaction hash of the quote. type: string example: >- 0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef node: description: EVM address of the node providing the quote. type: string example: '0x9876543210abcdef9876543210abcdef98765432' commitment: description: >- Node's commitment hash for the supertransaction quote (hex string, 0x-prefixed). type: string example: >- 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef paymentInfo: type: object properties: sender: description: Sender EVM address (optional) type: string example: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' initCode: default: 0x description: Init code as hex string (optional) type: string example: '0x1234abcd' nonce: description: Nonce as string (optional) type: string example: '0' token: description: Payment token address type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: Chain ID of the payment token type: number example: 1 verificationGasLimit: example: '21000' description: Verification gas limit as string (optional) type: string eoa: example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' description: EOA address (optional) type: string eip7702Auth: description: >- Object containing the EIP-7702 authorization signature fields for delegation, including the signer address, chain ID, nonce, and ECDSA signature components (r, s, v/yParity). Used to prove delegation intent and validity. type: object properties: address: description: >- The EVM address of the delegation contract to which your EOA (Externally Owned Account) is being upgraded. Must be a valid checksummed Ethereum address. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: >- The chain ID for which this authorization is valid. Use 0 for multichain or specify a supported chain ID. type: number example: 8453 nonce: description: Signature nonce type: number example: 38 r: description: >- The "r" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x192a2503401595804c35cdc5b748fe35cceb77ef534bf5d670f7797376487ded s: description: >- The "s" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x1fd3c8acd0b7c5f64a8d72c35c39988544fca961b838277ab11750041cccc3d1 v: example: '28' description: >- The "v" value of the ECDSA signature (recovery id), as a string. Optional for EIP-2098 signatures. type: string yParity: description: >- The y-parity value (EIP-2098) for the signature. Should be 0 or 1. type: number example: 1 required: - address - chainId - nonce - r - s - yParity additionalProperties: false shortEncoding: example: false default: false description: 'Short encoding flag (default: false)' type: boolean callGasLimit: example: '50000' description: Call gas limit as string (optional) type: string sponsored: example: true description: Sponsored flag (optional) type: boolean sponsorshipUrl: example: https://sponsorship.abc.org description: Sponsored ulr (optional) type: string tokenAmount: example: 1000 (1000 USDC), 1 (1 ether) description: Token amount as string (optional) type: string tokenValue: description: Token value as string in USD type: string example: >- 1000 (for 1000 USDC), 250000 (for 1 WBTC very soon) tokenWeiAmount: description: Token wei amount as string (optional) type: string example: >- 1000000000000000000000 (1000 ether), 250000 (0.25 USDC) gasFee: example: '21000000000000000' description: Gas fee as string (optional) type: string orchestrationFee: example: '1000000000000000' description: Orchestration fee as string (optional) type: string required: - sender - initCode - nonce - token - chainId - shortEncoding - tokenValue - tokenWeiAmount additionalProperties: false userOps: description: Array of MEE UserOperation objects for the quote. type: array items: description: >- Object containing the fields of a MEE UserOperation which is a Wrapper for userops supported by MEE nodes type: object properties: userOp: description: >- Object containing the fields of a UserOperation, including sender, nonce, calldata, gas limits, and signature. type: object properties: sender: description: >- The address of the account initiating the user operation. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' nonce: description: >- The nonce of the sender account, as a bigint. type: string example: '0' initCode: description: >- The initCode for contract creation, as a hex string. Optional. type: string example: '0x1234abcd' callData: description: >- The calldata for the user operation, as a hex string. type: string example: '0x1234abcd' callGasLimit: description: The gas limit for the call, as a bigint. type: string example: '21000' verificationGasLimit: description: The gas limit for verification, as a bigint. type: string example: '100000' preVerificationGas: description: >- The gas used before verification, as a bigint. type: string example: '21000' maxFeePerGas: description: The maximum fee per gas, as a bigint. type: string example: '1000000000' maxPriorityFeePerGas: description: >- The maximum priority fee per gas, as a bigint. type: string example: '100000000' paymasterAndData: example: 0x description: >- The paymaster and data field, as a hex string. Optional. type: string signature: example: '0xabcdef123456' description: >- The signature for the user operation, as a hex string. Optional. type: string required: - sender - nonce - callData - callGasLimit - verificationGasLimit - preVerificationGas - maxFeePerGas - maxPriorityFeePerGas additionalProperties: false userOpHash: description: The hash of the user operation. type: string example: '0x1234abcd5678ef90' meeUserOpHash: description: The MEE-specific hash of the user operation. type: string example: '0xabcdef1234567890' lowerBoundTimestamp: description: >- The lower bound timestamp for the user operation. type: number example: 1710000000 upperBoundTimestamp: description: >- The upper bound timestamp for the user operation. type: number example: 1710003600 maxGasLimit: description: The maximum gas limit for the user operation. type: string example: '1000000' maxFeePerGas: description: The maximum fee per gas for the user operation. type: string example: '1000000000' chainId: description: The chain ID for the user operation. type: number example: 8453 eip7702Auth: description: >- Object containing the EIP-7702 authorization signature fields for delegation, including the signer address, chain ID, nonce, and ECDSA signature components (r, s, v/yParity). Used to prove delegation intent and validity. type: object properties: address: description: >- The EVM address of the delegation contract to which your EOA (Externally Owned Account) is being upgraded. Must be a valid checksummed Ethereum address. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: >- The chain ID for which this authorization is valid. Use 0 for multichain or specify a supported chain ID. type: number example: 8453 nonce: description: Signature nonce type: number example: 38 r: description: >- The "r" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x192a2503401595804c35cdc5b748fe35cceb77ef534bf5d670f7797376487ded s: description: >- The "s" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x1fd3c8acd0b7c5f64a8d72c35c39988544fca961b838277ab11750041cccc3d1 v: example: '28' description: >- The "v" value of the ECDSA signature (recovery id), as a string. Optional for EIP-2098 signatures. type: string yParity: description: >- The y-parity value (EIP-2098) for the signature. Should be 0 or 1. type: number example: 1 required: - address - chainId - nonce - r - s - yParity additionalProperties: false isCleanUpUserOp: example: false description: Whether this is a clean-up user operation. type: boolean shortEncoding: example: true description: Whether the user operation uses short encoding. type: boolean required: - userOp - userOpHash - meeUserOpHash - lowerBoundTimestamp - upperBoundTimestamp - maxGasLimit - maxFeePerGas - chainId additionalProperties: false fundingTokens: description: >- Optional array of funding tokens for token pull execution. type: array items: description: >- Object containing the funding token deposit for MEE fusion execution. type: object properties: tokenAddress: description: >- Contract address of the token that will be deposited into the Nexus smart account. type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' chainId: description: >- Chain ID where the funding token resides. Use a supported chain ID. type: number example: 1 amount: description: >- Amount of funding token in wei/smallest unit to deposit. type: string example: '1000000000' required: - tokenAddress - chainId - amount additionalProperties: false required: - hash - node - commitment - paymentInfo - userOps additionalProperties: false payloadToSign: description: >- Array of payloads to be signed, structure depends on the quoteType. minItems: 1 type: array items: anyOf: - description: >- Full EIP-712 permit signature data (payload and metadata) type: object properties: signablePayload: description: Payload to be signed for EIP-712 permit type: object properties: domain: description: EIP-712 domain object type: object properties: name: example: USD Coin description: Token or contract name (e.g. 'USD Coin') type: string version: example: '2' description: Contract version (e.g. '1') type: string chainId: example: 1 description: >- EVM chain ID (e.g. 1 for Ethereum mainnet) type: number verifyingContract: example: >- 0xA0b86a33E6441c1a7C4FB1e50Fc5F5ED69DC3D2B description: Address of the contract being verified type: string salt: example: >- 0x0000000000000000000000000000000000000000000000000000000000000000 description: Optional domain salt (hex string) type: string additionalProperties: false types: type: object propertyNames: description: Name of the EIP-712 struct (e.g. 'Permit') type: string example: Permit additionalProperties: description: List of fields for this struct example: - name: owner type: address - name: spender type: address - name: value type: uint256 - name: nonce type: uint256 - name: deadline type: uint256 type: array items: type: object properties: name: description: A string value. type: string example: owner type: description: A string value. type: string example: address required: - name - type additionalProperties: false message: description: Key-value pairs for the EIP-712 message example: owner: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' spender: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45' value: '1000000000000000000000' nonce: '0' deadline: '1647857449' type: object propertyNames: description: A string value. type: string example: owner additionalProperties: {} primaryType: description: >- Name of the main EIP-712 struct to sign (e.g. 'Permit') type: string example: Permit required: - types - message - primaryType additionalProperties: false metadata: description: Extra metadata for the permit signature type: object properties: nonce: description: Permit nonce (as string) type: string example: '0' name: description: Token or contract name type: string example: USD Coin version: description: Contract version type: string example: '2' domainSeparator: description: EIP-712 domain separator (hex string) type: string example: >- 0x06c37168a7db5138defc7866392bb87a741f9b3d104deb5094588ce041cae335 owner: description: Address of the permit owner type: string example: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' spender: description: Address of the spender type: string example: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45' amount: description: Permit amount in wei (as string) type: string example: '1000000000000000000000' required: - nonce - name - version - domainSeparator - owner - spender - amount additionalProperties: false required: - signablePayload - metadata additionalProperties: false - description: On-chain signature data for direct contract calls example: to: '0x1111111254EEB25477B68fb85Ed929f73A960582' data: 0xa9059cbb000000000000000000000000... value: '0' chainId: 1 type: object properties: to: description: Target contract address for the on-chain call type: string example: '0x1111111254EEB25477B68fb85Ed929f73A960582' data: description: >- Calldata for the on-chain transaction (hex string) type: string example: 0xa9059cbb000000000000000000000000... value: description: >- ETH value to send with the transaction (in wei, as string) type: string example: '0' chainId: description: Chain ID for the on-chain transaction type: number example: 1 required: - to - data - value - chainId additionalProperties: false - description: >- Message with raw transaction hash to sign for simple quote type example: message: raw: >- 0xed96a92aa94b8b1927fc7c52ca3b3fcd0d706147dfbeda34a62dc232f6993029 type: object properties: message: type: object properties: raw: description: Raw transaction hash to sign (hex string) type: string example: >- 0xed96a92aa94b8b1927fc7c52ca3b3fcd0d706147dfbeda34a62dc232f6993029 required: - raw additionalProperties: false required: - message additionalProperties: false instructions: type: array items: description: >- Object representing a single MEE instruction, including the set of contract calls to execute, the target chain ID, and whether the instruction is composable with others in the same batch. type: object properties: calls: type: array items: anyOf: - type: object properties: to: description: >- EVM address of the target smart contract to invoke for this call. type: string example: '0x1111111254EEB25477B68fb85Ed929f73A960582' value: description: >- Amount of native token (in wei) to send with the contract call. Must be a non-negative integer. type: string example: '0' functionSig: description: >- Function signature as a string, e.g. "transfer(address,uint256)". Must match the target contract ABI. type: string example: transfer(address,uint256) inputParams: example: - fetcherType: 0 paramData: >- 0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4 constraints: [] type: array items: example: fetcherType: 0 paramData: >- 0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4 constraints: - constraintType: 1 referenceData: '500' type: object properties: fetcherType: type: number enum: - 0 - 1 paramData: description: >- String representing the input parameter data, such as ABI-encoded bytes or a direct value. type: string example: example string constraints: type: array items: example: constraintType: 0 referenceData: '1000' type: object properties: constraintType: type: number enum: - 0 - 1 - 2 - 3 referenceData: description: >- String data used as the reference for the constraint, such as a literal value or ABI-encoded data. type: string example: example string required: - constraintType - referenceData additionalProperties: false required: - fetcherType - paramData - constraints additionalProperties: false outputParams: example: - fetcherType: 0 paramData: 0x type: array items: example: fetcherType: 0 paramData: 0x type: object properties: fetcherType: type: number enum: - 0 - 1 paramData: description: >- String representing the output parameter data, such as ABI-encoded bytes or a result value. type: string example: example string required: - fetcherType - paramData additionalProperties: false gasLimit: description: >- Gas limit for the contract call. Optional - if not provided, it will be estimated. type: string example: '100000' required: - to - value - functionSig - inputParams - outputParams additionalProperties: false chainId: description: >- Chain ID on which this instruction should be executed. Must be a supported EVM chain ID. type: number example: 1 isComposable: description: >- Indicates if this instruction is composable with others in the same execution batch. type: boolean example: true required: - calls - chainId additionalProperties: false returnedData: type: array items: {} required: - ownerAddress - fee - quoteType - quote - payloadToSign - instructions - returnedData additionalProperties: false '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false '412': description: '412' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false authorizations: type: array items: type: object properties: address: description: 7702 delegation smart account address type: string example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e' chainId: description: >- 7702 delegation chain ID (0 for multichain or a supported chain ID) type: number example: 0 nonce: description: 7702 delegation nonce from EOA type: number example: '123456' required: - address - chainId - nonce additionalProperties: false required: - code - message - errors - authorizations additionalProperties: false '500': description: '500' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false security: &ref_1 - X-API-Key: - mee:* - instructions:* /v1/execute: post: description: >- Submit the signed supertransaction quote for the execution where multichain composable and async execution happens via MEE nodes summary: Submit the supertransaction for execution tags: *ref_0 parameters: [] operationId: execute requestBody: description: Body content: application/json: schema: description: MEE execution request with signed quote payloads type: object properties: ownerAddress: description: >- Owner wallet address which will be used as a owner of orchestrator account type: string example: '0x1234567890abcdef1234567890abcdef12345678' fee: description: 'Fee details: amount, token address, and chain ID.' type: object properties: amount: description: Fee amount for the quote in wei. type: string example: '10000000000000000' token: description: >- EVM address of the fee token (zero address for native ETH). type: string example: '0x0000000000000000000000000000000000000000' chainId: description: Chain ID where the fee token resides. type: number example: 8453 required: - amount - token - chainId additionalProperties: false quoteType: description: >- Type of MEE signature: permit, onchain, simple, permit-sca, or mm-dtk. example: permit type: string enum: - permit - onchain - simple - permit-sca - mm-dtk quote: description: MEE network compatible quote information type: object properties: hash: description: Supertransaction hash of the quote. type: string example: >- 0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef node: description: EVM address of the node providing the quote. type: string example: '0x9876543210abcdef9876543210abcdef98765432' commitment: description: >- Node's commitment hash for the supertransaction quote (hex string, 0x-prefixed). type: string example: >- 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef paymentInfo: type: object properties: sender: description: Sender EVM address (optional) type: string example: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' initCode: default: 0x description: Init code as hex string (optional) type: string example: '0x1234abcd' nonce: description: Nonce as string (optional) type: string example: '0' token: description: Payment token address type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: Chain ID of the payment token type: number example: 1 verificationGasLimit: example: '21000' description: Verification gas limit as string (optional) type: string eoa: example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' description: EOA address (optional) type: string eip7702Auth: description: >- Object containing the EIP-7702 authorization signature fields for delegation, including the signer address, chain ID, nonce, and ECDSA signature components (r, s, v/yParity). Used to prove delegation intent and validity. type: object properties: address: description: >- The EVM address of the delegation contract to which your EOA (Externally Owned Account) is being upgraded. Must be a valid checksummed Ethereum address. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: >- The chain ID for which this authorization is valid. Use 0 for multichain or specify a supported chain ID. type: number example: 8453 nonce: description: Signature nonce type: number example: 38 r: description: >- The "r" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x192a2503401595804c35cdc5b748fe35cceb77ef534bf5d670f7797376487ded s: description: >- The "s" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x1fd3c8acd0b7c5f64a8d72c35c39988544fca961b838277ab11750041cccc3d1 v: example: '28' description: >- The "v" value of the ECDSA signature (recovery id), as a string. Optional for EIP-2098 signatures. type: string yParity: description: >- The y-parity value (EIP-2098) for the signature. Should be 0 or 1. type: number example: 1 required: - address - chainId - nonce - r - s - yParity additionalProperties: false shortEncoding: example: false default: false description: 'Short encoding flag (default: false)' type: boolean callGasLimit: example: '50000' description: Call gas limit as string (optional) type: string sponsored: example: true description: Sponsored flag (optional) type: boolean sponsorshipUrl: example: https://sponsorship.abc.org description: Sponsored ulr (optional) type: string tokenAmount: example: 1000 (1000 USDC), 1 (1 ether) description: Token amount as string (optional) type: string tokenValue: description: Token value as string in USD type: string example: 1000 (for 1000 USDC), 250000 (for 1 WBTC very soon) tokenWeiAmount: description: Token wei amount as string (optional) type: string example: >- 1000000000000000000000 (1000 ether), 250000 (0.25 USDC) gasFee: example: '21000000000000000' description: Gas fee as string (optional) type: string orchestrationFee: example: '1000000000000000' description: Orchestration fee as string (optional) type: string required: - sender - initCode - nonce - token - chainId - shortEncoding - tokenValue - tokenWeiAmount additionalProperties: false userOps: description: Array of MEE UserOperation objects for the quote. type: array items: description: >- Object containing the fields of a MEE UserOperation which is a Wrapper for userops supported by MEE nodes type: object properties: userOp: description: >- Object containing the fields of a UserOperation, including sender, nonce, calldata, gas limits, and signature. type: object properties: sender: description: >- The address of the account initiating the user operation. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' nonce: description: The nonce of the sender account, as a bigint. type: string example: '0' initCode: description: >- The initCode for contract creation, as a hex string. Optional. type: string example: '0x1234abcd' callData: description: >- The calldata for the user operation, as a hex string. type: string example: '0x1234abcd' callGasLimit: description: The gas limit for the call, as a bigint. type: string example: '21000' verificationGasLimit: description: The gas limit for verification, as a bigint. type: string example: '100000' preVerificationGas: description: The gas used before verification, as a bigint. type: string example: '21000' maxFeePerGas: description: The maximum fee per gas, as a bigint. type: string example: '1000000000' maxPriorityFeePerGas: description: The maximum priority fee per gas, as a bigint. type: string example: '100000000' paymasterAndData: example: 0x description: >- The paymaster and data field, as a hex string. Optional. type: string signature: example: '0xabcdef123456' description: >- The signature for the user operation, as a hex string. Optional. type: string required: - sender - nonce - callData - callGasLimit - verificationGasLimit - preVerificationGas - maxFeePerGas - maxPriorityFeePerGas additionalProperties: false userOpHash: description: The hash of the user operation. type: string example: '0x1234abcd5678ef90' meeUserOpHash: description: The MEE-specific hash of the user operation. type: string example: '0xabcdef1234567890' lowerBoundTimestamp: description: The lower bound timestamp for the user operation. type: number example: 1710000000 upperBoundTimestamp: description: The upper bound timestamp for the user operation. type: number example: 1710003600 maxGasLimit: description: The maximum gas limit for the user operation. type: string example: '1000000' maxFeePerGas: description: The maximum fee per gas for the user operation. type: string example: '1000000000' chainId: description: The chain ID for the user operation. type: number example: 8453 eip7702Auth: description: >- Object containing the EIP-7702 authorization signature fields for delegation, including the signer address, chain ID, nonce, and ECDSA signature components (r, s, v/yParity). Used to prove delegation intent and validity. type: object properties: address: description: >- The EVM address of the delegation contract to which your EOA (Externally Owned Account) is being upgraded. Must be a valid checksummed Ethereum address. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: >- The chain ID for which this authorization is valid. Use 0 for multichain or specify a supported chain ID. type: number example: 8453 nonce: description: Signature nonce type: number example: 38 r: description: >- The "r" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x192a2503401595804c35cdc5b748fe35cceb77ef534bf5d670f7797376487ded s: description: >- The "s" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x1fd3c8acd0b7c5f64a8d72c35c39988544fca961b838277ab11750041cccc3d1 v: example: '28' description: >- The "v" value of the ECDSA signature (recovery id), as a string. Optional for EIP-2098 signatures. type: string yParity: description: >- The y-parity value (EIP-2098) for the signature. Should be 0 or 1. type: number example: 1 required: - address - chainId - nonce - r - s - yParity additionalProperties: false isCleanUpUserOp: example: false description: Whether this is a clean-up user operation. type: boolean shortEncoding: example: true description: Whether the user operation uses short encoding. type: boolean required: - userOp - userOpHash - meeUserOpHash - lowerBoundTimestamp - upperBoundTimestamp - maxGasLimit - maxFeePerGas - chainId additionalProperties: false fundingTokens: description: >- Optional array of funding tokens for token pull execution. type: array items: description: >- Object containing the funding token deposit for MEE fusion execution. type: object properties: tokenAddress: description: >- Contract address of the token that will be deposited into the Nexus smart account. type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' chainId: description: >- Chain ID where the funding token resides. Use a supported chain ID. type: number example: 1 amount: description: >- Amount of funding token in wei/smallest unit to deposit. type: string example: '1000000000' required: - tokenAddress - chainId - amount additionalProperties: false required: - hash - node - commitment - paymentInfo - userOps additionalProperties: false payloadToSign: description: Array of payloads with signatures for execution. minItems: 1 type: array items: anyOf: - type: object properties: signablePayload: description: Payload to be signed for EIP-712 permit type: object properties: domain: description: EIP-712 domain object type: object properties: name: example: USD Coin description: Token or contract name (e.g. 'USD Coin') type: string version: example: '2' description: Contract version (e.g. '1') type: string chainId: example: 1 description: EVM chain ID (e.g. 1 for Ethereum mainnet) type: number verifyingContract: example: '0xA0b86a33E6441c1a7C4FB1e50Fc5F5ED69DC3D2B' description: Address of the contract being verified type: string salt: example: >- 0x0000000000000000000000000000000000000000000000000000000000000000 description: Optional domain salt (hex string) type: string additionalProperties: false types: type: object propertyNames: description: Name of the EIP-712 struct (e.g. 'Permit') type: string example: Permit additionalProperties: description: List of fields for this struct example: - name: owner type: address - name: spender type: address - name: value type: uint256 - name: nonce type: uint256 - name: deadline type: uint256 type: array items: type: object properties: name: description: A string value. type: string example: owner type: description: A string value. type: string example: address required: - name - type additionalProperties: false message: description: Key-value pairs for the EIP-712 message example: owner: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' spender: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45' value: '1000000000000000000000' nonce: '0' deadline: '1647857449' type: object propertyNames: description: A string value. type: string example: owner additionalProperties: {} primaryType: description: >- Name of the main EIP-712 struct to sign (e.g. 'Permit') type: string example: Permit required: - types - message - primaryType additionalProperties: false metadata: description: Extra metadata for the permit signature type: object properties: nonce: description: Permit nonce (as string) type: string example: '0' name: description: Token or contract name type: string example: USD Coin version: description: Contract version type: string example: '2' domainSeparator: description: EIP-712 domain separator (hex string) type: string example: >- 0x06c37168a7db5138defc7866392bb87a741f9b3d104deb5094588ce041cae335 owner: description: Address of the permit owner type: string example: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' spender: description: Address of the spender type: string example: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45' amount: description: Permit amount in wei (as string) type: string example: '1000000000000000000000' required: - nonce - name - version - domainSeparator - owner - spender - amount additionalProperties: false signature: description: >- Hex-encoded signature of the quote payload, produced by the user's private key. Must be a valid ECDSA signature in hexadecimal format. type: string example: >- 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1b required: - signablePayload - metadata - signature additionalProperties: false - type: object properties: to: description: Target contract address for the on-chain call type: string example: '0x1111111254EEB25477B68fb85Ed929f73A960582' data: description: Calldata for the on-chain transaction (hex string) type: string example: 0xa9059cbb000000000000000000000000... value: description: >- ETH value to send with the transaction (in wei, as string) type: string example: '0' chainId: description: Chain ID for the on-chain transaction type: number example: 1 signature: description: >- Hex-encoded signature of the quote payload, produced by the user's private key. Must be a valid ECDSA signature in hexadecimal format. type: string example: >- 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1b required: - to - data - value - chainId - signature additionalProperties: false - type: object properties: message: type: object properties: raw: description: Raw transaction hash to sign (hex string) type: string example: >- 0xed96a92aa94b8b1927fc7c52ca3b3fcd0d706147dfbeda34a62dc232f6993029 required: - raw additionalProperties: false signature: description: >- Hex-encoded signature of the quote payload, produced by the user's private key. Must be a valid ECDSA signature in hexadecimal format. type: string example: >- 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1b required: - message - signature additionalProperties: false required: - ownerAddress - fee - quoteType - quote - payloadToSign additionalProperties: false responses: '200': description: MEE execution response content: application/json: schema: description: MEE execution response type: object properties: success: description: >- Indicates if the supertransaction execution was successful. type: boolean example: true supertxHash: example: >- 0x9a72f87a93c55d8f88e3f8c2a7b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2 anyOf: - description: >- The transaction hash of the executed supertransaction, or null if not available. type: string example: example string - type: 'null' error: example: null anyOf: - description: >- Error message if the execution failed, or null if successful. type: string example: example string - type: 'null' required: - success - supertxHash - error additionalProperties: false '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false '500': description: '500' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false security: *ref_1 /v1/mee/orchestrator: post: description: Get orchestrator addresses for the specified owner on requested chains summary: Get orchestrator addresses tags: - mee parameters: [] operationId: getOrchestrator requestBody: description: Body content: application/json: schema: description: >- Request schema for getting orchestrator addresses on specified chains type: object properties: ownerAddress: description: >- EOA wallet address which is used as owner of the orchestrator account type: string example: '0x0a7C906832544293a6018bA25280c7f7b0Bbf120' chains: description: >- List of unique chain IDs where orchestrator addresses are needed example: - 1 - 137 - 10 - 8453 minItems: 1 type: array items: description: Chain ID where orchestrator address is needed type: number example: 8453 required: - ownerAddress - chains additionalProperties: false responses: '200': description: Response schema containing orchestrator addresses grouped by chains content: application/json: schema: description: >- Response schema containing orchestrator addresses grouped by chains example: - address: '0x4b19129EA58431A06D01054f69AcAe5de50633b6' chains: - '1' - '10' - address: '0xD5Fe79C09CDF3D279cD87B5CAdC77517D65274ca' chains: - '137' type: array items: type: object properties: address: description: Orchestrator address type: string example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e' chains: description: List of chain IDs that share this orchestrator address example: - '1' - '10' - '137' type: array items: type: string required: - address - chains additionalProperties: false '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false '500': description: '500' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false /v1/instructions/hyperliquid/deposit: post: description: Build instructions for depositing USDC from Arbitrum to Hyperliquid summary: Build Hyperliquid deposit instructions tags: &ref_2 - instructions parameters: [] operationId: hyperliquidDeposit requestBody: description: Body content: application/json: schema: description: >- Object containing the Hyperliquid deposit request fields, including owner address, execution mode (smart-account only), source token (USDC on Arbitrum only), source chain (Arbitrum only), amount to deposit, and optional fee token. type: object properties: ownerAddress: description: >- EOA wallet address which is going to be used as a owner of orchestrator account type: string example: '0x742d35cc6639cb8d4b5d1c5d7b8b5e2e7c0c7a8a' orchestratorAddressOverride: example: '0x742d35cc6639cb8d4b5d1c5d7b8b5e2e7c0c7a8a' description: >- Account address which is going to be used as orchestrator account address. If not provided, ownerAddress will be used to derive the Nexus orchestratoraccount address. type: string mode: description: >- Execution mode for Hyperliquid deposits. Only smart-account mode is supported. example: smart-account type: string enum: - smart-account sourceToken: example: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' sourceChainId: example: 42161 amount: example: '10000000' feeToken: description: >- Optional fee token for the transaction. If not provided, sponsorship will be used. example: address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' chainId: 42161 type: object properties: address: description: >- Contract address of the token used to pay MEE execution fees type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' chainId: description: >- Chain ID where the fee token resides. Use a supported chain ID. type: number example: 1 gasRefundAddress: example: '0x0a7C906832544293a6018bA25280c7f7b0Bbf120' description: >- Custom gas refund address to receive remaining unspent gas. Defaults to owner address. Gas refunds are always in ETH and may be refunded on multiple chains depending on userOps involved. type: string required: - address - chainId additionalProperties: false required: - ownerAddress - mode - sourceToken - sourceChainId - amount additionalProperties: false responses: '200': description: >- Response schema for a Hyperliquid deposit quote, including MEE quote information for bridging USDC from Arbitrum to Hyperliquid. content: application/json: schema: description: >- Response schema for a Hyperliquid deposit quote, including MEE quote information for bridging USDC from Arbitrum to Hyperliquid. type: object properties: ownerAddress: description: >- Owner wallet address which will be used as a owner of orchestrator account type: string example: '0x1234567890abcdef1234567890abcdef12345678' fee: description: 'Fee details: amount, token address, and chain ID.' type: object properties: amount: description: Fee amount for the quote in wei. type: string example: '10000000000000000' token: description: >- EVM address of the fee token (zero address for native ETH). type: string example: '0x0000000000000000000000000000000000000000' chainId: description: Chain ID where the fee token resides. type: number example: 8453 required: - amount - token - chainId additionalProperties: false quoteType: description: >- Type of MEE signature: permit, onchain, simple, permit-sca, or mm-dtk. example: permit type: string enum: - permit - onchain - simple - permit-sca - mm-dtk quote: description: MEE network compatible quote information type: object properties: hash: description: Supertransaction hash of the quote. type: string example: >- 0xabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef node: description: EVM address of the node providing the quote. type: string example: '0x9876543210abcdef9876543210abcdef98765432' commitment: description: >- Node's commitment hash for the supertransaction quote (hex string, 0x-prefixed). type: string example: >- 0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef paymentInfo: type: object properties: sender: description: Sender EVM address (optional) type: string example: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' initCode: default: 0x description: Init code as hex string (optional) type: string example: '0x1234abcd' nonce: description: Nonce as string (optional) type: string example: '0' token: description: Payment token address type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: Chain ID of the payment token type: number example: 1 verificationGasLimit: example: '21000' description: Verification gas limit as string (optional) type: string eoa: example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' description: EOA address (optional) type: string eip7702Auth: description: >- Object containing the EIP-7702 authorization signature fields for delegation, including the signer address, chain ID, nonce, and ECDSA signature components (r, s, v/yParity). Used to prove delegation intent and validity. type: object properties: address: description: >- The EVM address of the delegation contract to which your EOA (Externally Owned Account) is being upgraded. Must be a valid checksummed Ethereum address. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: >- The chain ID for which this authorization is valid. Use 0 for multichain or specify a supported chain ID. type: number example: 8453 nonce: description: Signature nonce type: number example: 38 r: description: >- The "r" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x192a2503401595804c35cdc5b748fe35cceb77ef534bf5d670f7797376487ded s: description: >- The "s" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x1fd3c8acd0b7c5f64a8d72c35c39988544fca961b838277ab11750041cccc3d1 v: example: '28' description: >- The "v" value of the ECDSA signature (recovery id), as a string. Optional for EIP-2098 signatures. type: string yParity: description: >- The y-parity value (EIP-2098) for the signature. Should be 0 or 1. type: number example: 1 required: - address - chainId - nonce - r - s - yParity additionalProperties: false shortEncoding: example: false default: false description: 'Short encoding flag (default: false)' type: boolean callGasLimit: example: '50000' description: Call gas limit as string (optional) type: string sponsored: example: true description: Sponsored flag (optional) type: boolean sponsorshipUrl: example: https://sponsorship.abc.org description: Sponsored ulr (optional) type: string tokenAmount: example: 1000 (1000 USDC), 1 (1 ether) description: Token amount as string (optional) type: string tokenValue: description: Token value as string in USD type: string example: >- 1000 (for 1000 USDC), 250000 (for 1 WBTC very soon) tokenWeiAmount: description: Token wei amount as string (optional) type: string example: >- 1000000000000000000000 (1000 ether), 250000 (0.25 USDC) gasFee: example: '21000000000000000' description: Gas fee as string (optional) type: string orchestrationFee: example: '1000000000000000' description: Orchestration fee as string (optional) type: string required: - sender - initCode - nonce - token - chainId - shortEncoding - tokenValue - tokenWeiAmount additionalProperties: false userOps: description: Array of MEE UserOperation objects for the quote. type: array items: description: >- Object containing the fields of a MEE UserOperation which is a Wrapper for userops supported by MEE nodes type: object properties: userOp: description: >- Object containing the fields of a UserOperation, including sender, nonce, calldata, gas limits, and signature. type: object properties: sender: description: >- The address of the account initiating the user operation. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' nonce: description: >- The nonce of the sender account, as a bigint. type: string example: '0' initCode: description: >- The initCode for contract creation, as a hex string. Optional. type: string example: '0x1234abcd' callData: description: >- The calldata for the user operation, as a hex string. type: string example: '0x1234abcd' callGasLimit: description: The gas limit for the call, as a bigint. type: string example: '21000' verificationGasLimit: description: The gas limit for verification, as a bigint. type: string example: '100000' preVerificationGas: description: >- The gas used before verification, as a bigint. type: string example: '21000' maxFeePerGas: description: The maximum fee per gas, as a bigint. type: string example: '1000000000' maxPriorityFeePerGas: description: >- The maximum priority fee per gas, as a bigint. type: string example: '100000000' paymasterAndData: example: 0x description: >- The paymaster and data field, as a hex string. Optional. type: string signature: example: '0xabcdef123456' description: >- The signature for the user operation, as a hex string. Optional. type: string required: - sender - nonce - callData - callGasLimit - verificationGasLimit - preVerificationGas - maxFeePerGas - maxPriorityFeePerGas additionalProperties: false userOpHash: description: The hash of the user operation. type: string example: '0x1234abcd5678ef90' meeUserOpHash: description: The MEE-specific hash of the user operation. type: string example: '0xabcdef1234567890' lowerBoundTimestamp: description: >- The lower bound timestamp for the user operation. type: number example: 1710000000 upperBoundTimestamp: description: >- The upper bound timestamp for the user operation. type: number example: 1710003600 maxGasLimit: description: The maximum gas limit for the user operation. type: string example: '1000000' maxFeePerGas: description: The maximum fee per gas for the user operation. type: string example: '1000000000' chainId: description: The chain ID for the user operation. type: number example: 8453 eip7702Auth: description: >- Object containing the EIP-7702 authorization signature fields for delegation, including the signer address, chain ID, nonce, and ECDSA signature components (r, s, v/yParity). Used to prove delegation intent and validity. type: object properties: address: description: >- The EVM address of the delegation contract to which your EOA (Externally Owned Account) is being upgraded. Must be a valid checksummed Ethereum address. type: string example: '0x00000069E0Fb590E092Dd0E36FF93ac28ff11a3a' chainId: description: >- The chain ID for which this authorization is valid. Use 0 for multichain or specify a supported chain ID. type: number example: 8453 nonce: description: Signature nonce type: number example: 38 r: description: >- The "r" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x192a2503401595804c35cdc5b748fe35cceb77ef534bf5d670f7797376487ded s: description: >- The "s" value of the ECDSA signature, as a 32-byte hex string prefixed with 0x. type: string example: >- 0x1fd3c8acd0b7c5f64a8d72c35c39988544fca961b838277ab11750041cccc3d1 v: example: '28' description: >- The "v" value of the ECDSA signature (recovery id), as a string. Optional for EIP-2098 signatures. type: string yParity: description: >- The y-parity value (EIP-2098) for the signature. Should be 0 or 1. type: number example: 1 required: - address - chainId - nonce - r - s - yParity additionalProperties: false isCleanUpUserOp: example: false description: Whether this is a clean-up user operation. type: boolean shortEncoding: example: true description: Whether the user operation uses short encoding. type: boolean required: - userOp - userOpHash - meeUserOpHash - lowerBoundTimestamp - upperBoundTimestamp - maxGasLimit - maxFeePerGas - chainId additionalProperties: false fundingTokens: description: >- Optional array of funding tokens for token pull execution. type: array items: description: >- Object containing the funding token deposit for MEE fusion execution. type: object properties: tokenAddress: description: >- Contract address of the token that will be deposited into the Nexus smart account. type: string example: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48' chainId: description: >- Chain ID where the funding token resides. Use a supported chain ID. type: number example: 1 amount: description: >- Amount of funding token in wei/smallest unit to deposit. type: string example: '1000000000' required: - tokenAddress - chainId - amount additionalProperties: false required: - hash - node - commitment - paymentInfo - userOps additionalProperties: false payloadToSign: description: >- Array of payloads to be signed, structure depends on the quoteType. minItems: 1 type: array items: anyOf: - description: >- Full EIP-712 permit signature data (payload and metadata) type: object properties: signablePayload: description: Payload to be signed for EIP-712 permit type: object properties: domain: description: EIP-712 domain object type: object properties: name: example: USD Coin description: Token or contract name (e.g. 'USD Coin') type: string version: example: '2' description: Contract version (e.g. '1') type: string chainId: example: 1 description: >- EVM chain ID (e.g. 1 for Ethereum mainnet) type: number verifyingContract: example: >- 0xA0b86a33E6441c1a7C4FB1e50Fc5F5ED69DC3D2B description: Address of the contract being verified type: string salt: example: >- 0x0000000000000000000000000000000000000000000000000000000000000000 description: Optional domain salt (hex string) type: string additionalProperties: false types: type: object propertyNames: description: Name of the EIP-712 struct (e.g. 'Permit') type: string example: Permit additionalProperties: description: List of fields for this struct example: - name: owner type: address - name: spender type: address - name: value type: uint256 - name: nonce type: uint256 - name: deadline type: uint256 type: array items: type: object properties: name: description: A string value. type: string example: owner type: description: A string value. type: string example: address required: - name - type additionalProperties: false message: description: Key-value pairs for the EIP-712 message example: owner: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' spender: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45' value: '1000000000000000000000' nonce: '0' deadline: '1647857449' type: object propertyNames: description: A string value. type: string example: owner additionalProperties: {} primaryType: description: >- Name of the main EIP-712 struct to sign (e.g. 'Permit') type: string example: Permit required: - types - message - primaryType additionalProperties: false metadata: description: Extra metadata for the permit signature type: object properties: nonce: description: Permit nonce (as string) type: string example: '0' name: description: Token or contract name type: string example: USD Coin version: description: Contract version type: string example: '2' domainSeparator: description: EIP-712 domain separator (hex string) type: string example: >- 0x06c37168a7db5138defc7866392bb87a741f9b3d104deb5094588ce041cae335 owner: description: Address of the permit owner type: string example: '0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4' spender: description: Address of the spender type: string example: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45' amount: description: Permit amount in wei (as string) type: string example: '1000000000000000000000' required: - nonce - name - version - domainSeparator - owner - spender - amount additionalProperties: false required: - signablePayload - metadata additionalProperties: false - description: On-chain signature data for direct contract calls example: to: '0x1111111254EEB25477B68fb85Ed929f73A960582' data: 0xa9059cbb000000000000000000000000... value: '0' chainId: 1 type: object properties: to: description: Target contract address for the on-chain call type: string example: '0x1111111254EEB25477B68fb85Ed929f73A960582' data: description: >- Calldata for the on-chain transaction (hex string) type: string example: 0xa9059cbb000000000000000000000000... value: description: >- ETH value to send with the transaction (in wei, as string) type: string example: '0' chainId: description: Chain ID for the on-chain transaction type: number example: 1 required: - to - data - value - chainId additionalProperties: false - description: >- Message with raw transaction hash to sign for simple quote type example: message: raw: >- 0xed96a92aa94b8b1927fc7c52ca3b3fcd0d706147dfbeda34a62dc232f6993029 type: object properties: message: type: object properties: raw: description: Raw transaction hash to sign (hex string) type: string example: >- 0xed96a92aa94b8b1927fc7c52ca3b3fcd0d706147dfbeda34a62dc232f6993029 required: - raw additionalProperties: false required: - message additionalProperties: false required: - ownerAddress - fee - quoteType - quote - payloadToSign additionalProperties: false '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false '500': description: '500' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false security: *ref_1 /v1/instructions/build-ccip: post: description: Build CCIP token bridge instructions for your supertransaction summary: Build CCIP token bridge instructions tags: *ref_2 parameters: [] operationId: buildCcip requestBody: description: Body content: application/json: schema: description: >- Object containing the CCIP token bridging field, including source/destination tokens and chains, user address, amount, execution mode, and slippage tolerance. type: object properties: srcToken: description: >- Source token EVM address. Must be a valid checksummed Ethereum address. type: string example: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' dstToken: description: >- Destination token EVM address. Must be a valid checksummed Ethereum address. type: string example: '0x94b008aa00579c1307b0ef2c499ad98a8ce58e58' srcChainId: description: >- The source chain ID for the swap or token bridging. Use a supported chain ID number. type: number example: 8453 dstChainId: description: >- The destination chain ID for the swap or token bridging. Use a supported chain ID number. type: number example: 10 ownerAddress: description: >- EOA wallet address which is going to be used as a owner of orchestrator account type: string example: '0x742d35cc6639cb8d4b5d1c5d7b8b5e2e7c0c7a8a' amount: anyOf: - example: '1000000' - description: >- Schema for specifying a runtime ERC20 balance check, including the target address, token address, and optional constraints. type: object properties: type: example: runtimeErc20Balance type: string const: runtimeErc20Balance targetAddress: example: '0x742d35cc6639cb8d4b5d1c5d7b8b5e2e7c0c7a8a' description: >- The address whose ERC20 balance will be checked at runtime. If not provided, the balance will be checked for the smart account address derived from the owner address. type: string tokenAddress: example: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' constraints: description: >- Constraints for runtime value checks. Specify one or more of gte, lte, or eq to restrict the value. type: object properties: gte: example: '1000000' description: Greater than or equal to type: string lte: example: '10000000' description: Less than or equal to type: string eq: example: '5000000' description: Equal to type: string additionalProperties: false required: - type - tokenAddress additionalProperties: false mode: type: string enum: - smart-account - eoa - eoa-7702 gasLimit: example: '50000' description: Gas limit for the CCIP token bridging type: string required: - srcToken - dstToken - srcChainId - dstChainId - ownerAddress - amount - mode additionalProperties: false responses: '200': description: '200' content: application/json: schema: type: object properties: instructions: description: Array of MEE instructions ready for execution type: array items: description: >- Object representing a single MEE instruction, including the set of contract calls to execute, the target chain ID, and whether the instruction is composable with others in the same batch. type: object properties: calls: type: array items: anyOf: - type: object properties: to: description: >- EVM address of the target smart contract to invoke for this call. type: string example: '0x1111111254EEB25477B68fb85Ed929f73A960582' value: description: >- Amount of native token (in wei) to send with the contract call. Must be a non-negative integer. type: string example: '0' functionSig: description: >- Function signature as a string, e.g. "transfer(address,uint256)". Must match the target contract ABI. type: string example: transfer(address,uint256) inputParams: example: - fetcherType: 0 paramData: >- 0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4 constraints: [] type: array items: example: fetcherType: 0 paramData: >- 0x742d35C9a91B1D5b5D24Dc30e8F0dF8E84b5d1c4 constraints: - constraintType: 1 referenceData: '500' type: object properties: fetcherType: type: number enum: - 0 - 1 paramData: description: >- String representing the input parameter data, such as ABI-encoded bytes or a direct value. type: string example: example string constraints: type: array items: example: constraintType: 0 referenceData: '1000' type: object properties: constraintType: type: number enum: - 0 - 1 - 2 - 3 referenceData: description: >- String data used as the reference for the constraint, such as a literal value or ABI-encoded data. type: string example: example string required: - constraintType - referenceData additionalProperties: false required: - fetcherType - paramData - constraints additionalProperties: false outputParams: example: - fetcherType: 0 paramData: 0x type: array items: example: fetcherType: 0 paramData: 0x type: object properties: fetcherType: type: number enum: - 0 - 1 paramData: description: >- String representing the output parameter data, such as ABI-encoded bytes or a result value. type: string example: example string required: - fetcherType - paramData additionalProperties: false gasLimit: description: >- Gas limit for the contract call. Optional - if not provided, it will be estimated. type: string example: '100000' required: - to - value - functionSig - inputParams - outputParams additionalProperties: false chainId: description: >- Chain ID on which this instruction should be executed. Must be a supported EVM chain ID. type: number example: 1 isComposable: description: >- Indicates if this instruction is composable with others in the same execution batch. type: boolean example: true required: - calls - chainId additionalProperties: false simulationTokenOverrides: type: array items: type: object properties: tokenAddress: description: Address of the token type: string example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e' accountAddress: description: Address of the account type: string example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e' chainId: description: Chain ID type: number example: 8453 balance: description: Balance of the token type: string example: '12345678901234567890' required: - tokenAddress - accountAddress - chainId - balance additionalProperties: false required: - instructions additionalProperties: false '400': description: '400' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false '500': description: '500' content: application/json: schema: type: object properties: code: type: string message: type: string errors: type: array items: type: object properties: code: type: string path: type: array items: type: string message: type: string required: - code - path - message additionalProperties: false required: - code - message - errors additionalProperties: false security: *ref_1 info: title: Supertransaction API version: 0.4.0 description: A comprehensive Supertransaction API documentation license: name: MIT url: https://opensource.org/licenses/MIT components: securitySchemes: X-API-Key: type: apiKey name: X-API-Key in: header description: >- API Key required to access Supertransaction API. Example: mee_2w3mXCuyt4xVXDRCZ5k5Lhgs servers: - url: https://api.biconomy.io description: Production server - url: https://api-staging.biconomy.io description: Staging server