Wallet

Self-custodial encrypted wallet — create, prepare gas-sponsored transactions, submit signed UserOps

Create encrypted self-custodial wallet

post

Generates a BIP-39 wallet via Tether WDK, encrypts the seed with the user's password (PBKDF2 310k + AES-256-GCM), and returns the encrypted keystore. The seed phrase is returned once for backup — the server wipes it from memory after the response. Not x402-gated.

Body
passwordstring · min: 8Required

Password to encrypt the wallet (min 8 chars). Never stored on server.

Responses
chevron-right
200

Encrypted keystore + one-time seed phrase backup

application/json
seedPhrasestringOptional

12-word BIP-39 seed phrase (shown once for backup)

post
/api/wallet/create
200

Encrypted keystore + one-time seed phrase backup

Prepare gas-sponsored UserOp (EIP-7702)

post

Prepares a gas-sponsored UserOperation for client signing. The server calls Alchemy's prepareCalls() — no private key needed. Returns the prepared UserOp data that the browser must sign locally.

Body
addressstringRequired

User's wallet address

chainIdintegerRequired

Target chain ID

Example: 8453
Responses
chevron-right
200

Prepared UserOp data for client-side signing

application/json
preparedCallsobjectOptional

Serialized prepared calls to sign

post
/api/wallet/prepare-tx
200

Prepared UserOp data for client-side signing

Submit client-signed UserOp

post

Submits a UserOp that was signed client-side to the Alchemy bundler. No private key involved server-side.

Body
chainIdintegerRequiredExample: 8453
signedCallsobjectRequired

Signed UserOp data from client

Responses
chevron-right
200

Transaction submitted and confirmed

application/json
txHashstringOptional
statusstringOptional
post
/api/wallet/submit-signed
200

Transaction submitted and confirmed

Last updated