Skip to main content
POST
/
order
Request faucet
curl -X POST https://exchange-api.bulk.trade/api/v1/order \
  -H "Content-Type: application/json" \
  -d '{"actions":[{"faucet":{"u":"FuueqefENiGEW6uMqZQgmwjzgpnb85EgUcZa5Em4PQh7","amount":10000.0}}],"nonce":1704067200000,"account":"FuueqefENiGEW6uMqZQgmwjzgpnb85EgUcZa5Em4PQh7","signer":"FuueqefENiGEW6uMqZQgmwjzgpnb85EgUcZa5Em4PQh7","signature":"5j7s...base58..."}'
{
  "status": "ok",
  "response": {
    "type": "order",
    "data": {
      "statuses": [
        {
          "deposit": {
            "amount": 10000
          }
        }
      ]
    }
  }
}
This action is only available on testnet environments. You can claim once every hour.
Faucet requests use the unified POST /order endpoint. Send a transaction with a faucet action in the actions array.

Transaction Envelope

Every request to POST /order has this shape:
{
  "actions": [Action, ...],
  "nonce": 1704067200000,
  "account": "base58_pubkey",
  "signer": "base58_pubkey",
  "signature": "base58_signature"
}
For faucet, the action is a single faucet object.

Faucet Action

FieldTypeDescription
ustringRecipient public key (base58).
amountnumber?Amount to deposit (optional).

Request Example

{
  "actions": [
    {"faucet": {"u": "FuueqefENiGEW6uMqZQgmwjzgpnb85EgUcZa5Em4PQh7", "amount": 10000.0}}
  ],
  "nonce": 1704067200000,
  "account": "FuueqefENiGEW6uMqZQgmwjzgpnb85EgUcZa5Em4PQh7",
  "signer": "FuueqefENiGEW6uMqZQgmwjzgpnb85EgUcZa5Em4PQh7",
  "signature": "5j7sVt3k2YxPqH4w..."
}
Without optional amount (default deposit):
{"faucet": {"u": "FuueqefENiGEW6uMqZQgmwjzgpnb85EgUcZa5Em4PQh7"}}

Response

Same OrderResponse format as other actions. Success returns a deposit status:
{
  "status": "ok",
  "response": {
    "type": "order",
    "data": {
      "statuses": [{"deposit": {"amount": 10000.0}}]
    }
  }
}
Failure returns depositFailed:
{
  "status": "ok",
  "response": {
    "type": "order",
    "data": {
      "statuses": [{"depositFailed": {"message": "Rate limit exceeded"}}]
    }
  }
}

Before You Start

See the Transaction Signing guide for how to sign your requests.Nonce: Use a unique value (e.g. timestamp in nanoseconds): BigInt(Date.now()) * 1_000_000n

Body

application/json

Transaction with a single faucet action

actions
Faucet (faucet) · object[]
required

Must contain exactly one faucet action

nonce
integer<int64>
required

Unique nonce (e.g. nanoseconds)

account
string
required

Account public key (base58)

signer
string
required

Signer public key (base58)

signature
string
required

Ed25519 signature (base58)

Response

200 - application/json

Faucet deposit result

status
enum<string>
Available options:
ok,
error
response
object