Skip to main content

Glossary

Quick reference for key terms used in the Boros API. For portfolio concepts (leverage, margin, PnL, liquidation), see the Boros User Glossary.


Core Concepts​

TermDescriptionWhere it appears
MarketA trading market uniquely identified by marketId, with one collateral token and specific parameters. Each market represents a different interest rate swap: different token, different maturity, different reference rate.GET /markets, GET /markets/{marketId}
AssetAny collateral token in the system, identified by tokenId (e.g., USDT has 6 decimals, BTC has 8). Internally all values are normalized to 18 decimals.GET /assets/all
RootEVM address (0x-prefixed) serving as the primary trading identity. The root wallet signs sensitive actions (deposit, withdraw, agent approval).All account endpoints, calldata endpoints
AccountSub-account under a root (IDs 0–255). Account 0 is default for trading; 255 is reserved for AMM. Currently only account 0 is available for external users.accountId parameter across all endpoints
AgentWallet authorized to execute non-sensitive trading operations on behalf of a root account. Agents cannot withdraw funds β€” only place orders, cancel, transfer cash, and enter/exit markets. See Agent Trading.GET /agents/expiry-time, GET /calldata/approve-agent
Account ManagerDelegated wallet that can approve and revoke agents on behalf of a root account. The root sets the account manager via setAccManager. Useful for programmatic agent management without exposing the root key.GET /calldata/approve-agent
Market AccountUnique trading context packed as: (root, subaccountId, tokenId, marketId). Use CROSS_MARKET_ID (16777215) for cross-margin, or a specific marketId for isolated. This is the key identifier for querying positions and balances. See Custom Types.POST /accounts/market-acc-infos
DecimalsDeposits/withdrawals use native token decimals (e.g., 6 for USDT). All trading values β€” sizes, balances, prices β€” use 18 decimals internally. Always convert when bridging between wallet amounts and API values.All size/amount fields
APR FormatAll APR values in the API (markApr, midApr, liquidationApr, impliedApr, ammImpliedApr, etc.) are decimal fractions, not percentages. For example, 0.05495 means 5.495%. Multiply by 100 to get the human-readable percentage. All APR fields use the same scaling β€” there are no exceptions.All market and account endpoints
Scaling FactorMultiplier used to normalize token amounts to 18-decimal precision internally. Calculated as 10^(18 - tokenDecimals) during token registration (e.g., USDT with 6 decimals has scaling factor 10^12). Tokens with more than 18 decimals are not supported.GET /assets/all
CooldownMandatory waiting period between requesting and finalizing a withdrawal. Protects protocol solvency by preventing instant removal of collateral backing active positions. The global cooldown applies to all users; individual roots may have a personal cooldown override.Withdrawal endpoints
Deposit BoxDeterministic per-user contract for receiving cross-chain deposits and performing token swaps (via DEX routers) before depositing into Boros. Created by DepositBoxFactory from (root, boxId). Managed by Pendle backend β€” users do not interact with them directly.Internal (not exposed via API)

Trading Concepts​

TermDescriptionWhere it appears
Order BookPrimary liquidity source with Long/Short sides organized by price ticks. See Order Book Mechanics for matching rules and constraints.GET /markets/order-books, GET /v2/markets/order-books
OrderTrade instruction with orderId, tick (price level), side, size (18 decimals), and tif (time-in-force). Orders can be placed individually or in bulk.POST /calldata/place-orders, GET /accounts/limit-orders
TickInteger price level representing an interest rate. Formula: rate = 1.00005^(tick Γ— tickStep) - 1. Higher tick = higher rate. The tick step is market-specific and controls rate granularity. Use SDK helpers to convert between human-readable APR and tick values.All order-related endpoints, GET /stop-order/v1/orders/tpsl/prepare
SlippageMax acceptable price impact as a percentage (market orders only). Protects against unfavorable fills when the order book is thin.GET /simulations/place-order
AMMAutomated market maker providing continuous liquidity alongside the order book. The Router routes between AMM and order book for optimal execution. AMM liquidity can be optionally included in order book queries.GET /v2/markets/order-books, AMM simulation/calldata endpoints
OTC TradeDirect swap between two accounts bypassing the order book, typically routed through the AMM. Has a separate fee rate (otcFee). See Fees.AMM swap/liquidity endpoints
Mark RateTWAP of historical order book trades, used as the reference rate for margin, liquidation, and order rate bounds. Distinct from mid rate and AMM implied rate. See TWAP Oracle.GET /markets/{marketId} (in market state)
Mid Rate (midApr)Midpoint of the best bid and best ask rates: (bestBid + bestAsk) / 2. When the AMM provides the tightest spread, this may equal the AMM implied rate. Can diverge from the mark rate in thin markets.GET /markets/{marketId}
AMM Implied RateThe current rate implied by the AMM's internal state. Represents the rate at which the AMM would trade. Should normally be near the order book's best bid/ask. The AMM has a min/max APR range β€” outside this range, it stops serving trades.GET /markets/{marketId}
Implied RateCurrent interest rate implied by order book trading, consisting of the last traded rate and a TWAP component.GET /markets/{marketId}
Rate FloorMinimum absolute rate used in margin calculations (derived from market.imData.iTickThresh). If an order's rate is below the rate floor, the floor value is used for margin instead. See Margin β€” Pre-scaling IM.Market config
SettlementPeriodic floating rate payment exchange (typically every 8 hours) using lazy settlement. See Settlement Mechanics.GET /accounts/settlements, POST /funding-rate/settlement-summary
Conditional OrderOn-chain order with an off-chain trigger condition, executed by a permissioned validator when conditions are met. Stop orders are built on this. See Conditional Orders.Stop Order Service endpoints
Stop OrderConditional off-chain order (take-profit or stop-loss) that triggers when market APR crosses a threshold. Managed by the Stop Order Service. See Stop Orders.GET /stop-order/v1/orders/tpsl/prepare, POST /stop-order/v2/orders/place

Margin Concepts​

TermDescriptionWhere it appears
Cross MarginShares collateral across all entered markets. Unrealized profit in one market can offset losses in another. Use CROSS_MARKET_ID (16777215) when packing marketAcc.POST /accounts/market-acc-infos, GET /calldata/enter-exit-markets
Isolated MarginConstrains collateral to a single market. Liquidation in one market doesn't affect others. Use the specific marketId when packing marketAcc.GET /calldata/cash-transfer, GET /simulations/deposit
Initial MarginMinimum collateral required to open a new position. Calculated based on position size, rate, and time to maturity. See Margin Mechanics.GET /simulations/place-order (in projected state)
Maintenance MarginMinimum collateral required to keep positions open. If total value drops below this, the position is eligible for liquidation.POST /accounts/market-acc-infos (in margin status)
Health RatioTotal Value / Maintenance Margin. Above 1.0 = healthy; ≀ 1.0 = liquidation eligible. Multiple thresholds trigger progressive risk actions. See Margin Mechanics.POST /accounts/market-acc-infos
LiquidationForced closure of positions when health ratio ≀ 1.0. Positions are closed at mark rate; a liquidation incentive is paid to the liquidator. See Margin Mechanics.GET /events/liquidation-events
Force CancelAutomatic cancellation of open orders when an account's health ratio drops below the risky threshold, or when order rates deviate too far from mark rate. See Risk Management.GET /accounts/limit-orders
CLO (Close-Only)Market status where only position-reducing orders are accepted. See Closing Only Mode.GET /markets/{marketId} (status field)

Enums​

Side​

ValueNameDescription
0LONGBetting on rate increase (pay fixed, receive floating)
1SHORTBetting on rate decrease (receive fixed, pay floating)

Time In Force (TIF)​

ValueNameBest forDescription
0GOOD_TIL_CANCELLEDLimit ordersRemains on book until filled or canceled
1IMMEDIATE_OR_CANCELMarket ordersFills against available liquidity, cancels remainder
2FILL_OR_KILLAll-or-nothingMust fill entire size immediately or reverts
3ALOMarket makingPost-only (Add Liquidity Only); reverts if it would match existing orders. Guarantees maker-only status.
4SOFT_ALOMarket makingPost-only (soft); skips matching without reverting. Preferred over ALO for no-revert behavior.

Market Status​

PAUSED (0) Β· CLO (1) Β· GOOD (2) β€” See Custom Types for descriptions and state transitions.

Stop Order Type​

ValueNameDescription
2TAKE_PROFIT_MARKETTriggers when market moves in your favor
3STOP_LOSS_MARKETTriggers when market moves against you

SDK Helpers​

import { MarketAccLib, CROSS_MARKET_ID, estimateTickForRate, getRateAtTick } from "@pendle/sdk-boros";
import { FixedX18 } from "@pendle/boros-offchain-math";

// Pack market account for API calls
const marketAcc = MarketAccLib.pack(walletAddress, accountId, tokenId, CROSS_MARKET_ID);

// Convert between tick and rate
const tick = estimateTickForRate(FixedX18.fromNumber(0.05), tickStep, false);
const rate = getRateAtTick(tick, tickStep);

// Convert between human-readable numbers and 18-decimal strings
const size = FixedX18.fromNumber(100).value.toString(); // "100000000000000000000"
const amount = FixedX18.fromBigIntString(balanceString).toNumber(); // 100.0

Additional Resources​