---
title: "Atomically create and configure a deposit from a Privy embedded wallet"
method: POST
path: "/v2/deposits/atomic-create"
tags: ["Deposits"]
---

# Atomically create and configure a deposit from a Privy embedded wallet

`POST /v2/deposits/atomic-create`

Validates prepared calldata against fixed protocol targets, reserves the next EscrowV2 deposit id server-side, inserts that id into setup calls, and submits one sponsored wallet_sendCalls batch guarded by pre/post on-chain assertions.

## Request body

- object
  - `requestId` string, uuid, required
  - `calls` object, required
    - `approve` string
    - `createDeposit` string, required
    - `setRateManager` string
    - `configureDeposit` string
    - `setDisputeProtectionEnabled` string
    - `configureDeposits` string[]
    - `setDisputeProtectionEnabledCalls` string[]

## Response `201`

Atomic deposit created

- object
  - `success` boolean, required
  - `message` string, required
  - `responseObject` object
    - `chainId` integer, required
    - `depositId` string, required
    - `escrowAddress` string, required
    - `transactionHash` string, required
  - `statusCode` number, required
  - `errorCode` string

## Other responses

- `400` — Invalid or unsafe calldata
- `404` — Embedded wallet not found
- `409` — requestId payload conflict
- `502` — Atomic deposit submission failed
- `503` — Atomic deposit temporarily unavailable

---

[API](https://skmtc.dev/peer/apis/swagger-api.md) · [All operations](https://skmtc.dev/peer/apis/swagger-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/peer/swagger-api/revisions/d5fcf4abb61a/schema)
