> For the complete documentation index, see [llms.txt](https://bound-1.gitbook.io/bound-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bound-1.gitbook.io/bound-docs/developer-guide/api-reference/satflow.md).

# Satflow

## POST /api/satflow/build

> Build transaction — LIST, CANCEL, BUY

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"CreateSatflowTxDto":{"type":"object","properties":{"type":{"type":"string","enum":["satflow-list","satflow-cancel","satflow-buy"]},"userAddress":{"type":"string"},"inscriptionId":{"type":"string"},"priceInSats":{"type":"string"},"orderIds":{"type":"array","items":{"type":"string"}},"orderType":{"type":"string"},"inscriptionIds":{"description":"Inscription IDs to buy","type":"array","items":{"type":"string"}}},"required":["type","userAddress"]}}},"paths":{"/api/satflow/build":{"post":{"operationId":"SatflowController_buildTransaction","summary":"Build transaction — LIST, CANCEL, BUY","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSatflowTxDto"}}}},"responses":{"201":{"description":""}},"tags":["satflow"]}}}}
```

## POST /api/satflow/sign

> Submit signed transaction to Satflow

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"SignSatflowTxDto":{"type":"object","properties":{"type":{"type":"string","enum":["satflow-list","satflow-cancel","satflow-buy"]},"userAddress":{"type":"string"},"signedPsbt":{"type":"string"},"intentId":{"type":"string"},"signedChallenge":{"type":"string"},"signedSecureListingPsbts":{"type":"array","items":{"type":"string"}},"signedPaymentPrepPsbts":{"type":"array","items":{"type":"string"}},"signedPurchasePsbts":{"type":"array","items":{"type":"string"}},"signedTransferPsbt":{"type":"string"},"feeRate":{"type":"number"}},"required":["type","userAddress","intentId"]}}},"paths":{"/api/satflow/sign":{"post":{"operationId":"SatflowController_signAndSubmit","summary":"Submit signed transaction to Satflow","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignSatflowTxDto"}}}},"responses":{"201":{"description":""}},"tags":["satflow"]}}}}
```

## POST /api/satflow/buy/revert

> Revert a pending BUY intent — rolls back UMS state for any sub-txids registered so far

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"RevertSatflowBuyDto":{"type":"object","properties":{"inscriptionId":{"type":"string","description":"Inscription ID of the BUY intent to revert (FE tracks this, not the server-generated txId)"},"userAddress":{"type":"string"}},"required":["inscriptionId","userAddress"]}}},"paths":{"/api/satflow/buy/revert":{"post":{"operationId":"SatflowController_revertBuy","summary":"Revert a pending BUY intent — rolls back UMS state for any sub-txids registered so far","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevertSatflowBuyDto"}}}},"responses":{"201":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/item

> Get inscription item details from Satflow

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/item":{"get":{"operationId":"SatflowController_getItem","summary":"Get inscription item details from Satflow","parameters":[{"name":"inscriptionId","required":false,"in":"query","schema":{"type":"string"}},{"name":"inscriptionNumber","required":false,"in":"query","schema":{"type":"string"}},{"name":"metadata","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"bid","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"listing","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"exclude_ord","required":false,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/orders/floor

> Get floor orders for collections from Satflow

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/orders/floor":{"get":{"operationId":"SatflowController_getOrdersFloor","summary":"Get floor orders for collections from Satflow","parameters":[{"name":"collectionIds","required":false,"in":"query","description":"Single value (?collectionIds=a), CSV (?collectionIds=a,b), or repeat-key (?collectionIds[]=a&collectionIds[]=b)","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/collection-stats

> Get collection statistics from Satflow

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/collection-stats":{"get":{"operationId":"SatflowController_getCollectionStats","summary":"Get collection statistics from Satflow","parameters":[{"name":"collectionId","required":false,"in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/collection-stats/floors

> Get floor prices for multiple ordinals collections from Satflow

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/collection-stats/floors":{"get":{"operationId":"SatflowController_getCollectionStatsFloors","summary":"Get floor prices for multiple ordinals collections from Satflow","parameters":[{"name":"slugs","required":true,"in":"query","description":"Single value (?slugs=a), CSV (?slugs=a,b), or repeat-key (?slugs[]=a&slugs[]=b)","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/listings

> Get activity listings from Satflow

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/listings":{"get":{"operationId":"SatflowController_getListings","summary":"Get activity listings from Satflow","parameters":[{"name":"collectionSlug","required":false,"in":"query","schema":{"type":"string"}},{"name":"group","required":false,"in":"query","schema":{"enum":["collection","time"],"type":"string"}},{"name":"active","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"page","required":false,"in":"query","schema":{"type":"number"}},{"name":"pageSize","required":false,"in":"query","schema":{"type":"number"}},{"name":"external","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"timeRange","required":false,"in":"query","schema":{"enum":["24h","7d","30d"],"type":"string"}},{"name":"includeOnlyCollectionItems","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"sortBy","required":false,"in":"query","schema":{"enum":["createdAt","fillCompletedAt","fillPendingAt","price","unitPrice"],"type":"string"}},{"name":"sortDirection","required":false,"in":"query","schema":{"enum":["asc","desc"],"type":"string"}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/wallet-contents

> Get wallet contents from Satflow — ordinals and runes with listing/bid status

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/wallet-contents":{"get":{"operationId":"SatflowController_getWalletContents","summary":"Get wallet contents from Satflow — ordinals and runes with listing/bid status","parameters":[{"name":"address","required":true,"in":"query","schema":{"type":"string"}},{"name":"itemType","required":false,"in":"query","schema":{"enum":["inscription","rune","all"],"type":"string"}},{"name":"collection","required":false,"in":"query","schema":{"type":"string"}},{"name":"listedOnly","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"bidsOnly","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"cursor","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/collections/trending

> Get trending collections from Satflow memflow

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/collections/trending":{"get":{"operationId":"SatflowController_getTrendingCollections","summary":"Get trending collections from Satflow memflow","parameters":[{"name":"sortBy","required":false,"in":"query","schema":{"type":"string"}},{"name":"sortDirection","required":false,"in":"query","schema":{"enum":["asc","desc"],"type":"string"}},{"name":"offset","required":false,"in":"query","schema":{"type":"number"}},{"name":"limit","required":false,"in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/collection/inscriptions

> Get inscription details for a collection (paginated, max 10 per page)

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/collection/inscriptions":{"get":{"operationId":"SatflowController_getCollectionInscriptions","summary":"Get inscription details for a collection (paginated, max 10 per page)","parameters":[{"name":"collection_id","required":true,"in":"query","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number, 1-indexed (default 1)","schema":{"type":"number"}},{"name":"pageSize","required":false,"in":"query","description":"Items per page, max 10 — BE fans out 1 /item call per id (default 10)","schema":{"type":"number"}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/collection/listings

> Get active listings for a collection (paginated, sorted by price)

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/collection/listings":{"get":{"operationId":"SatflowController_getCollectionListings","summary":"Get active listings for a collection (paginated, sorted by price)","parameters":[{"name":"collectionId","required":true,"in":"query","description":"Satflow collection slug (e.g. \"nodemonkes\")","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number, 1-indexed (default 1)","schema":{"type":"number"}},{"name":"pageSize","required":false,"in":"query","description":"Items per page (1–20, default 20) — listings are enriched from a metadata cache; only uncached inscriptions trigger a /item call","schema":{"type":"number"}},{"name":"sortDirection","required":false,"in":"query","description":"Sort by listing price (default asc)","schema":{"enum":["asc","desc"],"type":"string"}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```

## GET /api/satflow/status/{intentId}

> Get intent status by intent ID (Mongo \_id)

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/satflow/status/{intentId}":{"get":{"operationId":"SatflowController_getStatus","summary":"Get intent status by intent ID (Mongo _id)","parameters":[{"name":"intentId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["satflow"]}}}}
```
