---
title: "Wallet flow graph"
method: GET
path: "/v1/wallets/{address}/flow-graph"
tags: ["wallets"]
---

# Wallet flow graph

`GET /v1/wallets/{address}/flow-graph`

## Request

- Base URL: `https://satoshidata.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://satoshidata.ai/v1/wallets/{address}/flow-graph`
- Auth: none declared

Free render-ready transaction-flow graph for a Bitcoin wallet address. Default min_btc=0.1 is a value-flow display filter; response filters report omitted edge candidates, and min_btc=0 is the honest attribution/ownership view. Large or cold wallets use bounded history and edge-candidate sampling; partial/truncated responses report the active caps, and slow cold builds return structured JSON 503 with Retry-After.

## Path parameters

- `address` string, required

## Query parameters

- `hops` integer
- `direction` 'in' | 'out' | 'both'
- `min_btc` number: Minimum BTC value for an edge candidate to appear. Default 0.1 BTC is a value-flow display filter; the response filters include edge_candidates_filtered_by_min_btc. Use min_btc=0 for ownership or attribution analysis; large cold wallets may return partial=true or a structured retry-503 while the cache warms.
- `since` string, nullable: Only include transactions at or after this ISO timestamp.
- `include_labels` boolean
- `node_limit` integer
- `view` string, nullable: Optional response view. Set `view=compact` for a smaller agent-oriented payload.

## Response `200`

Wallet flow graph

- WalletFlowGraphResponse
  - `kind` 'wallet_flow_graph'
  - `root` string, required
  - `depth` integer, required
  - `nodes` object[]
  - `edges` object[]
  - `node_count` integer, required
  - `edge_count` integer, required
  - `filters` object
  - `truncated` boolean, required
  - `partial` boolean, required
  - `_meta` ResponseMeta, required
    - `endpoint` string, required
    - `freshness` string, nullable
    - `freshness_semantics` 'internal_refresh' | 'source_poll' | 'claim_made', nullable
    - `source` string, required
    - `price_sats` integer, nullable
    - `price_usd` string, nullable
    - `docs` string, nullable
    - `warnings` ResponseWarning[]
      - `code` string, required
      - `message` string, required
    - `pagination` ResponsePagination
      - `offset` integer, required
      - `limit` integer, required
      - `total_alerts` integer, required
      - `next_offset` integer, nullable, required
      - `has_more` boolean, required
    - `view` 'compact', nullable
    - `bitcoin_backend` string, nullable
    - `beta` boolean, nullable
    - `cache_seconds` integer, nullable
    - `cache_ttl_seconds` integer, nullable
    - `cache_status` string, nullable
    - `cache_age_seconds` number, nullable
    - `cache_cached_at` string, nullable
    - `cached` boolean, nullable
    - `cache_policy` string, nullable
    - `compute_ms` integer, nullable
    - `warning` string, nullable
    - `refresh_warning` string, nullable
    - `last_refresh_started_at` string, nullable
    - `last_refresh_completed_at` string, nullable
    - `last_refresh_status` string, nullable
    - `last_refresh_error` string, nullable
    - `last_refresh_duration_ms` integer, nullable
    - `feature_flag` string, nullable
    - `rollout_state` string, nullable
    - `schema_version` string, nullable
    - `methodology_version` string, nullable
    - `materialized_source` string, nullable
    - `max_hops` integer, nullable
    - `retention` string, nullable
    - `not_compliance_advice` boolean, nullable
    - `future_native_price_mode` string, nullable
    - `future_native_price_note` string, nullable
    - `future_native_quote_endpoint` string, nullable
    - `overview_activity_cache` object, nullable
    - `attribution_confidence` string, nullable
    - `generated_at` string, nullable
    - `last_computed` string, nullable
    - `snapshot_generated_at` string, nullable
    - `snapshot_age_seconds` number, nullable
    - `snapshot_stale_after_seconds` integer, nullable
    - `snapshot_status` string, nullable
    - `history_window_basis` string, nullable
    - `total_blocks_last_24h` integer, nullable
    - `field_semantics` object, nullable
    - `semantic_completeness` object, nullable
  - `beta` boolean, required

## Other responses

- `400`: Bad request.
- `404`: Resource not found.
- `405`: Method not allowed.
- `422`: Request validation failed.

---

[API](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api.md) · [All operations](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/satoshidata/apis/satoshidata-agent-api/revisions/9fc9edc41ac4?raw)
