Wallet Infrastructure
Wallet Infrastructure
Bridges

Prepare bridge

POST
/v1/bridges/prepare

Requires scope transactions:create.

Authorization

ApiKey
headerAuthorizationBearer <sk_test_ or sk_live_ key>

Your sk_live_ / sk_test_ API key

Request Body

application/json
  1. body
chain*string

The chain the USD₮ leaves from: ethereum, arbitrum, polygon, optimism, base or plasma.

Value in"ethereum""arbitrum""polygon""optimism""base""plasma"
destinationChain*string

Where the USD₮ lands: any of the six source chains other than chain, or tron.

Value in"ethereum""arbitrum""polygon""optimism""base""plasma""tron"
recipient*string

The address that receives the USD₮ on destinationChain: a 0x address for an EVM destination, a base58 T... address for tron.

Length1 <= length <= 128
amount*string

Amount of USD₮ to send, in token units (for example "100").

Match^\d+(\.\d{1,6})?$
Lengthlength <= 80
safeAddress*string

The Safe doing the bridge.

Match^0x[0-9a-fA-F]{40}$
passkeyPublicKey*

Response Body

200application/json

Unsigned bridge userOperation

TypeScript Definitions

Use the response body type in TypeScript.

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

As for the quote, or the Safe cannot cover the amount plus the gas

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
409application/json

The passkey does not own this Safe, the wallet is under recovery, the Safe is not deployed, or the same userOperation is already in flight

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

Language

curl -X POST 'https://api.pilot.shiga.io/v1/bridges/prepare' \  -H 'Authorization: Bearer sk_test_...' \  -H 'Content-Type: application/json' \  -d '{  "chain": "ethereum",  "destinationChain": "ethereum",  "recipient": "string",  "amount": "string",  "safeAddress": "string",  "passkeyPublicKey": {    "x": "string",    "y": "string"  }}'
Example Response
{  "data": {    "chain": "base",    "destinationChain": "arbitrum",    "moduleId": "evm_erc4337",    "senderAddress": "string",    "recipient": "string",    "asset": "usdt",    "amountIn": "string",    "amountOut": "string",    "minAmountOut": "string",    "bridgeFee": "string",    "bridgeFeeBps": 34,    "estimatedFillSeconds": 2,    "quoteExpiresAt": "2019-08-24T14:15:22Z",    "feeToken": "usdt",    "gas": "string",    "sponsored": false,    "userCost": "string",    "gasEstimated": true,    "provider": "across",    "bridgeId": "cca4409a-da51-4564-bde8-29efe705cbe3",    "safeAddress": "string",    "userOp": {},    "userOpHash": "string"  },  "status": 200,  "success": true}