marketsReadEvery stock and the USDG vault: price, sizes, rates and the Drip.
No arguments
Borro
Open app
Borro for agents
Point any MCP agent at one endpoint. The wallet signs; the server holds no keys.
https://borro.markets/mcp
POST · Streamable HTTP · stateless · hosted. Nothing to install, no key, no sign-in.
Scope
What the server does for an agent, and what it never will.
Quickstart
Every client points at the same endpoint. Nothing to install.
claude mcp add --transport http borro https://borro.markets/mcphttps://borro.markets/mcp{ "mcpServers": { "borro": { "type": "http", "url": "https://borro.markets/mcp" } } }curl -s https://borro.markets/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Models
Borro's server runs none. If your agent needs one, Raeto, a Borro partner on Robinhood Chain, has two ways in.
https://api.raeto.cc/v1https://raeto.cc/routingRaeto's developer docsRaeto runs its own service; Borro does not run its models.
Worked example
Read, prepare, sign, read back. The key stays with the wallet.
You Short 1.5 NVDA from my wallet with 200 USDG down.
Agent → markets {}
← stocks[NVDA]: price_usd, free to short, what shorters pay a year
Agent → open_short { "wallet": "0x1111…1111", "symbol": "NVDA",
"amount": "1.5", "deposit": "200" }
← quote: sale_usdg, deposit_at_least_usdg, closed_for_you_at_price
← transactions:
1 approve USDG to BorroShort, exactly 200
2 call BorroShort.open: borrow 1.5 NVDA, sell it, hold the money
← simulation: eth_simulateV1, ok
Wallet signs and sends 1, waits for it to land, then 2.
Agent → position { "wallet": "0x1111…1111" }
← stocks[NVDA].short: owed_stock 1.5, held_usdg, closed_for_you_at_price// Node 18+ and ethers v6. The key never leaves this machine; Borro's server only prepares.
import { ethers } from "ethers";
const MCP = "https://borro.markets/mcp";
async function call(name, args = {}) {
const res = await fetch(MCP, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "tools/call", params: { name, arguments: args } }),
});
const { result } = await res.json();
if (result.isError) throw new Error(result.content[0].text);
return result.structuredContent;
}
// Your own Robinhood Chain RPC (chain id 4663) and the wallet the agent acts for.
const wallet = new ethers.Wallet(process.env.KEY, new ethers.JsonRpcProvider(process.env.RPC));
// 1. Read the shelf.
const shelf = await call("markets");
console.log(shelf.stocks.find((s) => s.symbol === "NVDA"));
// 2. Prepare the short: approvals first, then BorroShort.open, simulated from the wallet.
const plan = await call("open_short", { wallet: wallet.address, symbol: "NVDA", amount: "1.5", deposit: "200" });
if (!plan.simulation.ok) throw new Error(JSON.stringify(plan.simulation.steps));
// 3. Sign and send each step, in order, waiting for each to land.
for (const tx of plan.transactions) {
await (await wallet.sendTransaction({ to: tx.to, data: tx.data, value: BigInt(tx.value), chainId: tx.chainId })).wait();
}
// 4. Read it back.
const mine = await call("position", { wallet: wallet.address });
console.log(mine.stocks.find((s) => s.symbol === "NVDA")?.short);Tools
Preparereturns unsigned transactions you sign
Nine read the chain. Twenty-six prepare transactions for the wallet to sign.
marketsReadEvery stock and the USDG vault: price, sizes, rates and the Drip.
No arguments
marketReadOne stock's full line: rates, sizes, limits, open fee, contracts.
symbol | stringrequired |
|---|
positionReadEverything a wallet has on Borro, from shorts to $BORRO to claim.
wallet | stringrequired |
|---|
tradesReadRecent shorts opened and closed across Borro, newest first.
No arguments
bear_coinsReadEvery bear coin launched on Pons from Borro, with its short.
No arguments
rulesReadHouse rules, limits, what can go wrong, every contract address.
No arguments
supplyPrepareLend a stock or USDG; with post, lend and post stock in one step.
wallet | stringrequired |
|---|---|
asset | stringrequired |
amount | stringrequired |
post | boolean |
withdrawPrepareTake back lent stock or USDG, part or all.
wallet | stringrequired |
|---|---|
asset | stringrequired |
amount | string |
all | boolean |
borrowPrepareBorrow USDG against stock already lent and posted.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
amount | stringrequired |
repayPrepareRepay USDG borrowed against a stock, part or all.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
amount | string |
all | boolean |
bind_builderPrepareCredit a bookrunner's code with the wallet's borrowing: one signature, no gas.
wallet | stringrequired |
|---|---|
code | stringrequired |
timestamp | integer |
signature | string |
buy_with_ethPrepareSwap the wallet's ETH for USDG or a stock on Uniswap.
wallet | stringrequired |
|---|---|
want | stringrequired |
amount | stringrequired |
slip_bps | integer |
open_shortPrepareBorrow the stock, sell it and hold the money, in one open.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
amount | stringrequired |
deposit | string |
close_shortPrepareBuy back what is owed, return it, take out the money held.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
open_pairPrepareBuy and lend the long stock, then short the other.
wallet | stringrequired |
|---|---|
long | stringrequired |
short | stringrequired |
long_amount | stringrequired |
short_amount | stringrequired |
deposit | string |
close_pairPrepareClose the newest pair of these two stocks, both legs.
wallet | stringrequired |
|---|---|
long | stringrequired |
short | stringrequired |
open_longPrepareA leveraged long in one open, up to 1.80x on SPY, QQQ and NVDA.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
margin | stringrequired |
leverage | numberrequired |
close_longPrepareSell the stock, repay the debt, take the rest in USDG.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
percent | number |
farmsReadEach stock farm's size, fees and lent part; a wallet's share.
symbol | string |
|---|---|
wallet | string |
farm_depositPreparePut USDG and a stock into its farm at the farm's ratio.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
usdg | string |
stock | string |
slip_bps | integer |
farm_withdrawPrepareTake part or all out of a farm. Never paused.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
percent | number |
slip_bps | integer |
weekendReadWhile the market is shut: paused prices, Borro's band, quotes.
symbol | string |
|---|
buy_coverPrepareMonday-gap cover on a stock while the market is shut.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
side | up | downrequired |
notional | stringrequired |
strike_bps | integer |
deposit_coverPreparePut USDG into the pool that backs every gap cover.
wallet | stringrequired |
|---|---|
amount | stringrequired |
withdraw_coverPrepareTake USDG out of the gap cover pool once no cover is live.
wallet | stringrequired |
|---|---|
amount | string |
all | boolean |
settle_coverPrepareSettle a cover on the first print after the reopen, or void it.
wallet | stringrequired |
|---|---|
id | stringrequired |
claim_coverPrepareTake a payout a settled or voided cover could not send.
wallet | stringrequired |
|---|
optionsReadOne stock's chain for this Friday and next, checked on chain.
symbol | stringrequired |
|---|
write_optionPreparePost an ask, or sell into a bid. Fully collateralized.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
type | call | put |
expiry | string |
strike | string |
shares | stringrequired |
premium | string |
from | stock | shares | usdg |
order_id | string |
buy_optionPrepareBuy from the best ask, with the premium as the most it takes.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
type | call | put |
expiry | string |
strike | string |
shares | stringrequired |
order_id | string |
max_premium | string |
post_bidPrepareBid for a series; the premium waits locked in USDG.
wallet | stringrequired |
|---|---|
symbol | stringrequired |
type | call | putrequired |
expiry | string |
strike | stringrequired |
shares | stringrequired |
premium | stringrequired |
cancel_orderPrepareCancel an ask or a bid; its lock goes back to its maker.
wallet | stringrequired |
|---|---|
order_id | stringrequired |
settle_seriesPrepareSettle an expired series on the feed's last print.
wallet | stringrequired |
|---|---|
series_id | string |
symbol | string |
expiry | string |
strike | string |
type | call | put |
claim_optionPrepareBurn a settled series' tokens and take what they pay.
wallet | stringrequired |
|---|---|
series_id | stringrequired |
shares | string |
as_shares | boolean |
release_collateralPrepareGive a writer back a settled series' lock, less what it pays.
wallet | stringrequired |
|---|---|
series_id | stringrequired |
Only on Borro
The desks Borro runs on Robinhood Chain, each a tool call away.
Automation
Your agent watches and decides. The wallet signs every step.
markets→open_shortposition→close_shortweekend→buy_coverposition→supply·withdrawEvery prepare tool returns transactions the wallet signs itself. No session, no standing order, no key on the server: nothing happens without the wallet.
For agent operators
An agent credits your code by depositing through BorroBuilders, and a wallet's borrowing with one signature.
The one deposit call, workedRent floats with demand. No income is promised.
Safety
What the server never does, and what can still go wrong.

Reference
| Detail | Spec |
|---|---|
| Endpoint | https://borro.markets/mcp |
| Transport | Streamable HTTP, stateless. POST a message or a batch; the answer comes back as JSON. |
| Sign-in | None. No API key, no session, no server-sent stream. |
| Protocol | 2025-06-18, or 2025-03-26 and 2024-11-05 when the client asks for them |
| Methods | initialize, tools/list, tools/call, ping |
| Batches | 1 to 10 messages |
| Body | Up to 64 KB |
| GET | A short plain-text description; asking for text/event-stream gets a 405 |
| Browsers | CORS is open to any origin. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": { "protocolVersion": "2025-06-18" }
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"protocolVersion": "2025-06-18",
"capabilities": { "tools": { "listChanged": false } },
"serverInfo": { "name": "borro", "title": "Borro", "version": "1.0.0" },
"instructions": "Borro on Robinhood Chain: read markets and positions, and prepare unsigned transactions for a wallet to sign. Amounts are decimal strings in whole units (\"1.5\" NVDA, \"100\" USDG). Send prepared transactions in order and call the tool again if a quote has moved."
}
}| Field | What it holds |
|---|---|
result.content | One text item: the answer as JSON text. |
result.structuredContent | The same answer as an object. |
result.isError | True when the tool could not answer; the text says why. |
transactions | A prepare tool's steps, in order, approvals first: each with to, data, value and chainId. |
simulation | Every step run from the wallet as one block, with the reason a step would fail. |
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "open_short",
"arguments": { "wallet": "0x1111111111111111111111111111111111111111", "symbol": "NVDA", "amount": "1.5", "deposit": "200" }
}
}{
"action": "open_short",
"chainId": 4663,
"from": "0x1111111111111111111111111111111111111111",
"quote": { "sale_usdg": "…", "open_fee": …, "after_fee_usdg": "…", "least_accepted_usdg": "…",
"deposit_at_least_usdg": …, "closed_for_you_at_price": …, "expires_at": "…", "weekend_rule": null },
"transactions": [
{ "step": 1, "kind": "approve",
"description": "Approve 0xd2D686cEdf225c5C9815187A08812783904E62Eb to take exactly what this needs",
"to": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168", "data": "0x095ea7b3…", "value": "0", "chainId": 4663 },
{ "step": 2, "kind": "call",
"description": "Short 1.5 NVDA: borrow it, sell it, hold the money",
"to": "0xd2D686cEdf225c5C9815187A08812783904E62Eb", "data": "0x…", "value": "0", "chainId": 4663 }
],
"simulation": { "method": "eth_simulateV1", "ok": true, "steps": [{ "step": 1, "ok": true }, { "step": 2, "ok": true }] },
"how_to_send": "Sign and send each transaction from the wallet, in order, waiting for each to land. Nothing has been sent. Quotes move: if a step fails on slippage, call this tool again for fresh numbers."
}| Code | When |
|---|---|
-32700 | The body is not JSON. HTTP 400. |
-32600 | Not a JSON-RPC 2.0 request, a batch outside 1 to 10, a body over 64 KB, or a method other than POST. |
-32601 | A method the server does not have. |
-32602 | A tool name the server does not have. |
isError: true | The tool could not do it, and the text says why. The RPC's address is never in it. |
| 202, no body | A notification, a message without an id: nothing to answer. |
| Units | Tools |
|---|---|
| 250 every 10 seconds | Each visitor's budget, shared with the site's own reads. |
| 2 | rules |
| 3 | trades, bear_coins |
| 5 | markets, market, weekend |
| 10 | farms, options, bind_builder, claim_cover, cancel_order, claim_option, release_collateral |
| 15 | Every other prepare tool. |
| 20 | settle_cover, settle_series |
| 30 | position |
| Over the budget | isError: true, "Too many requests from this address right now; wait about 10 seconds." |
| Input | Rule |
|---|---|
| Amounts | Decimal strings in whole units: "1.5" NVDA, "100" USDG |
| Wallet | 0x and 40 hex characters, all lowercase or correctly checksummed. |
| Stocks | By ticker, like NVDA. The markets tool lists every one. |
| Expiry | this, next, a Friday's date like 2026-10-16, or the unix time of its close |
| Deadlines | 20 minutes past the chain's latest block. |
| Examples | Below, 0x1111…1111 stands for the wallet the agent acts for. |
marketsReadNo arguments.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "markets", "arguments": {} } }marketRead| Argument | Description |
|---|---|
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "market", "arguments": {
"symbol": "NVDA"
} } }positionRead| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "position", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111"
} } }tradesReadNo arguments.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "trades", "arguments": {} } }bear_coinsReadNo arguments.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "bear_coins", "arguments": {} } }rulesReadNo arguments.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "rules", "arguments": {} } }supplyPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
assetstringrequired | USDG, or a stock symbol |
amountstringrequired | Amount to lend, in whole units as a decimal string, like "1.5" |
postbooleanoptional | Stock only: lend and post as collateral in one step |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "supply", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"asset": "NVDA",
"amount": "1.5"
} } }withdrawPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
assetstringrequired | USDG, or a stock symbol |
amountstringoptional | Amount to take back, in whole units as a decimal string, like "1.5" |
allbooleanoptional | Take back everything |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "withdraw", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"asset": "USDG",
"all": true
} } }borrowPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
amountstringrequired | USDG to borrow, in whole units as a decimal string, like "1.5" |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "borrow", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"amount": "50"
} } }repayPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
amountstringoptional | USDG to repay, in whole units as a decimal string, like "1.5" |
allbooleanoptional | Repay everything owed |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "repay", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"all": true
} } }bind_builderPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
codestringrequired | The bookrunner's code, as in borro.markets/?ref=<code> |
timestampintegeroptional | With signature: the timestamp from the typed data that was signed |
signaturestringoptional | The wallet's EIP-712 signature, 0x and 130 hex characters; leave out to get the typed data |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "bind_builder", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"code": "route"
} } }buy_with_ethPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
wantstringrequired | USDG, or a stock symbol |
amountstringrequired | How much of it to get, in whole units as a decimal string, like "1.5" |
slip_bpsintegeroptional | Most the price may move, in hundredths of a percent (default 100, 1%) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "buy_with_eth", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"want": "USDG",
"amount": "100",
"slip_bps": 100
} } }open_shortPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
amountstringrequired | Stock to short, in whole units as a decimal string, like "1.5" |
depositstringoptional | USDG to add to the money held, beyond the sale (optional, default 0), in whole units as a decimal string, like "1.5" |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "open_short", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"amount": "1.5",
"deposit": "200"
} } }close_shortPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "close_short", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA"
} } }open_pairPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
longstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
shortstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
long_amountstringrequired | Long stock to buy, in whole units as a decimal string, like "1.5" |
short_amountstringrequired | Stock to short, in whole units as a decimal string, like "1.5" |
depositstringoptional | USDG held against the short beyond the sale (optional), in whole units as a decimal string, like "1.5" |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "open_pair", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"long": "NVDA",
"short": "TSLA",
"long_amount": "1",
"short_amount": "0.5",
"deposit": "150"
} } }close_pairPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
longstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
shortstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "close_pair", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"long": "NVDA",
"short": "TSLA"
} } }open_longPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
marginstringrequired | USDG margin from the wallet, in whole units as a decimal string, like "1.5" |
leveragenumberrequired | Leverage, more than 1, like 1.5 |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "open_long", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"margin": "100",
"leverage": 1.5
} } }close_longPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
percentnumberoptional | How much of the position to close, 1 to 100 (default 100) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "close_long", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"percent": 50
} } }farmsRead| Argument | Description |
|---|---|
symbolstringoptional | One stock's farm (optional), by its ticker, like NVDA; farms lists the stocks that have one |
walletstringoptional | A wallet whose part of each farm to show (optional) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "farms", "arguments": {
"symbol": "NVDA",
"wallet": "0x1111111111111111111111111111111111111111"
} } }farm_depositPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
usdgstringoptional | USDG to put in (optional if stock is given), in whole units as a decimal string, like "1.5" |
stockstringoptional | Stock to put in (optional if usdg is given), in whole units as a decimal string, like "1.5" |
slip_bpsintegeroptional | Most the farm may move against the quote, in hundredths of a percent (default 50, 0.5%) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "farm_deposit", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"usdg": "100",
"slip_bps": 50
} } }farm_withdrawPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
percentnumberoptional | How much of the wallet's part to take out, 1 to 100 (default 100) |
slip_bpsintegeroptional | Least accepted under the preview, in hundredths of a percent (default 50, 0.5%) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "farm_withdraw", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"percent": 100
} } }weekendRead| Argument | Description |
|---|---|
symbolstringoptional | One stock (optional), by its ticker, like NVDA; with a pool, its quotes are read from the chain |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "weekend", "arguments": {
"symbol": "NVDA"
} } }buy_coverPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
sideup | downrequired | up (pays on a gap up: for a short) or down (on a gap down: for a long) |
notionalstringrequired | Cover, in USDG: for a short, about what the shares are worth, in whole units as a decimal string, like "1.5" |
strike_bpsintegeroptional | How far the stock must move before it pays, in hundredths of a percent: 100, 200, 300 or 500 are quoted (default 200, 2%) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "buy_cover", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"side": "up",
"notional": "500",
"strike_bps": 200
} } }deposit_coverPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
amountstringrequired | USDG to deposit, in whole units as a decimal string, like "1.5" |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "deposit_cover", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"amount": "100"
} } }withdraw_coverPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
amountstringoptional | USDG to withdraw, in whole units as a decimal string, like "1.5" |
allbooleanoptional | Withdraw everything this wallet has in the pool (only when it is all free) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "withdraw_cover", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"all": true
} } }settle_coverPrepare| Argument | Description |
|---|---|
walletstringrequired | The address that will send it (any address; the payout goes to the cover's buyer) |
idstringrequired | The cover's number (position lists a wallet's covers) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "settle_cover", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"id": "7"
} } }claim_coverPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "claim_cover", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111"
} } }optionsRead| Argument | Description |
|---|---|
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "options", "arguments": {
"symbol": "NVDA"
} } }write_optionPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
typecall | putoptional | call or put |
expirystringoptional | this (the nearest Friday still taking orders, the default), next, or a Friday's date like 2026-10-16 |
strikestringoptional | The strike in dollars, on the $0.25 tick, like "250" |
sharesstringrequired | Shares to write (at least 0.001), in whole units as a decimal string, like "1.5" |
premiumstringoptional | Premium you ask, USDG a share (for an ask), in whole units as a decimal string, like "1.5" |
fromstock | shares | usdgoptional | Where the lock comes from: a call stock (default) or shares; a put usdg (default) or shares |
order_idstringoptional | Sell into this bid instead of posting an ask (its series, its premium) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "write_option", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"type": "call",
"expiry": "this",
"strike": "220",
"shares": "1",
"premium": "2.5"
} } }buy_optionPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
typecall | putoptional | call or put |
expirystringoptional | this (default), next, or a Friday's date like 2026-10-16 |
strikestringoptional | The strike in dollars, like "250" |
sharesstringrequired | Shares to buy, in whole units as a decimal string, like "1.5" |
order_idstringoptional | Buy from this ask instead of the best one |
max_premiumstringoptional | The most to pay in all, USDG (optional), in whole units as a decimal string, like "1.5" |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "buy_option", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"type": "call",
"expiry": "this",
"strike": "220",
"shares": "1",
"max_premium": "5"
} } }post_bidPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
symbolstringrequired | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
typecall | putrequired | call or put |
expirystringoptional | this (default), next, or a Friday's date like 2026-10-16 |
strikestringrequired | The strike in dollars, like "250" |
sharesstringrequired | Shares to bid for, in whole units as a decimal string, like "1.5" |
premiumstringrequired | Premium you bid, USDG a share, in whole units as a decimal string, like "1.5" |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "post_bid", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"type": "put",
"expiry": "next",
"strike": "210",
"shares": "1",
"premium": "1.5"
} } }cancel_orderPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
order_idstringrequired | The order's number (position lists this wallet's open orders) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "cancel_order", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"order_id": "12"
} } }settle_seriesPrepare| Argument | Description |
|---|---|
walletstringrequired | The address that will send it (any address) |
series_idstringoptional | The series id (or symbol, expiry, strike and type instead) |
symbolstringoptional | A stock on Borro by its ticker, like NVDA or AAPL (markets lists every one) |
expirystringoptional | A Friday's date like 2026-10-16 |
strikestringoptional | The strike in dollars |
typecall | putoptional | call or put |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "settle_series", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"symbol": "NVDA",
"expiry": "2026-10-16",
"strike": "220",
"type": "call"
} } }claim_optionPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
series_idstringrequired | The series id (position lists them) |
sharesstringoptional | Shares to claim (optional, default all), in whole units as a decimal string, like "1.5" |
as_sharesbooleanoptional | A put: take Steakhouse USDG vault shares instead of USDG |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "claim_option", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"series_id": "0xcca74e6d15c7b29e48b7f9ae4e7131d80aa617bd27fe2353831aa4bc3305c4d5"
} } }release_collateralPrepare| Argument | Description |
|---|---|
walletstringrequired | The wallet's address (0x...); the transactions are built for it to sign |
series_idstringrequired | The series id (position lists them) |
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": { "name": "release_collateral", "arguments": {
"wallet": "0x1111111111111111111111111111111111111111",
"series_id": "0xcca74e6d15c7b29e48b7f9ae4e7131d80aa617bd27fe2353831aa4bc3305c4d5"
} } }Get in touch
