name: sage-offers description: Sage offer operations for peer-to-peer trading. Create offers, view, accept, combine, import, cancel offers.
Sage Offers
Peer-to-peer offer trading system.
Endpoints
Create Offer
{
"requested_assets": [
{"asset_id": null, "amount": "1000000000000"}
],
"offered_assets": [
{"asset_id": "a628c1c2...", "amount": "1000"}
],
"fee": "100000000",
"receive_address": null,
"expires_at_second": null,
"auto_import": true
}
asset_id: null= XCH- Returns
{"offer": "offer1...", "offer_id": "..."}
Accept Offer
{
"offer": "offer1...",
"fee": "100000000",
"auto_submit": true
}
View Offer (without accepting)
{
"offer": "offer1..."
}
Returns offer summary and status.
Query Offers
| Endpoint | Payload | Description |
|---|---|---|
get_offers |
{} |
List all offers |
get_offer |
{"offer_id": "..."} |
Get specific offer |
get_offers_for_asset |
{"asset_id": "..."} |
Filter by asset |
import_offer |
{"offer": "offer1..."} |
Import external offer |
Cancel/Delete
| Endpoint | Payload | Description |
|---|---|---|
delete_offer |
{"offer_id": "..."} |
Delete local (not on-chain) |
cancel_offer |
{"offer_id": "...", "fee": "...", "auto_submit": true} |
Cancel on-chain |
cancel_offers |
{"offer_ids": [...], "fee": "...", "auto_submit": true} |
Bulk cancel |
Combine Offers
Merge multiple compatible offers:
{
"offers": ["offer1...", "offer1..."]
}
Offer Amount Structure
{
"asset_id": "a628c1c2...",
"hidden_puzzle_hash": null,
"amount": "1000"
}
Offer Record Structure
{
"offer_id": "...",
"offer": "offer1...",
"status": "pending",
"requested": [...],
"offered": [...],
"expires_at_second": null
}
Status values: "pending", "completed", "cancelled", "expired"
Examples
# Create offer: 1 XCH for 1000 SBX
sage_rpc make_offer '{
"requested_assets": [{"asset_id": null, "amount": "1000000000000"}],
"offered_assets": [{"asset_id": "a628c1c2...", "amount": "1000"}],
"fee": "100000000",
"auto_import": true
}'
# View offer
sage_rpc view_offer '{"offer": "offer1abc..."}'
# Accept offer
sage_rpc take_offer '{
"offer": "offer1abc...",
"fee": "100000000",
"auto_submit": true
}'
# Cancel offer
sage_rpc cancel_offer '{
"offer_id": "abc123",
"fee": "100000000",
"auto_submit": true
}'
Notes
- Offers are bech32-encoded strings starting with
offer1 delete_offeronly removes from local databasecancel_offerspends offered coins on-chain to invalidate- Combine offers for complex multi-party trades