Ask for an invitation
Menu

API reference

Wallets and balances

Read-only. A merchant has exactly eleven wallets, one per network, created in one step at sign-up; the API cannot create, delete or change a wallet, an owner or a threshold. status is address_ready (nothing deployed), deploying, or active. Bitcoin, Litecoin and Dogecoin wallets are active from the start. Nine wallets can receive at once; a Solana or TRON wallet receives only after activation (two_of_three_in_force, display_state).

A balance read is the wallet's own chain read, made by the merchant's worker. If the worker is asleep the first call may answer 503 merchant_worker_waking with Retry-After: 2; retry.

What the API can and cannot do with money is set out in full in Money out. In one line: it reads everything, it requests refunds, payouts, conversions and saved addresses, and it can never sign, approve, or change where money goes.

The wallet object

JSON

{
  "id": "wal_bsfw07hymawmda7gg8jsyy3g",
  "object": "wallet",
  "livemode": true,
  "created": "2026-09-02T09:16:20.000Z",
  "wallet_set": "wset_6tnmbah49h3xpfbgefw5f2jz",
  "network": "base",
  "status": "address_ready",
  "display_state": "ready",
  "two_of_three_in_force": true,
  "address": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
  "shape": "safe_1_4_1",
  "threshold": 2,
  "owner_count": 3,
  "can_receive": true,
  "can_send": true,
  "deployed": false,
  "deployment_note": "Deployed with the first approved send; the fee account pays.",
  "native_asset": "base:eth",
  "explorer_url": "https://basescan.org/address/0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed"
}
Table: The wallet object
FieldMeaning
statusaddress_ready (has an address; nothing deployed), deploying, active (deployed and can send). Values: address_ready, deploying, active.
display_stateready, not_activated (a Solana or TRON wallet before activation), not_enabled (the network is not switched on yet), deploying, active.
two_of_three_in_forcefalse for a Solana or TRON wallet before activation: that address is then controlled by one key, so address is null, can_receive is false, and the wallet is not used for settlement or the direct rail. True for every other wallet from creation.
networkOne of ethereum, bsc, polygon, arbitrum, optimism, base, solana, tron, bitcoin, litecoin, dogecoin.
shapeOne of safe_1_4_1, squads_vault, tron_permissions, p2wsh, p2sh_p2wsh, p2sh.

The balance object

JSON

{
  "object": "balance",
  "wallet": "wal_bsfw07hymawmda7gg8jsyy3g",
  "network": "base",
  "asset": "base:usdc",
  "amount": "1284.500000",
  "incoming_unconfirmed": "0.000000",
  "reserved": "250.000000",
  "available": "1034.500000",
  "value": {
    "amount": "1284.37",
    "currency": "USD"
  },
  "as_of": "2026-10-12T09:29:58.000Z"
}
Table: The balance object
FieldMeaning
reservedHeld for money-out requests that are awaiting approval or in flight.
availableAmount minus reserved.

The fee_account object

JSON

{
  "id": "fa_z9x4m7aaz6zqhzgd0x1qg952",
  "object": "fee_account",
  "livemode": true,
  "created": "2026-09-02T09:16:20.000Z",
  "top_up_from_takings": true,
  "keys": [
    {
      "family": "evm",
      "address": "0x52908400098527886E0F7030069857D2E4169EE7",
      "balances": [
        {
          "network": "base",
          "asset": "base:eth",
          "amount": "0.000410000000000000",
          "value": {
            "amount": "1.02",
            "currency": "USD"
          },
          "low_mark": {
            "amount": "0.50",
            "currency": "USD"
          },
          "low": false
        }
      ]
    },
    {
      "family": "solana",
      "address": "4Nd1mYvQwC8eBtBMRZcQJ6pGZpUuPqiJvWx3nCkV8sXh",
      "balances": [
        {
          "network": "solana",
          "asset": "solana:sol",
          "amount": "0.000000000",
          "value": {
            "amount": "0.00",
            "currency": "USD"
          },
          "low_mark": {
            "amount": "0.50",
            "currency": "USD"
          },
          "low": true
        }
      ]
    },
    {
      "family": "tron",
      "address": "TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7",
      "balances": [
        {
          "network": "tron",
          "asset": "tron:trx",
          "amount": "0.000000",
          "value": {
            "amount": "0.00",
            "currency": "USD"
          },
          "low_mark": {
            "amount": "0.50",
            "currency": "USD"
          },
          "low": true
        }
      ]
    }
  ]
}

The ledger_entry object

JSON

{
  "id": "le_d1jr8qbcjryqrqt72pxzk44n",
  "object": "ledger_entry",
  "livemode": true,
  "created": "2026-10-11T14:09:55.764Z",
  "type": "payment",
  "wallet": "wal_bsfw07hymawmda7gg8jsyy3g",
  "asset": "base:usdc",
  "amount": "21.990000",
  "direction": "in",
  "value": {
    "amount": "21.99",
    "currency": "USD"
  },
  "order": "ord_0zymngngvf12b8b2cra7tb8e",
  "source": "pay_2pe50hae6w2jk4sp1rcq5pae",
  "transaction_hash": "0x27ca64c092a959c7edc525ed45e845b1de6a7590d173fd2fad9133c8a779a1e3",
  "description": "Order #1042"
}
Table: The ledger_entry object
FieldMeaning
typeOne of payment, provider_refund, refund, payout, withdrawal, conversion_out, conversion_in, network_fee, route_fee, fee_account_top_up, sweep, unmatched_payment, adjustment.
directionOne of in, out.

Every field

Fields of the wallet object

Fields of the wallet object
FieldTypeMeaning
two_of_three_in_forcebooleanfalse for a Solana or TRON wallet before activation: that address is then controlled by one key, so address is null, can_receive is false, and the wallet is not used for settlement or the direct rail. true for every other wallet from creation.
display_statestringWhat the dashboard shows. not_activated: Solana or TRON before activation. not_enabled: Orrerie has not switched this network on yet; address is null. One of ready, not_activated, not_enabled, deploying, active.
idstringUnique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters.
objectstringThe type of this object.
livemodebooleantrue for live mode (real money); false for test mode (simulated payments).
createdstring (date-time)When the object was created. RFC 3339, UTC, milliseconds.
wallet_setstringThe wset_ id of the set of eleven wallets this one belongs to.
networkstringOne of ethereum, bsc, polygon, arbitrum, optimism, base, solana, tron, bitcoin, litecoin, dogecoin.
statusstringaddress_ready (can receive), deploying, active (deployed and can send). One of address_ready, deploying, active.
addressstring or nullThe wallet's address; null in test mode, and before a Solana or TRON wallet is activated.
shapestringOne of safe_1_4_1, squads_vault, tron_permissions, p2wsh, p2sh_p2wsh, p2sh.
thresholdintegerHow many signatures a send needs: 2.
owner_countintegerHow many keys can sign for it: 3.
can_receivebooleantrue when payments may be sent to it now.
can_sendbooleantrue when money can leave it now.
deployedbooleantrue once the wallet's contract or account exists on its network.
deployment_notestring or nullWhat happens at the first send of a wallet not yet deployed; null for none.
native_assetstringThe asset id of the network's own coin.
explorer_urlstring or nullThe wallet's page on a public block explorer; null in test mode or without an address.

Fields of the balance object

Fields of the balance object
FieldTypeMeaning
objectstringThe type of this object.
walletstringThe wal_ id of the wallet holding it.
networkstringThe network of the wallet.
assetstringThe asset held.
amountstringWhat the wallet holds, in the asset's own units.
incoming_unconfirmedstringPayments seen on their way that are not yet confirmed, in the asset's own units.
reservedstringHeld for money-out requests that are awaiting approval or in flight.
availablestringAmount minus reserved.
valueobjectWhat amount is worth now, in the currency asked for (US dollars by default).
value.amountstringThe value, a decimal string.
value.currencystringThe currency of the value.
as_ofstring (date-time)When the wallet's balance was last read from the chain.

Fields of the fee_account object

Fields of the fee_account object
FieldTypeMeaning
idstringUnique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters.
objectstringThe type of this object.
livemodebooleantrue for live mode (real money); false for test mode (simulated payments).
createdstring (date-time)When the object was created. RFC 3339, UTC, milliseconds.
top_up_from_takingsbooleantrue when small orders on the settlement network refill the fee account.
keysarray of objectsThe account's keys, one per network family. Empty in test mode, which shows no address at all (04 Test mode).
keys[].familystringevm, solana or tron.
keys[].addressstringThe fee account's address for that family.
keys[].balancesarray of objectsWhat the address holds on each network it pays fees on.
topupobjectWhether the fee account fills itself from takings (Money out), so an integration can tell: a merchant with no orders that small must send the coin once.
topup.enabledbooleantrue when orders in eligible_order_range on the settlement network refill the fee account; the same as top_up_from_takings.
topup.laststring (date-time) or nullWhen a top-up's fill was last proved at the fee address; null when none ever was.
topup.eligible_order_rangearray of stringsThe smallest and largest order, in US dollars, that can refill the fee account: 1.00 and 10.00.

Fields of the ledger_entry object

Fields of the ledger_entry object
FieldTypeMeaning
idstringUnique identifier: the object prefix, an underscore, 24 lower-case Crockford base32 characters.
objectstringThe type of this object.
livemodebooleantrue for live mode (real money); false for test mode (simulated payments).
createdstring (date-time)When the object was created. RFC 3339, UTC, milliseconds.
typestringOne of payment, provider_refund, refund, payout, withdrawal, conversion_out, conversion_in, network_fee, route_fee, fee_account_top_up, sweep, unmatched_payment, adjustment.
walletstring or nullThe wal_ id of the wallet the entry moved; null when the fee account paid or received it.
assetstringThe asset that moved.
amountstringHow much moved, in the asset's own units.
directionstringOne of in, out.
valueobjectWhat it was worth in US dollars at the time.
value.amountstringThe value, a decimal string.
value.currencystringAlways USD.
orderstring or nullThe ord_ id of the order the entry belongs to; null for none.
sourcestring or nullThe id of what made the entry: a payment, refund, payout, conversion or sweep; null for an adjustment.
transaction_hashstring or nullThe hash of the transaction behind the entry; null when no transaction made it.
descriptionstringA short description of the entry, as the dashboard shows it.

Endpoints

Events

Webhook events whose data.object is an object of this page.