Skip to main content

Response Examples

These examples reflect the current V2 partner and widget contract. Identifiers are illustrative.

Bulk Inventory

POST /api/v2/partners/inventory/bulk

{
"success": true,
"usersProcessed": 2,
"nftsIndexed": 4,
"inventoryState": {
"wallets": 2,
"opportunities": 1
},
"mode": "merge",
"message": "Merged 2 users with their inventory. Existing inventory was left untouched."
}

Bulk Wants

POST /api/v2/partners/wants/bulk

{
"success": true,
"walletsProcessed": 2,
"wantsProcessed": 3,
"swapsDiscovered": 1,
"message": "Imported 3 card wants. SWAPS is working on matching them."
}

Submit Want

POST /api/v2/wants

{
"success": true,
"want": {
"id": "want_tenant_123_0x1111111111111111111111111111111111111111_0x3333333333333333333333333333333333333333:5",
"walletAddress": "0x1111111111111111111111111111111111111111",
"targetNft": {
"id": "0x3333333333333333333333333333333333333333:5",
"name": "Mew Holo",
"image": "https://cdn.example/mew.png",
"collection": "Pokemon Promo"
},
"status": "matched",
"matchCount": 1,
"createdAt": "2026-05-05T10:35:00.000Z"
},
"immediateMatches": [
{
"id": "trade_123",
"youGive": {
"id": "0x3333333333333333333333333333333333333333:1",
"name": "Charizard PSA 10",
"image": "https://cdn.example/charizard.png",
"collection": "Pokemon Base Set"
},
"youGet": {
"id": "0x3333333333333333333333333333333333333333:5",
"name": "Mew Holo",
"image": "https://cdn.example/mew.png",
"collection": "Pokemon Promo",
"floorPrice": 1194.315064,
"currency": "USD",
"valuation": {
"amount": 1194.315064,
"currency": "USD",
"sourceType": "partner_api",
"sourceIdentifier": "partner-price-20260528-143000",
"fetchedAt": "2026-05-28T14:30:00.000Z",
"freshness": "fresh"
}
},
"confidence": 0.85,
"alternativeCount": 1,
"status": "available"
}
],
"message": "Found 1 swap for this item"
}

Available Swaps

GET /api/v2/swaps/{walletAddress}

{
"success": true,
"swaps": [
{
"id": "trade_123",
"youGive": {
"id": "0x3333333333333333333333333333333333333333:1",
"name": "Charizard PSA 10",
"image": "https://cdn.example/charizard.png",
"collection": "Pokemon Base Set"
},
"youGet": {
"id": "0x3333333333333333333333333333333333333333:5",
"name": "Mew Holo",
"image": "https://cdn.example/mew.png",
"collection": "Pokemon Promo"
},
"confidence": 0.85,
"alternativeCount": 1,
"estimatedDuration": "2-5 minutes",
"createdAt": "2026-05-05T10:35:00.000Z",
"status": "available"
}
],
"total": 1
}

For You

GET /api/v2/explore/{walletAddress}

{
"success": true,
"sections": [
{
"id": "available_now",
"title": "Available now",
"subtitle": "Trades this wallet can act on now.",
"items": [
{
"id": "explore_123",
"source": "active_swap",
"sectionId": "available_now",
"target": {
"id": "0x3333333333333333333333333333333333333333:5",
"name": "Mew Holo",
"image": "https://cdn.example/mew.png",
"collection": "Pokemon Promo"
},
"confidence": 0.85,
"reason": "Available based on your active wants.",
"tradeAvailable": true,
"action": "open_swap"
}
]
}
],
"generatedAt": "2026-05-05T10:35:00.000Z"
}

Accept Swap

POST /api/v2/swaps/{swapId}/accept

Solana accept responses return a serialized transaction for the wallet to sign. The network fee, SWAPS completion fee, reusable fee-hold rent reserve, estimated total SOL required, and partner valuation source are separate fields. The rent reserve is reused across the wallet's SWAPS approvals and returned when the final Solana delegation is revoked.

{
"success": true,
"status": "awaiting_signature",
"blockchain": "solana",
"transaction": {
"serialized": "AQAAAAAAAA...",
"message": "Approve SWAPS to trade Charizard PSA 10; this reserves the SWAPS completion fee in SOL",
"estimatedFee": 5000,
"networkFeeLamports": 5000,
"completionFeeLamports": "149289383",
"completionFeeSol": 0.149289383,
"swapsFeeLamports": "149289383",
"swapsFeeSol": 0.149289383,
"feeBasisPoints": 250,
"feeQuote": {
"blockchain": "solana",
"nativeCurrency": "SOL",
"receivedNftId": "3JF3sEqM796hk5WFqA6EtmEwJQ9quALszsfJyvXNQKy3",
"valuationAmount": 1194.315064,
"valuationCurrency": "USD",
"valuationSourceType": "partner_api",
"valuationSourceIdentifier": "partner-price-20260528-143000",
"valuationFetchedAt": "2026-05-28T14:30:00.000Z",
"valuationFreshness": "fresh",
"feeBasisPoints": 250,
"feeLamports": "149289383",
"feeSol": 0.149289383
},
"feeHoldAddress": "4Ss5JMkXAD9Z7cktFEdrqeMuT6jGMF1pVozTyPHZ6zT4",
"feeHoldAlreadyExists": false,
"feeHoldRentReserveLamports": 890880,
"feeHoldRentReserveSol": 0.00089088,
"estimatedTotalLamportsRequired": 150185263,
"estimatedTotalSolRequired": 0.150185263
},
"message": "Sign once to approve this trade. The transaction reserves the SWAPS fee in SOL; any first-time fee-hold rent reserve stays reusable and is returned when the final Solana delegation is revoked."
}

Ethereum and Base accept responses return an ordered EVM call plan. EIP-5792-capable wallets batch once; fallback wallets may require sequential confirmations. The transaction object mirrors the first call. This illustrative payload uses synthetic identifiers.

{
"success": true,
"status": "awaiting_signature",
"blockchain": "ethereum",
"calls": [
{
"to": "0x1111111111111111111111111111111111111111",
"data": "0x095ea7b3000000000000000000000000...",
"value": "0",
"gasLimit": "65000"
},
{
"to": "0x2222222222222222222222222222222222222222",
"data": "0x8340f549000000000000000000000000...",
"value": "149289383000000000",
"gasLimit": "120000"
}
],
"tradeSeed": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"chainId": 11155111,
"transaction": {
"serialized": "",
"message": "Approve SWAPS to trade Charizard PSA 10; this escrows the SWAPS completion fee in ETH (refundable until the swap completes)",
"estimatedFee": 65000,
"to": "0x1111111111111111111111111111111111111111",
"data": "0x095ea7b3000000000000000000000000...",
"value": "0",
"gasLimit": "65000",
"completionFeeWei": "149289383000000000",
"completionFeeEth": 0.149289383,
"feeBasisPoints": 250,
"feeQuote": {
"blockchain": "ethereum",
"nativeCurrency": "ETH",
"receivedNftId": "0x3333333333333333333333333333333333333333:5",
"valuationAmount": 1194.315064,
"valuationCurrency": "USD",
"valuationSourceType": "partner_api",
"valuationSourceIdentifier": "partner-price-20260528-143000",
"valuationFetchedAt": "2026-05-28T14:30:00.000Z",
"valuationFreshness": "fresh",
"feeBasisPoints": 250,
"feeWei": "149289383000000000",
"feeEth": 0.149289383
}
},
"message": "Use the returned call plan to approve this card and reserve the completion fee."
}

Broadcast Proof

POST /api/v2/blockchain/trades/broadcast

{
"success": true,
"message": "Transaction recorded and pending on-chain confirmation",
"blockchain": "ethereum",
"transactionHash": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"explorerUrl": "https://sepolia.etherscan.io/tx/0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"status": "pending_confirmation",
"transactionStatus": "pending",
"confirmations": 0,
"tradeLoopStatus": "pending_confirmation"
}

Refund Retired Intent Fee

GET /api/v2/delegations/refunds/{walletAddress}

Solana list items report the exact completion-fee refund in lamports and a SOL display value. This synthetic example uses the loop-scoped pNFT escrow refund type; standard Solana fee holds use solana_fee_hold.

{
"success": true,
"refunds": [
{
"id": "refund_solana_example",
"tradeId": "canonical_solana_refund_example",
"blockchain": "solana",
"giveNft": { "id": "J4Ev2zBa7np5wJH2FZ7Jg3m5JgyrB6sJmaXbMkLLk8hW", "name": "Synthetic Give Card", "image": "https://cdn.example/refund-give.png", "collection": "Synthetic Collection" },
"wantNft": { "id": "CzLukYPdyyBoUxxJXSS1Ccg4pSZ7mHLdpxoYSUmfWmm7", "name": "Synthetic Wanted Card", "image": "https://cdn.example/refund-want.png", "collection": "Synthetic Collection" },
"refundLamports": "149289383",
"refundSol": 0.149289383,
"refundStatus": "available",
"refundType": "pnft_shared_escrow",
"availableAt": "2026-05-31T20:00:00.000Z"
}
],
"total": 1
}

Ethereum and Base use the EVM branch. refundWei is the exact base-unit amount and refundEth is its ETH display value. The inherited refundLamports and refundSol compatibility fields are always zero for these rows; do not use them for EVM refund calculations. This synthetic example uses Base.

{
"success": true,
"refunds": [
{
"id": "refund_base_example",
"tradeId": "canonical_base_refund_example",
"blockchain": "base",
"giveNft": { "id": "0x1111111111111111111111111111111111111111:17", "name": "Synthetic Give Card", "image": "https://cdn.example/refund-give.png", "collection": "Synthetic Collection" },
"wantNft": { "id": "0x2222222222222222222222222222222222222222:42", "name": "Synthetic Wanted Card", "image": "https://cdn.example/refund-want.png", "collection": "Synthetic Collection" },
"refundLamports": "0",
"refundSol": 0,
"refundWei": "5000000000000000",
"refundEth": 0.005,
"refundStatus": "available",
"refundType": "evm_fee_escrow",
"availableAt": "2026-05-31T20:00:00.000Z"
}
],
"total": 1
}

POST /api/v2/delegations/{nftId}/refund

Solana returns a serialized unsigned transaction. The response may omit the optional fee-hold addresses when they are not relevant to the selected refund.

{
"success": true,
"status": "awaiting_signature",
"blockchain": "solana",
"refund": {
"tradeId": "canonical_solana_refund_example",
"wantNftId": "CzLukYPdyyBoUxxJXSS1Ccg4pSZ7mHLdpxoYSUmfWmm7",
"refundLamports": "149289383",
"refundType": "pnft_shared_escrow"
},
"transaction": {
"serialized": "AQAAAAAAAA...",
"message": "Refund unused SWAPS completion fee",
"estimatedFee": 5000,
"refundFeeHoldAddress": "3y3f4Hia3hhwEt3ZwW2wu2xYzG69bAHwUYSjz7K89gcs",
"feeReceiptAddress": "3aZnctdQhXwaW1RMULf8sHYu1vh1UZUExiRztWSNMZ8x"
},
"message": "Sign this transaction to reclaim the unused SWAPS completion fee for a non-winning approved trade. Solana network fees are not refundable."
}

Ethereum and Base return one EVM escrow-refund call. Base uses the same EVM shape. chainId is supplied when registry lookup succeeds and can be omitted if registry lookup is unavailable, so clients should validate or switch the wallet network whenever it is present.

{
"success": true,
"status": "awaiting_signature",
"blockchain": "base",
"chainId": 8453,
"refund": {
"tradeId": "canonical_base_refund_example",
"wantNftId": "0x2222222222222222222222222222222222222222:42",
"refundWei": "5000000000000000",
"refundEth": 0.005,
"refundType": "evm_fee_escrow"
},
"transaction": {
"to": "0x4444444444444444444444444444444444444444",
"data": "0x1234abcd",
"value": "0",
"gasLimit": "60000",
"maxFeePerGas": "1000000000",
"maxPriorityFeePerGas": "100000000",
"message": "Refund unused SWAPS completion fee",
"estimatedFee": 60000
},
"message": "Sign this transaction to reclaim the escrowed SWAPS completion fee for a trade that can no longer execute. Gas fees are not refundable."
}

Network fees are not refundable. Solana transaction.estimatedFee is lamports; the EVM transaction.estimatedFee mirrors the estimated gas-unit limit and is not an ETH fee quote.

Partner Readiness

GET /api/v2/partners/readiness

{
"success": true,
"ready": true,
"tradeHealth": {
"totalWallets": 250,
"totalNfts": 1400,
"totalOpportunities": 42,
"potentialSwaps": 42,
"density": "moderate"
},
"recommendations": []
}

Webhook

{
"event": "trade_loop_discovered",
"timestamp": "2026-05-05T10:35:00.000Z",
"tenant": {
"id": "tenant_123",
"name": "Example Collectibles"
},
"data": {
"loop": {
"id": "trade_123",
"status": "discovered",
"totalParticipants": 2,
"estimatedValue": 42,
"createdAt": "2026-05-05T10:35:00.000Z",
"blockchain": "ethereum",
"steps": [
{
"from": "0x1111111111111111111111111111111111111111",
"to": "0x2222222222222222222222222222222222222222",
"nfts": [
{
"address": "0x3333333333333333333333333333333333333333:1",
"name": "Charizard PSA 10",
"image": "https://cdn.example/charizard.png",
"collection": "Pokemon Base Set",
"floorPrice": 500,
"currency": "USD"
}
]
}
]
},
"trigger": "want_submitted",
"metadata": {
"source": "api"
}
},
"signature": "hmac_hex"
}