API reference

API reference · Credits

Balance and ledger

GET/api/creditsSigned in session

An account with no deposit is never gated. Once funded, a balance at or below zero answers 402 insufficient_credits on keyed requests.

Answer 200

Balance, recent ledger, and deposit configuration.

Fields of the 200 answer
FieldTypeWhat it is
fundedbooleanTrue once any deposit has landed. Only funded accounts are gated.
balanceMicrosinteger or null
ledgerarray of object
ledger[].idinteger
ledger[].deltaMicrosintegerPositive for money in (deposit, plan_credit, referral, reward), negative for money out (spend, hold, plan).
ledger[].kindstringdeposit: a claimed transfer or an operator credit. spend: a settled request. hold: the worst case reserved before a request, released as it settles. plan: a plan charge. plan_credit: credit a plan includes. referral and reward: referral and season rewards, credit that is not a deposit. price_lock_fund: credit moved into a price lock (negative) and price_lock_return: its remainder back at expiry (positive); price_lock_premium: a lock's premium. One of "deposit", "spend", "hold", "plan", "plan_credit", "referral", "reward", "price_lock_fund", "price_lock_premium", "price_lock_return", "storage", "studio_credit".
ledger[].refstring or null
ledger[].createdAtinteger
holderobject
holder.enabledbooleanFalse unless the token's address and a valid set of tiers are both set.
holder.tokenstring or nullThe ERC-20 contract the perk reads, lower case, or null before it exists.
holder.chainIdintegerThe chain the contract is on: 4663, Robinhood Chain.
holder.minWholeintegerWhole tokens the lowest tier needs.
holder.bonusMicrosintegerThe lowest tier's allowance bonus, micro USD.
holder.tiersarray of objectEvery tier, lowest bar first; empty while off.
holder.tiers[].namestring
holder.tiers[].minWholeintegerWhole tokens the wallet must hold.
holder.tiers[].allowanceBonusMicrosintegerMicro USD added to the lifetime free allowance.
holder.tiers[].rateMultipliernumberThe per key API rate limit is multiplied by this; 1 is no change.
holder.tiers[].requestsPerMinuteintegerThe per key API rate limit under this tier.
holder.tiers[].markupDiscountBpsintegerBasis points off the operator's markup on what the holder's keys settle, never off the upstream's price; 0 where no markup is configured.
holder.heldWholeinteger or nullWhole tokens in the signed in wallet at the last reading, or null before one.
holder.tierobject or nullThe highest tier the last reading meets, or null.
holder.nextTierobject or nullThe next tier up, or null at the top.
holder.qualifiesbooleanHolds any tier.
holder.checkedAtinteger or nullUnix ms of the last reading.
depositsobject
deposits.configuredbooleanFalse when the operator has set no deposit address.
deposits.addressstring or nullWhere to send the deposit. Null until it is set.
deposits.defaultChainstring or nullThe network a claim uses when it names none.
deposits.networksarray of object
deposits.networks[].keystring
deposits.networks[].namestring
deposits.networks[].chainIdinteger
deposits.networks[].confirmationsintegerBlocks a transfer must be buried under.
deposits.networks[].tokensarray of object
deposits.networks[].tokens[].symbolstringUSDC or USDT; ANTI while $ANTI is the one way in.
deposits.networks[].tokens[].addressstringThe one contract accepted for this symbol here.
deposits.networks[].tokens[].decimalsintegerRead from configuration, never assumed.
deposits.networks[].tokens[].pricedbooleanTrue for $ANTI, which is not a dollar: credited at the credit price.
deposits.chainstringThe accepted networks, ready for a sentence.
deposits.tokenstringThe accepted tokens, ready for a sentence.
deposits.confirmationsintegerThe default network's depth.
deposits.antiobject
deposits.anti.symbolstringANTI.
deposits.anti.chainIdinteger
deposits.anti.addressstringThe token contract.
deposits.anti.decimalsinteger
deposits.anti.buyUrlstring or nullWhere to buy it, or null.
deposits.anti.priceE12string or nullThe credit price now, pico dollars per whole token, decimal text; null while there is none.
deposits.anti.sampledAtinteger or nullWhen the newest usable price sample was taken.
deposits.anti.capMicrosinteger or nullThe most one claim is credited, micro USD.
deposits.anti.haircutBpsintegerTaken off the credit price; 0 unless set.
deposits.anti.unavailablestring or nullWhy there is no price, when there is none.
Antimatter