---
title: "Prepare a Solana wallet transfer"
method: POST
path: "/api/v1/deposits/prepare"
tags: ["Deposits"]
---

# Prepare a Solana wallet transfer

`POST /api/v1/deposits/prepare`

## Request

- Base URL: `https://spoofy.social`
- URL: `https://spoofy.social/api/v1/deposits/prepare`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `better-auth.session_token`

The unsigned Solana transaction that pays `amount` (USD; 1 coin = $1) of the method’s coin from the wallet `from` to your own Solana deposit address: it creates the receiving token account if needed, then transfers. Your wallet signs and sends it (Wallet Standard `solana:signAndSendTransaction`); then pass its signature to `POST /deposits/check`. Nothing is signed or sent by Spoofy. On EVM networks, send an ERC-20 `transfer` to your address yourself.

## Request body

- object
  - `method` string, required
  - `from` string, required: The paying wallet’s Solana address.
  - `amount` string, required: The amount to pay. USD as a decimal string.

## Response `200`

The transaction to sign.

- object
  - `method` string
  - `transaction` string: base64, one empty signature slot
  - `from` string
  - `to` string
  - `amount` string: The amount. USD as a decimal string.
  - `lastValidBlockHeight` string

## Other responses

- `400`: The request is not valid. `error.message` says why.
- `401`: No valid API key or session.
- `413`: The request body is too big (uploads up to 4 MB, everything else up to 64 KB).
- `429`: Slow down: too many requests in a short time. Wait `Retry-After` seconds and carry on.

---

[API](https://skmtc.dev/spoofy/apis/spoofy-api.md) · [All operations](https://skmtc.dev/spoofy/apis/spoofy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spoofy/apis/spoofy-api/revisions/0619b5c8adae?raw)
