---
title: "Admin Circle Wallet Audit"
method: GET
path: "/v1/admin/circle/wallet-audit"
---

# Admin Circle Wallet Audit

`GET /v1/admin/circle/wallet-audit`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/admin/circle/wallet-audit`
- Auth: none declared

Read-only reconciliation of Circle wallets vs ListenerSubscription rows.

Surfaces ghost wallets: addresses Circle has minted that are no
longer (or never were) bound to a listener row. Circle's
Programmable Wallets API does not expose a delete endpoint, so
this is informational only — pair with the
CIRCLE_AUTO_MINT_ENABLED flag (defaults off) to stop the leak at
the source. Output drives the 1k/mo free-tier capacity decision.

Returns:
    circle_total: count of wallets in the storyflo-listeners walletSet
    db_total: count of ListenerSubscription rows with wallet_address
    orphan_count: Circle wallets whose address has no matching DB row
    orphan_sample: up to 20 orphan addresses (truncated for response size)

## Headers

- `x-storyflo-email-token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
