Skip to main content

Bull OTC

io.github.TMcodingarc/bull-otcVersion 1.0.0

Non-custodial RFQ and atomic swap settlement for AI agents. Escrow onchain, signed receipts.

Status

Responds192 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:42 UTC
Latency
192 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 21:12 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://www.bull.family/api/mcpResponds192 ms
No sign-in

Claude Code

claude mcp add --transport http bull-otc https://www.bull.family/api/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: bull-otc
Remote MCP server URL: https://www.bull.family/api/mcp

Cursor

{
  "mcpServers": {
    "bull-otc": {
      "url": "https://www.bull.family/api/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"bull-otc","type":"http","url":"https://www.bull.family/api/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

18 tools

Tools of Bull OTC
Read-only
Idempotent
Open world
bull_accept_quoteUse as a BUYER to accept a quote. Returns the exact createDeal transaction (with Bull's signed fee quote) for your wallet to send; Bull never holds your funds. Then call bull_attach_deal with the dealId from the DealCreated event. Safe to call again to refresh the fee quote. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_attach_dealUse as a BUYER after sending createDeal: report the dealId. Bull checks it against the quote and returns the payment transactions (approve if needed, then fundPayment) to send from the buyer wallet. When the seller deposits, the swap settles in that transaction. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_counter_quoteUse as a BUYER to negotiate: propose a different total price (and optionally a different token amount) on a pending quote. Returns the stored counter. The seller can answer with bull_revise_quote. Works only while the quote is pending. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_create_rfqUse when you want to BUY a token in size (a block trade) without moving the market price: posts a private request for quotes on Bull, the modular, non-custodial settlement layer for OTC and agent-to-agent deals. Returns an rfqId; sellers answer with sealed quotes only you can read. Optional maxPrice limit and webhook; set dryRun to only validate, idempotencyKey to make retries safe. Not for small market swaps (use a DEX) or paying for API calls (use x402). Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_depositUse as a SELLER to submit the signed permit from bull_deposit_plan. Bull's relayer sends it and pays the gas; the swap settles in that transaction and you are paid in the same step. Returns the transaction hash. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_deposit_planUse as a SELLER after the buyer has paid into escrow: returns what to sign to deposit your tokens, either a gasless EIP-2612 permit (Bull's relayer pays gas) or direct approve + fundTokens transactions. Fails with not_ready until the buyer has funded. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_get_dealUse to verify any escrow deal onchain: open, settled or cancelled, and whether buyer and seller have funded. Public, no signature needed. Returns the deal state read from the contract.Not declaredNot declaredNot declaredNot declared
bull_get_quotesUse as a BUYER to read the sealed quotes on your own RFQ: seller, token amount, total price, counter state, deal status. Returns a list of quotes with quoteIds. Only the RFQ's buyer can read it. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_get_receiptUse to get proof of a completed trade: a signed receipt for a settled deal (buyer, seller, token, amounts, fee) that anyone can re-check onchain. Public. Fails with not_settled for deals that are still open.Not declaredNot declaredNot declaredNot declared
bull_infoUse first to see what Bull is: supported chains, escrow contract, fee tiers, minimum size and auth rules. Public. Bull is the modular, non-custodial settlement layer for OTC, RFQ and agent-to-agent deals.Not declaredNot declaredNot declaredNot declared
bull_list_rfqsUse when you SELL or hold a token and want to find buyers: lists open requests for quotes on Bull (token, size in USD, window, buyer's price limit). Returns rfqIds to answer with bull_send_quote. Public, no signature needed. Not for finding market prices.Not declaredNot declaredNot declaredNot declared
bull_quote_statusUse as BUYER or SELLER to check a quote and its onchain deal: status (pending, confirmed, funded, released), dealId, counter, who has funded. Poll this or use webhooks. Only the two parties can read it. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_reject_quoteUse as a BUYER to reject a quote you do not want. Returns status rejected. Not needed for quotes that simply expire. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_revise_quoteUse as a SELLER to change the price and/or token amount of your own pending quote, for example to meet the buyer's counter. Returns the new terms. The buyer then accepts with bull_accept_quote. Works only while the quote is pending. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_send_quoteUse when you want to SELL tokens to a buyer who posted an RFQ: sends a sealed quote (token amount and total ETH price) that only the buyer sees. Returns a quoteId. The swap settles atomically in one escrow transaction, so you never deliver before you are paid. Not for listing prices publicly. Signed: the first call returns a message to sign; call again with the same arguments plus timestamp and signature.Not declaredNot declaredNot declaredNot declared
bull_settleUse when two parties (agents, bots, contracts) have ALREADY agreed on a trade and just need a trustless way to swap: returns the signed createDeal transaction for an atomic escrow settlement on Bull. No account, no signature, no RFQ needed. Pay in ETH or USDG; the fee is returned in the response. Next call bull_settle_steps with the dealId.Not declaredNot declaredNot declaredNot declared
bull_settle_stepsUse after createDeal: returns the exact transactions (approve and fund) each side must send next, with calldata, plus the deal status. The swap settles automatically when the second side funds. Public, no signature.Not declaredNot declaredNot declaredNot declared
bull_statsUse to check Bull's track record: number of settled deals, total volume, open RFQs and the latest settled deals, read from the escrow contract. Public, no signature needed.Not declaredNot declaredNot declaredNot declared

Details

Registry status
Active
Published
Nov 11, 2026
Updated
Nov 11, 2026
Categories (suggested)
Invoicing and accountingCRMSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing