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

# Reusable addresses

Reusable addresses bind one source chain and fee plan to a fixed conversion direction.

<Note>
  New integrations use [standing deposit addresses](/orchestra/deposit-addresses). Retaining a legacy address does not establish current route availability.
</Note>

## Accumulation addresses

Create an address that converts Solana USDC deposits into USDB on Spark:

```bash theme={null}
curl -X POST https://orchestration.flashnet.xyz/v1/accumulation-addresses \
  -H "Authorization: Bearer SERVER_KEY" \
  -H "X-Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceChain": "solana",
    "sourceAsset": "USDC",
    "destinationAsset": "USDB",
    "recipientSparkAddress": "RECIPIENT_ADDRESS",
    "feeBps": 25,
    "slippageBps": 50
  }'
```

<Info>
  Replace `SERVER_KEY` with your `fn_...` key. Use a new `X-Idempotency-Key` for each operation and reuse it when retrying that same request. Amounts are integer strings in the asset's smallest unit: `"100000"` is 0.001 BTC; `"50000000"` is 50 USDC on Base. Read each asset's `decimals` from `/routes`.
</Info>

Accumulation accepts supported Solana assets or configured deposit chains/assets. `destinationAsset` is `BTC` or `USDB` on Spark. Fees are `feeBps` plus either `appFees` or `affiliateIds`. The response carries `accumulationAddressId`, `depositAddress`, and `subscriptions` (Solana Helius only). The same configuration returns the same address.

Fund the configured asset: native assets use native transfers; EVM tokens use token transfers. For missed deposits, `POST /v1/accumulation-addresses/:idOrAddress/reindex` requests a rescan. `POST /v1/accumulation-addresses/sync` re-registers Solana Helius webhooks. `GET /v1/accumulation-addresses`, `GET /:id`, and `DELETE /:id` list, read, and disable.

## Liquidation addresses

Liquidation accepts Bitcoin L1 deposits for canonical Bitcoin routes, excluding Hedera and xchain-only destinations. Create an address targeting USDC on Base:

```bash theme={null}
curl -X POST https://orchestration.flashnet.xyz/v1/liquidation-addresses \
  -H "Authorization: Bearer SERVER_KEY" \
  -H "X-Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "destinationChain": "base",
    "destinationAsset": "USDC",
    "destinationAddress": "RECIPIENT_ADDRESS",
    "feeBps": 25,
    "slippageBps": 50
  }'
```

The response carries `liquidationAddressId`, `l1DepositAddress` (fund this), and `sparkAddress` (internal claim address). Each `(txid, vout)` becomes a separate order with `quoteId: null`. Below-floor outputs fail with `amount_too_small`. Eligible deposits may receive per-order [ZeroConf](/orchestra/zeroconf) offers. `GET /v1/liquidation-addresses/orders?id=` or `?label=` lists generated orders.

## Fee plans

The fee plan is resolved and frozen when the address is created; later changes to affiliate profiles do not apply. Inline `appFees` recipients must hold an address on the settlement chain: Solana for most routes, Spark USDB for USDB destinations. BTC-only destinations reject fee plans with `400 unsupported_fee_plan`.

## Differences from standing addresses

* Legacy instructions have one source chain, order tracking, order-scoped ZeroConf, and no address-level refund API. `DELETE` disables an address.
* Standing instructions span source chains and track deposits before orders. They support `/resolve` refunds, reversible `PATCH` pauses, and deposit-scoped ZeroConf.
