Wallet Infrastructure
Wallet Infrastructure
Bridges

Submit bridge

POST
/v1/bridges

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*
passkeyData*

The passkey assertion over the userOpHash returned by POST /v1/bridges/prepare.

userOp*

The userOperation returned verbatim by POST /v1/bridges/prepare.

userOpHash*string

The userOpHash returned by POST /v1/bridges/prepare, which the passkey assertion signs.

Match^0x[0-9a-fA-F]{64}$

Response Body

200application/json

Bridge submitted

TypeScript Definitions

Use the response body type in TypeScript.

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

The userOperation does not hash to userOpHash, the body disagrees with what was prepared under it, or the signing gateway refused the operation (its passkey_assertion_invalid refusal is relayed as validation_failed).

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

Nothing was prepared under this userOpHash

TypeScript Definitions

Use the response body type in TypeScript.

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

The bridge was already submitted, the quote expired before submit, the wallet entered recovery, or the signing gateway refused the operation

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' \  -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"  },  "passkeyData": {    "property1": null,    "property2": null  },  "userOp": {    "property1": null,    "property2": null  },  "userOpHash": "string"}'
Example Response
{  "data": {    "bridgeId": "cca4409a-da51-4564-bde8-29efe705cbe3",    "chain": "base",    "destinationChain": "arbitrum",    "safeAddress": "string",    "recipient": "string",    "userOpHash": "string",    "amountIn": "string",    "amountOut": "string",    "status": "submitted",    "transactionHash": "string",    "pendingUserOp": true  },  "status": 200,  "success": true}