Skip to main content
Sandbox uses rUSD on Base Sepolia. See Sandbox Testing.

Overview

  • Production: USDC on Base.
  • Sandbox: rUSD on Base Sepolia.
  • POST /deposits creates a deposit address.
  • Use GET /deposits or GET /deposits/ to track status.
  • No extra scopes are required.

Flow

API flows (step‑by‑step)

1

Create a deposit

Endpoint: POST /deposits
Body: production { currency: "usdc", network: "base", amount? }; sandbox { currency: "rusd", network: "base", amount? }
curl -s \
  -d '{"currency":"usdc","network":"base"}' \
  https://dev-api.machines.cash/partner/v1/deposits
Always display and fund the address in depositAddress. We return the correct address for the environment:
  • Sandbox: depositAddress points to the collateral contract’s deposit address; send rUSD there.
  • Production: depositAddress is the ChangeNow pay‑in address; send USDC on Base there.
2

Track status

Endpoint: GET /deposits/ or GET /deposits?scope=active
scope=active returns recent in‑flight deposits; use scope=all for full history.

Fields (create)

currency
string
required
Production: usdc. Sandbox: rusd.
network
string
required
base.
amount
number
Optional amount to deposit.

Response (deposit)

deposit.id
string
required
Deposit id.
deposit.contractId
string
Collateral contract id used for the deposit.
deposit.changeNowId
string
ChangeNow order id (production only).
deposit.fromCurrency
string
Deposit currency (usdc in production, rusd in sandbox).
deposit.fromNetwork
string
Deposit network (base).
deposit.depositAddress
string
Address to fund the deposit. Use this in both sandbox and production. In sandbox it’s the collateral contract’s deposit address; in production it’s the exchange pay‑in address.
deposit.chainId
number
Chain id for the deposit network.
deposit.minAmount
number
Minimum deposit amount.
deposit.maxAmount
number
Maximum deposit amount (if provided).
deposit.status
string
required
awaitingDeposit | processing | completed | failed | canceled.
deposit.createdAt
string
ISO 8601 timestamp when the deposit was created.
deposit.updatedAt
string
ISO 8601 timestamp when the deposit was last updated.

Status values

  • awaitingDeposit: address created, waiting on chain.
  • processing: detected, being processed.
  • completed: funds settled.
  • failed / canceled: deposit did not complete.