Wallet Infrastructure
Wallet Infrastructure
Quotes

Get fee quote

POST
/v1/quotes

Requires scope quotes:read.

Authorization

ApiKey
headerAuthorizationBearer <sk_test_ or sk_live_ key>

Your sk_live_ / sk_test_ API key

Header Parameters

x-customer-id?string

Identifies whose wallet to quote for.

Request Body

application/json
  1. body
moduleId*string

Selects the wallet to quote for.

Value in"evm_erc4337""bitcoin""spark""solana""tron""ton"
treasury?boolean

Set true to quote for the customer's treasury wallet rather than their ordinary one.

txParams*

Response Body

200application/json

Quote

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
400application/json

Malformed body, an address that fails its chain's checksum, a chain or token the lane does not list, or a wallet that cannot cover the transfer plus its fee

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
401application/json

The Authorization header is missing, malformed, or the API key is unknown or revoked

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
403application/json

The API key lacks the quotes:read scope

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
404application/json

No single wallet matched moduleId + x-customer-id + treasury on that chain.

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
409application/json

erc4337 only: the Safe is not deployed on this chain yet (retry once provisioning puts it on-chain), or the transfer reverted in simulation for a reason other than the balance — a blocked recipient or a paused token

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
429application/json

The API key exceeded its request budget for the window

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
500application/json

A fault on our side.

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
502application/json

Fee estimation failed upstream — the chain's RPC node, the bundler or the paymaster — or the wallet registry could not be reached.

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
503application/json

The owning chain service is shutting down, or your API key could not be resolved because the key service is unavailable.

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean
504application/json

The owning chain service did not answer within the gateway's timeout.

TypeScript Definitions

Use the response body type in TypeScript.

data*
status*number
success*boolean

Language

curl -X POST 'https://api.pilot.shiga.io/v1/quotes' \  -H 'x-customer-id: <customer id>' \  -H 'Authorization: Bearer sk_test_...' \  -H 'Content-Type: application/json' \  -d '{  "moduleId": "evm_erc4337",  "txParams": {    "chain": "string",    "amount": "string",    "recipientAddress": "string"  }}'
Example Response
{  "data": {    "chain": "string",    "moduleId": "evm_erc4337",    "senderAddress": "string",    "token": "usdt",    "gasToken": "usdt",    "gas": "string",    "sponsored": true,    "userCost": "string",    "maxSendable": "string",    "legs": [      {        "contract": "string",        "symbol": "USDT",        "amount": "string"      }    ],    "swap": {      "fromContract": "string",      "fromSymbol": "USD₮0",      "toContract": "string",      "amountIn": "string",      "expectedOut": "string",      "minOut": "string",      "fee": "string"    }  },  "status": 200,  "success": true}