> ## Documentation Index
> Fetch the complete documentation index at: https://docs.signalite.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Activity

> Show deposits, withdrawals, and redemption lifecycle rows.

Use indexed API data for user activity. Do not rely on browser-side RPC event scanning for partner apps.

## Endpoints

| Endpoint                                               | Use                                                            |
| ------------------------------------------------------ | -------------------------------------------------------------- |
| `GET /api/v1/activity?wallet=0x...`                    | User deposits, withdrawals, claims, and indexed vault activity |
| `GET /api/v1/redeems?wallet=0x...`                     | Grouped async redeem lifecycle rows                            |
| `GET /api/v1/actions/status?wallet=0x...&txHash=0x...` | Normalized lifecycle status for a recently submitted action    |
| `GET /api/v1/actions/status?wallet=0x...&redeemId=1`   | Normalized lifecycle status for a redeem request               |
| `GET /api/v1/history`                                  | Vault snapshot chart data                                      |

## Gate

Only show activity as reliable when:

```ts theme={null}
health.ready.activity === true
```

If false, show the user's balances from live reads but mark history/activity as temporarily stale.

## UX requirements

* Pending redeem requests must remain visible.
* Claimable requests should show a primary claim action.
* Pending requests should show cancel as a secondary action.
* Claimed/cancelled rows should stay in history.

## Action status

After a partner submits a transaction, poll action status instead of showing a raw transaction hash as the only feedback.

```ts theme={null}
const status = await shlp.getActionStatus({
  wallet: userAddress,
  txHash,
});

if (status.status === "indexing") {
  showPending("Waiting for the transaction to be indexed.");
}

if (status.status === "waiting_for_hlp_unlock") {
  showPending(status.steps.find((step) => step.kind === "hlp_unlock_wait")?.message);
}
```

The response includes ordered `steps` so partner apps can render a clear progress component for deposit, instant redeem, queued redeem, cancel, and claim flows.
