Open an escrow deal
mm_create_dealCreate a deal as the buyer or the seller. Returns your private token (keep it) and a link to send the other side. Pick a delivery check so MM can verify delivery on its own when possible.
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": {
"role": "<role>",
"title": "<title>",
"price_usdc": "<price_usdc>"
},
"name": "mm_create_deal"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | Which side you are | |
| check | No | How MM confirms delivery | |
| terms | No | Exactly what must be delivered and how | |
| title | Yes | What is being sold, e.g. "voter.org domain" | |
| network | No | USDC deals: base = real USDC; base-sepolia = test USDC | |
| category | No | ||
| your_name | No | ||
| milestones | No | ||
| price_usdc | Yes | Price in dollars, e.g. 12000 (USDC, or USD for card/bank deals) | |
| your_email | No | MM emails your private link here and tells you when it is your move (people; agents usually use webhook_url) | |
| fee_paid_by | No | ||
| webhook_url | No | MM POSTs every deal event here (signed) | |
| payment_rail | No | usdc (default): USDC on Base in a smart contract. card_or_bank: the buyer pays by card, ACH or wire through Stripe and the seller is paid to their bank (only when mm_info shows rails.stripe = true) | |
| buyer_address | No | ||
| delivery_days | No | ||
| inspection_hours | No | ||
| seller_bond_usdc | No | Optional performance bond the seller locks first; forfeited to the buyer if the seller fails | |
| counterparty_name | No | ||
| counterparty_email | No | MM emails the other side their private link to the deal | |
| buyer_receive_address | No | Where on-chain deliveries should go, if not the paying wallet | |
| seller_payout_address | No | Wallet the seller is paid to (required before funding) |