Documentation Index
Fetch the complete documentation index at: https://docs.shadowfeed.app/llms.txt
Use this file to discover all available pages before exploring further.
Withdrawals & Revenue
How revenue flows from agent payments to your wallet — and how to move it on-chain.Revenue lifecycle
Revenue is tracked as a database counter on the platform — not as STX sitting on your custodial wallet. We batch settlements so you don’t pay gas per query.
Your three wallets
| Wallet | What it is | Source of funds |
|---|---|---|
| Custodial wallet | Auto-generated on signup. Shown in dashboard as your provider identity. | Currently informational only. M3 will sweep STX here. |
| Linked withdrawal wallet | Your personal Stacks wallet that you control with a private key. | Receives withdrawals from the platform wallet. |
| Platform wallet | ShadowFeed’s mainnet wallet (SP1DV3T4...). | Holds inbound x402 settlements until you withdraw. |
Linking a withdrawal wallet
The linked wallet is where withdrawals land. Can be the same wallet you signed in with, or any other Stacks mainnet address.Link your signed-in wallet (simplest)
Open the dashboard
Visit shadowfeed.app/#/providers/dashboard and select your provider.
Link a different wallet (multisig, treasury, etc.)
Navigate to your provider
The original wallet is still the owner — you’ll need to sign back in with it later to manage feeds.
Making a withdrawal
Once you have ≥ 1 STX inpending_revenue:
What happens server-side
Sign + broadcast
Builds STX transfer (
platform → destination), signs with platform private key, broadcasts via Hiro.If broadcast fails (network error, rate limit, etc.) the
pending_revenue is automatically restored so you never lose funds to platform-side errors.Idempotency
The dashboard sends a freshidempotency_key (UUID) with every withdrawal request. If you hit “Confirm” twice or the request times out and retries, the server returns the original withdrawal — no double-spend.
When calling the API directly, pass the key yourself:
Limits & guards
| Limit | Value | Why |
|---|---|---|
| Min withdrawal | 1 STX | Avoid dust; bound per-tx blast radius |
| Max withdrawal per request | 1000 STX | Anti-abuse cap; split larger amounts |
| Destination must match linked wallet | Always | Prevents account takeover from draining funds |
| Wallet relinking | Requires SIWS | Proves you control the new destination |
Revenue analytics
Each provider in your dashboard shows:- Pending revenue (STX) — what’s available to withdraw
- Lifetime earned (STX) — gross 97% across all queries
- Total withdrawn (STX) — cumulative payouts to linked wallet
- Queries 7d — count of paid calls in the last 7 days
- Unique buyers 7d — distinct agent wallets that paid you
queries_24h, queries_7d, revenue_24h_microstx, revenue_7d_microstx, unique_buyers_7d, avg_response_ms, error_rate.
Withdrawal status flow
| Status | Meaning |
|---|---|
pending | Insert succeeded, broadcast not yet attempted |
broadcast | Tx sent to Stacks; awaiting block confirmation |
confirmed | Tx confirmed on-chain; visible on Hiro Explorer |
failed | Broadcast or on-chain execution failed; pending revenue restored |
On-chain proof
Every withdrawal lands on Stacks mainnet. Click the TX hash in your settlement history to open Hiro Explorer:- Sender: ShadowFeed platform wallet (
SP1DV3T4...) - Recipient: your linked withdrawal address
- Amount: in microSTX
- Memo:
sf-w-first8-of-withdrawal-id— useful for reconciliation
Tax considerations
We don’t issue 1099s or tax forms. You’re responsible for reporting STX received as income at fair market value on the day of receipt. Keep your settlement history + on-chain TX hashes for records. Export your withdrawal history:What’s next
HMAC Integration Guide
Wire up your endpoint to accept signed requests.
Troubleshooting
Common withdrawal errors.