Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Borro

REMOTE · BORRO.MARKETS

Stock lending on Robinhood Chain: read markets and prepare lends, loans, shorts and credit lines.

Available components

+5 this week 70 Trust /100

Last scanned (5 hours ago)

Scores higher than 56% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security77
Transport & Reachability100
Schema Quality & AI Usability54
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 21924 tokens (~257/item across 85 items; 85 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "withdraw" implies "withdraw" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
  • An AI judge read all 86 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1
    • New tool “gaix_repay” functional
    • New tool “gaix_short_close” functional
    • New tool “gaix_short_close_in_kind” functional
    • New tool “gaix_borrow” functional
    • New tool “gaix_lend” functional
    • New tool “gaix_market” functional
    • New tool “gaix_short_deposit” functional
    • New tool “gaix_short_open” functional
    • New tool “gaix_short_quote” functional
    • New tool “gaix_withdraw” functional
  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Nov 26 +1
    • DNSSEC: fail → pass ▲ security
  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 0
    • Tool “account_open” rewrote its description, which is the text the model reads security
    • Tool “keeper_jobs” rewrote its description, which is the text the model reads security
    • Schema quality: 17590 → 20260 ▼ functional
    • New tool “bailout” functional
    • New tool “bailout_cancel” functional
    • New tool “bailout_claim” functional
    • New tool “bailout_foreclose” functional
    • New tool “bailout_offer” functional
    • New tool “bailout_repay” functional
    • New tool “bailouts” functional
    • “account_open” added an optional parameter “account” cosmetic
    • “account_open” added an optional parameter “agent_bailout_max_usdg” cosmetic
  • 30 Oct 26 +1
    • New tool “payto” functional
    • New tool “payto_open” functional
    • New tool “payto_sweep” functional
    • New tool “payto_withdraw” functional
  • 29 Oct 26 0
    • Schema quality: 225 → 265 ▼ functional
    • New tool “account_open” functional
    • New tool “account_status” functional
    • New tool “account_trade” functional
    • New tool “account_withdraw” functional
    • New tool “counterparty_check” functional
    • New tool “keeper_jobs” functional
    • New tool “liquidate” functional
    • New tool “trigger_cancel” functional
    • New tool “trigger_fire” functional
    • New tool “trigger_list” functional
    • New tool “trigger_set” functional
  • 28 Oct 26 0
    • Schema quality: 10160 → 11947 ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • New tool “hold_collect” functional
    • New tool “hold_end” functional
    • New tool “hold_header” functional
    • New tool “hold_open” functional
    • New tool “hold_pay” functional
    • New tool “hold_status” functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://borro.markets/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=borro.markets CN=WE1,O=Google Trust Services,C=US 1 Oct 2026 30 Dec 2026 ECDSA 256 ECDSA-SHA256 1870f439bdc2664913e3d23eeb08680c
SANs: borro.markets, www.borro.markets, *.www.borro.markets
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of borro.markets. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
markets. present 58144, 64757 8, 8 Verified
borro.markets. present 2371 13 Verified
borro.markets. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
content-security-policy default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src https://fonts.gstatic.com; img-src 'self' data: https://ipfs.filebase.io https://gateway.pinata.cloud; connect-src 'self' https://yields.llama.fi https://api.hyperliquid.xyz; frame-ancestors 'none'; base-uri 'none'; form-action 'self'
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://borro.markets/mcp Verified 200
http (plaintext) http://borro.markets/mcp HTTPS enforced 301 https://borro.markets/mcp
MCP tools · 85 exposed · ~21,861 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
account_open ~951

Unsigned transaction opening the wallet's version 2 trade account (a TradeAccountV2, one per owner, made by TradeAccountFactoryV2): a trade account with Bailouts, where the owner may post standing offers that pay rescuers to save a position instead of letting it be liquidated (bailout_offer). An agent may be named: an optional second key, never the wallet itself, that can open and close positions within its slippage of the stock's feed, set triggers and cancel the ones it set, post offers within the owner's cap, and send money out to the owner alone. Positions opened inside the account can carry triggers (stop-loss, take-profit, liquidation guard) that anyone can execute for a tip once the price feed confirms them; positions opened from the wallet cannot (close them and open them again inside). Whenever no bailout is owed the owner can take everything out at any time and nobody, Borro included, can stop that; while one is owed, the owner's way out is to pay it (bailout_repay), which lifts the lien at once. A version 1 account the wallet holds stays as it is and keeps working; the other trade tools take either. With a version 2 account open already: agent names a new agent (the old agent's triggers and offers are cancelled with it), revoke_agent: true revokes it at once; account names which of the wallet's accounts to change (default its version 2 one). The owner's settings, on a new account or an open one: the agent's limits (agent_slip_bps, agent_max_tip_bps, agent_max_margin_usdg, agent_daily_loss_usdg, agent_restricted; the agent opens nothing, takes no deposit out, sets no trigger and posts no offer until it has a daily loss budget, and closes whatever the budget; it tips nothing until it has a max tip), agent_bailout_max_usdg (the most an agent's offer may put at stake, 0 by default: none) and max_slip_bps, how far a stop's or a guard's fire bound may widen past its slip (while an offer is live or a bailout is owed it may come down and never up). Simulated fro…

NameTypeReqDescription
accountstring–Which of the wallet's trade accounts to change (default its version 2 account; give its version 1 account to change that one)
agentstring–The agent's address (optional): a second key that may trade the account and set triggers, never the wallet itself
agent_bailout_max_usdgstring–Version 2: the most an offer the agent posts may put at stake (max_usdg), or "none" (default none: the agent posts no offers), in whole units as a decimal string, like "1.5"
agent_daily_loss_usdgstring–The most the agent's fills (and the fires of the triggers it set) may cost against the feed in all each UTC day, renewed at 00:00 UTC (default 0: no agent opens, deposit withdrawals or triggers; its…
agent_max_margin_usdgstring–The most equity one position may hold after the agent's trade, or "none" (default none), in whole units as a decimal string, like "1.5"
agent_max_tip_bpsinteger–The most tip the agent's triggers may pay executors (a share of the closed notional at the feed, capped (tip_bps, at most 50 basis points, and never more than the USDG the close returns)), in hundred…
agent_restrictedboolean–true: the agent opens on the desks the owner allows (setAgentMay) alone
agent_slip_bpsinteger–The most the agent's trades and triggers may price from the feed, in hundredths of a percent (100 to 300, default 100)
max_slip_bpsinteger–How far a stop's or a guard's fire bound may widen past its slip over time, in hundredths of a percent (0: no further, up to 1000)
revoke_agentboolean–With an account open: revoke its agent at once
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

account_status ~264

A trade account (account, or the wallet's own): its owner, its agent and the agent's limits (with today's loss against its daily loss budget and what that still lets the agent do: opens, deposit withdrawals and trigger-sets while it has room; closes and top-ups always), the USDG and stock it holds, its shorts and leveraged longs with their LTV (Morpho's own), how much of their limit each uses and the price that liquidates it, which positions have no trigger, every live trigger with its distance from the price now, who can do what, and the market clock. Triggers do not fire while the stock market is shut or the feed has not printed within 25 hours; a price crossed while it is shut (a weekend, a holiday) fires once the market opens again, at the price the feed prints then, within the trigger's slip, and after a gap that price can be well past the trigger's.

NameTypeReqDescription
accountstring–A trade account's address (default: the wallet's own, as its owner; an agent gives its owner's account)
walletstring–The account's owner (when account is not given), or a wallet to say whether it is the owner or the agent

No output schema declared.

No examples provided.

account_trade ~588

Unsigned transactions to open or close a short or a leveraged long through the trade account: the same trades as open_short, close_short, open_long and close_long, with the account as the trader. action open_short (symbol, amount, deposit), close_short (symbol: all of the account's short on it), open_long (symbol, margin, leverage) or close_long (symbol, percent). The account pays from its own USDG; when it holds too little, a USDG transfer from the wallet to the account comes before the trade (from the agent's wallet with fund_from_wallet: true alone, since the agent's own USDG then becomes the owner's and can go out to the owner alone, never back to the agent). What a close returns stays in the account as USDG (account_withdraw takes it out). The wallet must be the account's owner or its agent; the agent's trades must price within its slippage of the stock's feed (refused in words when the pool is further off). The agent's opens need room in the daily loss budget the owner set: refused in words when it is 0 or today's loss has reached it (until 00:00 UTC), and by the account when the open's own shortfall against the feed would pass it. Its closes run whatever the budget (any share, within its slip), counted into today's loss, past the budget by at most their own shortfall. The answer says how much of the budget is left.

NameTypeReqDescription
accountstring–A trade account's address (default: the wallet's own, as its owner; an agent gives its owner's account)
actionstringyesopen_short, close_short, open_long or close_long
amountstring–open_short: stock to short, in whole units as a decimal string, like "1.5"
depositstring–open_short: USDG held beyond the sale (optional), in whole units as a decimal string, like "1.5"
fund_from_walletboolean–The agent signing: true to send its own USDG into the owner's account when the account holds too little (it becomes the owner's; it can go out to the owner alone)
leveragenumber–open_long: leverage, more than 1, like 1.5
marginstring–open_long: USDG margin, in whole units as a decimal string, like "1.5"
percentnumber–close_long: how much to close, 1 to 100 (default 100)
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

account_withdraw ~222

Unsigned transaction taking money out of the trade account: USDG (the default), a stock by its ticker or any token by its address, an amount or all: true. The owner can send it to any address (default the owner) at any time, whatever the account holds open; the agent can send it to the owner alone. Simulated from the wallet.

NameTypeReqDescription
accountstring–A trade account's address (default: the wallet's own, as its owner; an agent gives its owner's account)
allboolean–Everything the account holds of it
amountstring–How much to take out, in whole units as a decimal string, like "1.5"
tostring–Where it goes (default the owner; the agent may send to the owner alone)
tokenstring–USDG (default), a stock's ticker, or a token's address
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

bailout ~398

For rescuers: unsigned transactions taking an offer on a version 2 trade account, from the wallet's own USDG: an exact USDG approval to the account of what its lens says to approve (what the rescue takes if the account's bUSDG cannot be redeemed, plus 100 bps, for interest, the price and the vault before it lands), then bailout(offer_id, amount). The account works out what it takes when it lands: what brings the LTV to the offer's to_ltv plus 50 bps of it, less its own idle money, at most max_usdg; if the idle money alone does it, nothing is taken. Refused in words when the offer cannot be taken now (under its LTV, expired, a bailout owed already, over its max, the long's debt floor) or the wallet holds too little. The answer gives what you are owed (the principal, your part of the fee within a day and at maturity, Borro's cut of the fee, 1000 bps of it), the position's equity against the claim, and when you may foreclose. Rescues run at any hour. A rescue is the rescuer's own USDG lent against the rescued position plus money that arrives in the account while it is owed: if the position is liquidated anyway the rescuer can lose it. Borro's keeper never rescues. Simulated from the wallet.

NameTypeReqDescription
accountstringyesThe version 2 trade account's address
max_usdgstring–The most the rescue may take from the wallet (default: the lens's approve), in whole USDG as a decimal string, like "250"
offer_idstringyesThe offer's number (bailouts shows each one's)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

bailout_cancel ~122

Unsigned transaction cancelling a live offer on the version 2 trade account before anyone takes it: the owner cancels any, the agent the ones it posted. Simulated from the wallet.

NameTypeReqDescription
accountstring–A version 2 trade account's address (default: the wallet's own, as its owner; an agent gives its owner's account)
offer_idstringyesThe offer's number (bailouts shows each one's)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

bailout_claim ~266

Unsigned transactions taking what a version 2 trade account keeps for the wallet: a bailout payment the wallet could not take when it was made (USDG had the wallet frozen, or the token refused the transfer), kept in the token it was paid in: USDG, bUSDG shares, a short's held money as BorroShort's vault shares, or a stock vault's shares from a long's in-kind settlement. One claim for each token the account keeps something of (token: one of them), to the wallet or to `to`. Refused in words when the account keeps nothing for it; while USDG has the wallet frozen the claim waits too (PayeeFrozen). Simulated from the wallet.

NameTypeReqDescription
accountstringyesThe version 2 trade account's address
tostring–Where it goes (default the wallet; neither the wallet nor to may be frozen by USDG)
tokenstring–USDG, bUSDG, held (BorroShort's vault shares), a stock's symbol (its vault's shares) or a token's address (default: every token kept for the wallet)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

bailout_foreclose ~257

For the rescuer, after maturity: an unsigned transaction foreclosing on the rescued position of a version 2 trade account (never the owner's other positions). The account's idle money pays ahead of the close; then it closes no more of the position than covers what is owed plus 50 bps (percent: less, if asked), bounded at the feed within 50 bps at maturity, widening to the offer's own bound over 35 minutes of trading time; what it returns pays the rescuer ahead of Borro's cut and the rest stays the owner's. The market must be open and the feed fresh. Refused in words before maturity, while the market is shut or the feed stale, when nothing is owed, or from any wallet but the rescuer's. Send with a gas limit of 4,000,000. Simulated from the wallet.

NameTypeReqDescription
accountstringyesThe version 2 trade account's address
percentnumber–The most of the rescued position to close, more than 0 to 100 (default 100: what covers what is owed)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

bailout_offer ~635

Unsigned transaction posting a standing offer on a position in the version 2 trade account: once its LTV (Morpho's own, at the market's oracle) reaches at_ltv, anyone may put in what brings it back to to_ltv, up to max_usdg; the account's own idle money goes in ahead of the rescuer, who is owed back ahead of the owner plus fee_bps of what it put in (1 to 2000), earned over term_days (1 to 30, default 7), and may foreclose on that position alone after the term. at_ltv under the position's LLTV, to_ltv under at_ltv; expiry_days (default 30) is when it lapses untaken. No money moves when it is posted. At most 4 live offers an account, one per position. While one is live, max_slip_bps and the agent's slip may come down and never up. From the agent: within the owner's cap (agent_bailout_max_usdg) and at least 10.0 USDG, on positions it may trade, at_ltv at least 200 bps over the position's LTV now, 2 times its fee on max_usdg counted into today's loss budget when posted. Refused in words when the position is not held, a bailout is owed, the position carries an offer, the bounds are off, or the agent's limits refuse it; warns when it is takeable at once or when max_usdg is short of what a rescue at at_ltv would take. Simulated from the wallet (the owner or the agent).

NameTypeReqDescription
accountstring–A version 2 trade account's address (default: the wallet's own, as its owner; an agent gives its owner's account)
at_ltv–yesThe LTV a rescue opens at: a fraction under 1, like 0.7 (a percent with its sign is taken too)
expiry_daysnumber–Days until the offer lapses if no one takes it (default 30, at most 365)
fee_bpsintegeryesThe rescuer's fee on what it puts in, earned over the term, in hundredths of a percent (1 to 2000)
max_usdgstringyesThe most a rescuer may put in, in whole USDG as a decimal string, like "250"
sidestringyesshort (the account's short on the stock) or long (its leveraged long)
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
term_daysnumber–Days the owner has to repay before the rescuer may foreclose (1 to 30, default 7)
to_ltv–yesThe LTV a rescue must bring it back to, under at_ltv
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

bailout_repay ~295

Unsigned transactions paying the bailout owed on a version 2 trade account: from the wallet (the owner, usually; anyone may), an exact USDG approval to the account and payBailout, the rescuer ahead of Borro's cut, with an hour of the fee's growth allowed so it still pays it all when it lands (amount pays part); paid in full, the lien lifts at once. With from_account: true, repayBailout instead (anyone): it pays from what sits in the account, its free USDG and the bUSDG it takes, and once the rescued position has no debt left it hands that position's collateral to the rescuer as it is, up to what is owed, and ends the lien. Refused in words when nothing is owed. Simulated from the wallet.

NameTypeReqDescription
accountstring–A version 2 trade account's address (default: the wallet's own, as its owner; an agent gives its owner's account)
amountstring–How much to pay from the wallet (default: everything owed), in whole USDG as a decimal string, like "250"
from_accountboolean–true: settle from what sits in the account (repayBailout) instead of the wallet
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

bailouts ~330

Bailouts on a version 2 trade account (account, or the wallet's own): each live offer with its terms (at_ltv, to_ltv, max_usdg, fee_bps, term, expiry, foreclosure bound) and what a rescue takes now by the account's own lens (needed, and needed if the account's bUSDG cannot be redeemed when it lands; what to approve; what the account's free USDG and bUSDG put in ahead of the rescuer; the position's equity against the claim; past its LLTV or under water; an offer the account's bUSDG helps cover reads takeable; takeable or why not), and the bailout owed if any (the rescuer, the principal, what is owed now with the fee earned so far, maturity, whether the rescuer may foreclose now and within what bound). With wallet, also what the account keeps for that wallet to claim. With neither account nor wallet: the offers a rescuer can take across the newest 50 version 2 accounts, the takeable ones ahead, each with its prepare call (Borro's keeper lists every takeable offer at /jobs.json). A rescue is the rescuer's own USDG lent against the rescued position plus money that arrives in the account while it is owed: if the position is liquidated anyway the rescuer can lose it.

NameTypeReqDescription
accountstring–A version 2 trade account (optional)
walletstring–The account's owner (when account is not given), or a wallet whose claims to show

No output schema declared.

No examples provided.

bear_coins ~38

The bear coins directory: every coin launched on Pons from Borro with its own short, its stock, P/L, burns and fees.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

bind_builder ~226

Credits a bookrunner's code with the wallet's borrowing on Borro (Bookrunners): the bookrunner earns Borro's own fee on the interest the wallet pays, all of it for 12 months, half after; the wallet pays nothing more. Without signature: EIP-712 typed data for the wallet to sign (eth_signTypedData_v4, no transaction, no gas), good for 10 minutes. With signature and that timestamp: submits it, the same as POST https://borro.markets/builders/bind. One code per wallet; the first binding stands.

NameTypeReqDescription
codestringyesThe bookrunner's code, as in borro.markets/?ref=<code>
signaturestring–The wallet's EIP-712 signature, 0x and 130 hex characters; leave out to get the typed data
timestampinteger–With signature: the timestamp from the typed data that was signed
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

borrow ~124

Unsigned transaction to borrow USDG against stock already lent and posted (supply with post: true first). The quote's rebate_estimate is what this loan puts in the wallet's weekly locker rebate.

NameTypeReqDescription
amountstringyesUSDG to borrow, in whole units as a decimal string, like "1.5"
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

buy_cover ~281

Unsigned transactions to buy Monday-gap cover on a stock while the market is shut (until an hour before the reopen): side up pays if the first feed print after the reopen is more than the strike above the last print (cover for a short), down if it is more than the strike below (for a long); it pays the move beyond the strike, times the cover, up to the pool's cap. Approve exactly the premium, then buy with that premium as the most it may take. Simulated from the wallet.

NameTypeReqDescription
notionalstringyesCover, in USDG: for a short, about what the shares are worth, in whole units as a decimal string, like "1.5"
sidestringyesup (pays on a gap up: for a short) or down (on a gap down: for a long)
strike_bpsinteger–How far the stock must move before it pays, in hundredths of a percent: 100, 200, 300 or 500 are quoted (default 200, 2%)
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

buy_option ~267

Unsigned transactions to buy options from the best ask of a series (or a given ask with order_id), checked on chain: exact approval of the premium, then fillAsk with that premium as the most it may take. A fill takes the whole ask or leaves at least 0.001 of a share. Returns the cost, Borro's share, the break-even and what it pays at expiry.

NameTypeReqDescription
expirystring–this (default), next, or a Friday's date like 2026-10-16
max_premiumstring–The most to pay in all, USDG (optional), in whole units as a decimal string, like "1.5"
order_idstring–Buy from this ask instead of the best one
sharesstringyesShares to buy, in whole units as a decimal string, like "1.5"
strikestring–The strike in dollars, like "250"
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
typestring–call or put
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

buy_with_eth ~155

Unsigned transaction swapping the wallet's ETH for USDG or a stock on Uniswap, or through Route (route.fun) for a stock bought exact in when Route guarantees more (no Borro contract, no Borro fee), for the flows that need them.

NameTypeReqDescription
amountstringyesHow much of it to get, in whole units as a decimal string, like "1.5"
slip_bpsinteger–Most the price may move, in hundredths of a percent (default 100, 1%)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign
wantstringyesUSDG, or a stock symbol

No output schema declared.

No examples provided.

cancel_order ~97

Unsigned transaction cancelling an ask or a bid: what it still locks goes back to its maker (an ask's collateral, a bid's USDG). Only the maker may, until the series expires; then anyone may.

NameTypeReqDescription
order_idstringyesThe order's number (position lists this wallet's open orders)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

claim_cover ~65

Unsigned transaction taking USDG a settled or voided cover could not send to the wallet (it waits in the pool's owed); position shows owed_usdg.

NameTypeReqDescription
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

claim_option ~165

Unsigned transaction burning the wallet's tokens of a settled series and taking what they pay: a call pays the stock's Borro vault shares, a put USDG (or the Steakhouse vault's shares with as_shares, for when the vault is short of free USDG). All the wallet holds unless shares is given.

NameTypeReqDescription
as_sharesboolean–A put: take Steakhouse USDG vault shares instead of USDG
series_idstringyesThe series id (position lists them)
sharesstring–Shares to claim (optional, default all), in whole units as a decimal string, like "1.5"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

close_long ~119

Unsigned transaction closing all or part of the wallet's leveraged long on a stock: the stock is sold, the debt repaid, and the rest comes back in USDG.

NameTypeReqDescription
percentnumber–How much of the position to close, 1 to 100 (default 100)
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

close_pair ~175

Unsigned transactions to close the wallet's newest open pair of these two stocks: the pair's own part of the short closed (a basket leg or a short of its own on the same stock stays open, listed in stays_open), the long's lent stock taken back (what is free now, if part is on loan). If something else already closed part of the pair's short, this closes what is left and the note says so.

NameTypeReqDescription
longstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
shortstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

close_short ~144

Unsigned transactions to close the wallet's short on a stock: buy back everything owed, return it, take out the money held (with a USDG top-up approval if it is under water). A wallet has one short per stock, shared by any pair or basket legs on it: this closes all of it, and closes_parts lists the parts it takes with it. close_pair closes only a pair's own part.

NameTypeReqDescription
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

counterparty_check ~314

Another lender's repayment record of an agent or a wallet: Priors' record on Robinhood Chain (loans repaid and their USDG, loans open, any default, its Priors Score v2 and rung), read live from Priors' check API and given in Borro's own words. agent: an ERC-8004 agent id; address: a wallet (an agent's, a payee's, an x402 payTo), which finds the agents it owns or pays for (at most 3 shown, best rung ahead); exactly one. It is Priors' record, not Borro's, and Borro does not vouch for it: check_on_chain says how to read Priors' score from the ERC-8004 registry yourself. verdict: no record, no repayments yet, repaid or defaulted. proven is true when a listed agent has a published Priors Score v2 at rung 2 or more (proven: three or more backed repayments over 14 days or more, none late), no default and is not frozen; anything missing counts as not proven. credit_open, credit_line, credit_guardrails, credit_pay, credit_bill, hold_open and account_open show the same record as agent_record or payee_record when Priors answers within 2.5 seconds.

NameTypeReqDescription
addressstring–A wallet: 0x and 40 hex characters
agentstring–An ERC-8004 agent id, like "462"

No output schema declared.

No examples provided.

credit_bill ~309

Pay a merchant's x402 bill (HTTP 402 Payment Required) in USDG on Robinhood Chain from an agent credit line. Give the 402's payment_required (its PAYMENT-REQUIRED header value, or its JSON body); the bill is its exact-scheme USDG option on eip155:4663, refused in words if it has none or asks more than max_usdg. The wallet is the payer and must be the line's agent or owner: if it holds less USDG than the bill, one unsigned borrow of just what it is short, from the line to the wallet itself (the wallet must be on the line's allowlist: bill pay, credit_guardrails bills: true; checked as the line checks it and simulated). Returns the EIP-3009 authorization and its typed_data to sign (eth_signTypedData_v4) and the steps: send the borrow, sign, call credit_bill_header, send the request again with its header before valid_until.

NameTypeReqDescription
accountstringyesThe line's address
max_usdgstring–The most to pay for this one bill (optional; refused above it), in whole units as a decimal string, like "1.5"
payment_required–yesThe merchant's 402: its PAYMENT-REQUIRED header value (base64), or its JSON body
walletstringyesThe payer's address (0x...): the line's agent, or its owner

No output schema declared.

No examples provided.

credit_bill_header ~154

After credit_bill and the wallet's signature: the header the merchant reads (PAYMENT-SIGNATURE, or X-PAYMENT for x402 version 1), base64 JSON with the authorization and signature. Reads no chain and sends nothing: checks the authorization against the bill (the merchant's payTo, exactly its amount, not run out) and recovers a 65-byte signature to its payer. Send the same request again with header.name set to header.value.

NameTypeReqDescription
authorization–yesThe authorization credit_bill returned, as it returned it
payment_required–yesThe same payment_required given to credit_bill
signaturestringyesThe wallet's signature of credit_bill's typed_data (0x hex)

No output schema declared.

No examples provided.

credit_gas ~267

Unsigned transactions that turn a line's credit into ETH in its agent's own wallet: make the agent's gas station if it has no code yet (anyone may; the station is the GasStationFactory's predict of the agent's wallet, never an address given), borrow amount USDG from the line to the station (the agent or the owner; the station must be on the allowlist), then pump(minOut, maxIn) by its full signature, with maxIn everything the station will hold and minOut a tenth of a percent under the pool's own fill for that size (never under the station's Chainlink floor). No amount: pump what the station already holds (anyone may). If ETH's price feed has been stale for 4 days, release() instead, sending the station's USDG to the agent's wallet as it is. Simulated from the wallet.

NameTypeReqDescription
accountstringyesThe line's address
amountstring–USDG to borrow to the agent's gas station (optional; without it, pump what the station holds), in whole units as a decimal string, like "1.5"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

credit_guardrails ~731

One unsigned configure() transaction for the line's owner, starting from the line's current settings: agent (or revoke_agent: true, a JSON boolean, at once; never the owner's own wallet), keeper ("borro", "none" or an address), ceiling (USDG), daily_limit (USDG, or "none"), target_ltv and trigger_ltv (at most the line's max trigger, 30% for CREDIT; a new target over the line's trigger moves the trigger by the market's rule), sell_bps (0 in a market with no pool), slip_bps, allow (add addresses), deny (take them off), gas_station (true adds the agent's gas station, false takes it off), bills (true: bill pay, the agent's own wallet on the allowlist so it can borrow what it is short of an x402 bill, credit_bill; false takes it off; such a line needs a daily limit, $100 unless given). When the agent changes, the old agent's gas station and own wallet come off the allowlist in the same transaction and the new agent's go on in their place. A line with a gas station on its allowlist keeps a daily limit of at most $5,000 ($100 unless given). Checked as the line checks it; shows before and after. Ownership: transfer_to (the owner offers the line), or accept: true (the wallet it was offered to takes it with acceptOwnership, then names Borro's keeper again with setKeeper: two transactions sent one after the other; accepting clears the keeper, so until the second is sent the line has no keeper and no auto-repay; keeper: "none" leaves it off). Check each transaction's to: a line the factory confirms (isAccount).

NameTypeReqDescription
acceptboolean–The wallet the line is offered to: accept it, then name Borro's keeper again
accountstringyesThe line's address
agentstring–A new agent address
allowarray–Addresses to add to the allowlist
billsboolean–true: bill pay, the agent's own wallet on the allowlist (credit_bill); false: take it off
ceilingstring–The most USDG the line may owe, in whole units as a decimal string, like "1.5"
daily_limitstring–The most USDG out in any 24 hours, like "100", or "none"
denyarray–Addresses to take off it
gas_stationboolean–true: put the agent's gas station on the allowlist; false: take it off
keeperstring–"borro", "none" or an address
revoke_agentboolean–Revoke the agent at once
sell_bpsinteger–0 to 2500 (0 in a market with no pool)
slip_bpsinteger–0 to 1000
target_ltv––Target LTV, a fraction under 1 like 0.18 or a percent with its sign like "18%"
transfer_tostring–The owner: offer the line to this address (it becomes theirs when they accept)
trigger_ltv––Protect trigger LTV, at or above the target, like 0.27 or "27%"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

credit_line ~407

One agent credit line (account) or the lines a wallet owns (owner: five a call, newest first; page 2 for the next five): its market, credits posted, USDG owed, LTV against its target, trigger and LLTV, a health word, what the agent can still borrow, the daily limit and what went out and is left of it today, the price at which it can be liquidated, its agent, keeper, owner, allowlist and sale settings, the agent's gas station and whether it is allowlisted, USDG it holds, and whether protect would act now. holder: what holding $BORRO gets this line (Hold $BORRO. Borrow for less.): up to half its interest back every Monday, what Borro's keeper makes if it liquidates the line unless it was left short or left bad debt, and where switched on gas on the house; counts (Borro's keeper counted it on the last day it counted), share, via (owner or agent: whichever has the larger share), heldBorro (wallet plus own lock), borroForFull ($BORRO for the full rate at today's price), weekSoFarUsdg, interestBackBps (the part of the line's interest that would come back, up to 5000; share and interestBackBps are estimates if held through a whole UTC day) and gasOnTheHouse (only where switched on, and only for a counted line owing gas.minDebtUsdg, 25 USDG by default, or more whose holder holds at least gas.minShare, half by default, of the $BORRO its lines' full rate needs, within weekly limits); live false until Borro's keeper publishes its count.

NameTypeReqDescription
accountstring–A line's address
ownerstring–A wallet whose lines to list
pageinteger–With owner: which five lines, newest first (default 1)

No output schema declared.

No examples provided.

credit_markets ~252

Agent Credit Lines: an agent posts its AI credits (Orbio CREDIT) and borrows USDG against them inside limits its owner sets once: a ceiling, a daily limit, a target LTV and an allowlist. markets: every market lines can open in now, each with its price, one yearly borrow rate (borrow_apr), its LLTV and max target and trigger, its defaults (CREDIT: 18% and 27%, with sales), the lending cap and any write-off. For CREDIT besides, as before: the feed's 2-hour median, its anchor, the last minute's and the pool's price, the line check price, whether the price has started and anything to know (a write-off proposed or in force, a pool with no data), the depth gate, what is lent, borrowed and free, the 90% most, the room under Borro's USDG vault caps, and the contracts. gas_stations: the factory and the station rules ($100 a day by default, $5,000 at most on a line with a station on its allowlist). Before the market is on chain: the pool's price and how lines will work.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

credit_open ~1,017

Unsigned transactions. Without account: open a line owned by the signing wallet for an agent (never the wallet itself), in a market credit_markets lists ("CREDIT", the default), post its credits and optionally borrow USDG at once (to the wallet unless to names an allowlisted address); exact credit approval to the factory first. The owner's limits: ceiling (USDG, default the most the target allows today), daily_limit (USDG out in any 24 hours, borrows and the agent's withdrawals together, or "none"; default the ceiling, or $100 with a gas station; at most $5,000 with one), target_ltv (a fraction under 1 like 0.18, or a percent with its sign like "18%"; the market's default, 0.18 for CREDIT, at most the market's max trigger), trigger_ltv for protect (by the market's rule; CREDIT: the target plus 7 points, at least 0.27 and at most 0.3), allow (addresses borrowed USDG may go to, 16 at most), gas_station (true: put the agent's gas station on the allowlist), bills (true: bill pay, the agent's own wallet on the allowlist, for x402 bills through credit_bill; the daily limit then defaults to $100), keeper ("borro", the default, "none" or an address), sell_bps and slip_bps for protect's sales (CREDIT defaults 2500 and 300; 0 in a market with no pool). With account: post more credits (anyone) and/or borrow (the line's agent or owner) to an allowed address. A wallet holding $BORRO borrows for less once Holder Credit counts it (holder_benefits). Refuses locally what the line would refuse (over the daily limit, the ceiling or the target, during a write-off, past what the market has free, past 90% used, past what the depth gate allows, before CREDIT's price starts); simulated from the wallet. Check each transaction's to: the factory, a line the factory confirms (isAccount), or the credit for an exact approval.

NameTypeReqDescription
accountstring–An existing line: post more and/or borrow from it (leave out to open a new line)
agentstring–New line: the agent's address, the wallet that will borrow from it (not the owner's)
allowarray–New line: addresses borrowed USDG may go to (16 at most)
billsboolean–New line: bill pay, the agent's own wallet on the allowlist, so it can borrow what it is short of an x402 bill (credit_bill); the line then needs a daily limit ($100 unless given)
borrowstring–USDG to borrow now (optional), in whole units as a decimal string, like "1.5"
ceilingstring–New line: the most USDG the line may owe (optional), in whole units as a decimal string, like "1.5"
creditsstring–Credits to post, in whole units as a decimal string, like "1.5"
daily_limitstring–New line: the most USDG out in any 24 hours, like "100", or "none" (default the ceiling; $100 with a gas station, at most $5,000)
gas_stationboolean–New line: put the agent's gas station on the allowlist, so the agent can borrow its own gas (credit_gas)
keeperstring–New line: "borro" (Borro's keeper, the default), "none", or an address
marketstring–New line: which market, by its symbol in credit_markets (default CREDIT)
sell_bpsinteger–New line: most of the credits one protect sale may sell, in hundredths of a percent (0 to 2500; CREDIT default 2500; 0 in a market with no pool)
slip_bpsinteger–New line: most a protect sale may fill under the feed's price, in hundredths of a percent (0 to 1000, default 300)
target_ltv––New line: target LTV, a fraction under 1 like 0.18 or a percent with its sign like "18%" (the market's default: 0.18 for CREDIT)
tostring–Where borrowed USDG goes: the owner or an allowlisted address (default the wallet, or the owner)
trigger_ltv––New line: LTV above which the keeper may protect it (default by the market's rule)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

credit_pay ~206

One unsigned borrow from a line straight to a payee on its allowlist (or its owner): the line's agent or owner signs it, the USDG goes from Morpho to the payee, and the line owes it until repaid. Checked as the line checks it: the allowlist, a write-off, what is left of the daily limit today, the ceiling, the target LTV at today's price, the market's 90% and depth gate; simulated from the wallet. Check the transaction's to: a line the factory confirms (isAccount).

NameTypeReqDescription
accountstringyesThe line's address
amountstringyesUSDG to pay, in whole units as a decimal string, like "1.5"
tostringyesThe payee: an address on the line's allowlist, or its owner
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

credit_repay ~443

Unsigned transactions repaying a line's USDG debt from the wallet (anyone may): an amount, or amount "all"; exact USDG approval to the line first (all: the debt plus a hundredth of a percent for interest until it lands; repay takes only what is owed). With close: true (a JSON boolean; the owner only): repay everything and take every credit and any USDG left back to the wallet. With unwind: true (a JSON boolean; the owner only; a line whose market has a pool): no USDG needed, the line sells its own CREDIT in its pool into the debt (sellAndRepay: by default enough to repay it all, at a minimum of the whole debt, then closes the line; sell and min_usdg to choose). Repaying, closing and an unwind at the whole debt work before CREDIT's price starts and during a write-off too. Check each transaction's to: a line the factory confirms (isAccount), or USDG for an exact approval.

NameTypeReqDescription
accountstringyesThe line's address
amountstring–USDG to repay, or "all", in whole units as a decimal string, like "1.5"
closeboolean–The owner: repay everything and take every credit back
min_usdgstring–With unwind: the least USDG the sale must bring (default: the whole debt when selling all or the default amount, else 97% of the pool's price), in whole units as a decimal string, like "1.5"
sellstring–With unwind: CREDIT to sell, or "all" (default: enough for the whole debt), in whole units as a decimal string, like "1.5"
then_closeboolean–With unwind: close the line after (default true when the sale covers the debt)
unwindboolean–The owner: sell the line's CREDIT into its debt, no USDG needed
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

deposit_cover ~116

Unsigned transactions to put USDG into the gap cover pool, which backs every cover and keeps the premiums (less Borro's share) on top of the Steakhouse USDG vault's interest. Approve exactly the amount, then deposit. A big gap pays covers out of the pool.

NameTypeReqDescription
amountstringyesUSDG to deposit, in whole units as a decimal string, like "1.5"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

farm_deposit ~238

Unsigned transactions to put USDG and a stock into its farm from the wallet: give usdg or stock (or both) and the other follows the farm's ratio (the feed's price for the first deposit, which sets the farm's price). Approvals of the exact amounts first, then the deposit, simulated from the wallet. Shares are accepted down to slip_bps under the quote.

NameTypeReqDescription
slip_bpsinteger–Most the farm may move against the quote, in hundredths of a percent (default 50, 0.5%)
stockstring–Stock to put in (optional if usdg is given), in whole units as a decimal string, like "1.5"
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
usdgstring–USDG to put in (optional if stock is given), in whole units as a decimal string, like "1.5"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

farm_withdraw ~185

Unsigned transaction to take part or all of the wallet's money out of a farm. Run from the wallet first to show what comes back now, and what comes as the vault's own shares because borrowers have it out (they keep earning and redeem on Supply once it is free). Always works: never paused, no price feed needed.

NameTypeReqDescription
percentnumber–How much of the wallet's part to take out, 1 to 100 (default 100)
slip_bpsinteger–Least accepted under the preview, in hundredths of a percent (default 50, 0.5%)
symbolstringyesA stock on Borro by its ticker, like NVDA or AAPL (markets lists every one)
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

farms ~196

Borro's stock farms: a Uniswap v4 USDG/stock pool per stock, run by Borro's own hook, that lends what swaps do not need on Borro. For each farm: its size, what is kept for swaps and what is lent, its swap fee and squeeze fee now, the lending fees and interest its lent part earns, the last day's and week's swap volume and farmers' fees, and Your APR on a $1,000 deposit as one number (fees at the last week's pace, lending fees and interest, and the $BORRO Drip at today's rate with the lent part counted 1.5x). With a wallet, its part of each farm.

NameTypeReqDescription
symbolstring–One stock's farm (optional), by its ticker, like NVDA; farms lists the stocks that have one
walletstring–A wallet whose part of each farm to show (optional)

No output schema declared.

No examples provided.

gaix_borrow ~177

Unsigned transactions to post gAIX as collateral and borrow USDG against it, from the wallet: approve gAIX to Morpho for exactly what is posted (when needed), post it, borrow. post and amount can each be given alone (post more to an open loan; borrow more against what is posted). Borrowing pauses every weekend and whenever a basket price is out of date (posting does not), and stops at three quarters of the limit. Simulated from the wallet.

NameTypeReqDescription
amountstring–USDG to borrow, as a decimal string, like "250"
poststring–gAIX to post, in whole shares as a decimal string, like "10"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

gaix_lend ~106

Unsigned transactions to lend gAIX from the wallet into bgAIX, the vault that lends it to gAIX shorts: approve the gAIX (when needed), deposit. What it earns moves with use. Simulated from the wallet.

NameTypeReqDescription
amountstringyesgAIX to lend, as a decimal string, like "10"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

gaix_market ~199

Borrowing USDG against Goldstein's gAIX (a tokenized index fund of AI and tech stock tokens): the price Borro lends at (what a share redeems for at Chainlink's stock prices, less the fund's redemption fee), whether borrowing is paused (every weekend, and whenever a basket price is out of date; repaying always works), the limit (LLTV) and the new-loan limit (three quarters of it), what a borrower pays a year from now on, what is free to borrow, and the fund's own NAV as context. With wallet: that wallet's loan (gAIX posted, what it is worth, what is owed, how much of the limit is used, what it can still borrow, the price at which it can be liquidated) and its gAIX and USDG.

NameTypeReqDescription
walletstring–Optional: a wallet whose loan to read (0x...)

No output schema declared.

No examples provided.

gaix_repay ~187

Unsigned transactions to repay a gAIX loan from the wallet (part, or all: true to clear it exactly) and, if asked, take gAIX back to the wallet (take_back: shares, or "all"). Repaying always works, weekends included; taking gAIX back while a loan stays open pauses every weekend and whenever a basket price is out of date, and keeps the loan under three quarters of its limit. Simulated from the wallet.

NameTypeReqDescription
allboolean–true repays everything owed
amountstring–USDG to repay, as a decimal string, like "100"
take_backstring–gAIX to take back, in shares as a decimal string, or "all"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

gaix_short_close ~167

Unsigned transactions to close a gAIX short through Goldstein's pool (amount: gAIX to buy back, or all: true): the gAIX is bought with the USDG held, any shortfall from the wallet, and what is left comes back. Goes through while the hook takes at most 4%; over that, or for a sliver of debt, use gaix_short_close_in_kind. While the desk is paused a close is whole. Simulated from the wallet.

NameTypeReqDescription
allboolean–true closes or takes out everything
amountstring–gAIX to buy back, as a decimal string
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

gaix_short_close_in_kind ~137

Unsigned transactions to close a gAIX short with gAIX the wallet brings (amount, or all: true): approve the gAIX, repay, take out the USDG it frees. No trade and no hook; a whole close reads no price, so it works on weekends and whatever the hook charges. Simulated from the wallet.

NameTypeReqDescription
allboolean–true closes or takes out everything
amountstring–gAIX to repay, as a decimal string
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

gaix_short_deposit ~139

Unsigned transactions to add USDG to the money held against a gAIX short (add) or take some back (take: USDG, or "all"). With a short open, what stays held keeps it under three quarters of its limit, and taking back waits while the desk is paused. Simulated from the wallet.

NameTypeReqDescription
addstring–USDG to add, as a decimal string
takestring–USDG to take back, as a decimal string, or "all"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

gaix_short_open ~206

Unsigned transactions to open (or add to) a gAIX short from the wallet: approve the USDG deposit (when needed), then open, which borrows the gAIX and sells it through Goldstein's pool, the sale money joining the deposit. Goes through when the hook takes at most 2% and the sale brings at least 95% of gAIX's price; stops at the desk's room and at three quarters of the limit; waits while the desk is paused. The open needs a gas limit of at least 12,000,000 (its transaction carries gas). Simulated from the wallet.

NameTypeReqDescription
amountstringyesgAIX to short, as a decimal string, like "5"
depositstring–USDG to deposit with it, as a decimal string, like "200"
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

gaix_short_quote ~238

Shorting Goldstein's gAIX (a tokenized index fund of AI and tech stock tokens) with USDG, and lending gAIX to the shorts: whether the desk is open or paused (every weekend), gAIX's price, the limit and the room left for new shorts (book ceiling, a tenth of supply, gAIX lent), the rates for shorts and lenders, the bounds on the pool hook's charge. With sell or buy: what selling or buying that much gAIX through Goldstein's pool brings or costs, and the hook's charge. With wallet: its short (gAIX owed, USDG held, limit used, the price at which it can be closed for it), its gAIX in bgAIX and its balances.

NameTypeReqDescription
buystring–Optional: gAIX to quote a purchase of (a close), like "5"
sellstring–Optional: gAIX to quote a sale of (an open), like "5"
walletstring–Optional: a wallet whose short and lending to read (0x...)

No output schema declared.

No examples provided.

gaix_withdraw ~108

Unsigned transactions to take gAIX out of bgAIX back to the wallet (amount, or all: true), as much as is not lent out to shorts right now. Simulated from the wallet.

NameTypeReqDescription
allboolean–true closes or takes out everything
amountstring–gAIX to take out, as a decimal string
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

health ~135

For bots that watch for liquidation: every short and USDG loan of a wallet, worst first, with how much of its limit it uses (limit_used, 1 = Morpho can liquidate it now), health (1 / limit_used), the stock price that liquidates it, how far the price is from that in percent, a status (ok, warn from 0.85, danger from 0.95, liquidatable), and the market clock. Also at /health/<wallet>.json.

NameTypeReqDescription
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

hold_collect ~405

One unsigned transaction paying a hold's payee. Metered: settle with the latest voucher (cumulative and signature, or by default the last one Borro's facilitator accepted); until the expiry anyone may send it, in the 4-day grace after it the payee or its operator, and the USDG goes to the payee. Charge: charge an amount (default all the cap has left), the payee or its operator, until the grace ends. A stock hold sells stock along its desk's route, while the market is open. When the vault can pay out part of it, it pays that much and the rest can be collected later; in_shares true (the payee or its operator) pays the vault's shares instead, which needs no liquidity (a stock hold's at its feed with BorroHolds' constant pad of 0.5% (PAD_BPS, 50 bps), while the market is open: shares worth the amount divided by one plus the pad, the whole amount counted as paid; the payee bears the pad whenever it collects a stock hold in kind). Simulated from the wallet, with what the payee gets after the hold's fee.

NameTypeReqDescription
amountstring–Charge mode: USDG to charge, in whole units as a decimal string, like "1.5"
cumulativestring–Metered: the voucher's cumulative, in USDG's smallest units
holdstringyesThe hold's id
in_sharesboolean–Pay the payee the vault's shares worth the amount (a stock hold's divided by one plus the constant 0.5% (PAD_BPS, 50 bps) pad; the payee or its operator)
signaturestring–Metered: the voucher's signature
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

hold_end ~113

One unsigned transaction ending a hold: release (its payee or operator, any time) or, after the expiry and the payee's 4-day grace, reclaim (anyone). Either way every share left goes back to the payer. Until then the payer cannot end it. Warns when releasing would give up accepted vouchers nobody has collected.

NameTypeReqDescription
holdstringyesThe hold's id
walletstringyesThe wallet's address (0x...); the transactions are built for it to sign

No output schema declared.

No examples provided.

Install

How do I install the Borro MCP server?

Borro is a hosted endpoint at https://borro.markets/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · borro.markets

# add to Claude Code
claude mcp add --transport http markets-borro-borro 'https://borro.markets/mcp'
Common questions

What is the Borro MCP server?

Borro is an MCP server listed in the public MCP registry as markets.borro/borro. Stock lending on Robinhood Chain: read markets and prepare lends, loans, shorts and credit lines. This page covers its hosted endpoint (https://borro.markets/mcp).

Is the Borro MCP server safe to use?

Borro scores 70 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Borro MCP server expose?

Borro exposes 85 tools: markets, market, health, position, trades, and 80 more. Their descriptions and schemas cost roughly 21,861 tokens of context every time the server is loaded.

Does the Borro MCP server require authentication?

No. We connected to Borro without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Borro MCP server still maintained?

Borro is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.