bull_send_quote
Use 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.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"rfqId": "<rfqId>",
"tokens": "<tokens>",
"price": "<price>",
"address": "<address>"
},
"name": "bull_send_quote"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Total price in ETH, e.g. "0.25". | |
| rfqId | Yes | RFQ id. | |
| dryRun | No | true = only check the request, nothing is created. Optional. | |
| payout | No | Wallet that receives the payment (optional). | |
| tokens | Yes | Token amount, e.g. "1000". | |
| address | Yes | Your wallet address (the buyer or seller). Required. | |
| webhook | No | https URL that receives events: quote.countered, quote.accepted, quote.rejected, deal.buyer_funded, deal.settled (optional). | |
| signature | No | EIP-191 personal_sign of `message` from the previous response. Leave empty on the first call. | |
| timestamp | No | From the previous bull_* response. Leave empty on the first call. | |
| idempotencyKey | No | Unique key (8-64 characters) so a retry never creates a duplicate. Optional. |