Wallet Infrastructure
Wallet Infrastructure
Guardians

Enrol guardian

POST
/v1/wallets/{id}/guardians

Requires scope wallets:write.

Authorization

ApiKey
headerAuthorizationBearer <sk_test_ or sk_live_ key>

Your sk_live_ / sk_test_ API key

Path Parameters

id*unknown

Wallet id

Request Body

application/json
  1. body
chain?string

The one chain to act on.

Value in"ethereum""base""arbitrum""polygon""celo""optimism""plasma"
chains?array<>

Several chains to prepare in one call.

Items1 <= items
passkeyPublicKey*

The P-256 coordinates of the customer passkey that owns the Safe.

passkeyData?

A passkey assertion.

ref?string

Your own identifier for this enrolment, which turns chains + passkeyData into a single-assertion call.

Length1 <= length <= 200

Response Body

200application/json

Enrolment prepared, submitted, or already in place on the named chains

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
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/wallets/{id}/guardians' \  -H 'Authorization: Bearer sk_test_...' \  -H 'Content-Type: application/json' \  -d '{  "passkeyPublicKey": {    "x": "string",    "y": "string"  }}'
Example Response
{  "data": {    "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480",    "chain": "base",    "chains": [      "string"    ],    "state": "pending",    "userOpHash": "0xabc123",    "guardianSafe": "string",    "transactionHash": "string",    "threshold": 0,    "signatureRequests": [      {        "chain": "base",        "userOpHash": "0xabc123"      }    ],    "failures": [      {        "chain": "base",        "reason": "string"      }    ]  },  "status": 200,  "success": true}