Deployer activity timeline (launches, dev buys/sells/transfers, creator transfers, fees, funding)
One newest-first timeline of what a deployer wallet did, from data MadeOnSol already holds. The window applies to each event's own time (window.applies_to: event_time): a sell yesterday of a token launched months ago is inside a 30-day window. Event types: launch (every launchpad we index; fee_payer_is_creator / external_fee_payer say whether the creator paid the create fee, null when unknown; dev_buy_sol / dev_buy_tokens / dev_buy_supply_pct from the create transaction when recorded), dev_buy / dev_sell (the deployer's own classified trades from the stored trade tape plus persisted realtime dev events where applicable; realtime rows can include activity below the ordinary trade persistence floor), dev_token_transfer_out / dev_token_transfer_in (persisted developer transfers of the attributed token; one public aggregate per transaction/mint/direction/actor, with raw amount/counterparty fields; recovered gap rows are REST history only and were never delivered live), creator_transferred (pump.fun creator rights moved to or from this wallet: the raw from / to of the event, direction, initiated_by creator | platform_admin | other_signer | unknown), fee_claim (creator-fee claims paid to the wallet), funding_in (one event per funder, timed by the latest transfer, first_at = first transfer; recorded only while the wallet is in the funding tracked set) and capital_out (one event per recipient address, timed by the latest transfer; recorded only when the wallet is a tracked high-signal source). Addresses in events are raw facts of the concrete event, not identity claims. Every event carries time_basis (chain | ingest | chain_or_ingest). coverage.families.<family> states each source, retention, scope, truncated, complete, complete_from and archive_required_before. History is served from the online (Postgres) store; older trade months live only in the Parquet archive. Archive reads for dev_trades are being rolled out for ULTRA and BUSINESS (PRO's 30-day window never reaches the archive). While they are off, a window that crosses that boundary is never reported as complete: dev_trades answers complete: false, complete_from = the earliest instant the online store covers completely, archive_required_before = the instant before which events exist only in the archive, and coverage.status is partial. If the boundary cannot be read, the family is complete: false with boundary_known: false. Fixed-retention families also carry retention_boundary: when the dev-event source is enabled, dev_transfers (SPL / Token-2022 transfers of the deployer's own token from the legacy watch + broad attributed-creator source) is held 30 days online, so a window starting before retention_boundary answers complete: false with complete_from = retention_boundary and coverage.status: partial (those rows are pruned, not archived). A wallet MadeOnSol has never attributed a launch to cannot have dev trades: dev_trades is then not queried and says skipped_reason: no_attributed_launch. plan.history separates the requested window (requested, effective after the tier clamp), the online coverage (online, served) and the archive-only range (archive_only, null when the window does not reach it). Without archive reads archive_only says served: false, reason: archive_reads_not_enabled. With archive reads, coverage.families.dev_trades.archive reports the read (read ok | not_needed | failed, served, reason, missing_months, months_read) and archive_only.served is true only when the archive answered for the whole range; dev_trades is then complete: true with archive_required_before: null. When an archive month is missing, complete_from / archive_required_before move to the end of the newest missing month (reason: archive_months_missing). If the archive is unavailable or times out, the online part is returned with complete: false and reason archive_unavailable | archive_timeout | archive_contract_mismatch | archive_ledger_unavailable, never an error and never a false complete. An empty family is not evidence that nothing happened. Paginate with cursor (opaque, ordered by (at, id), never skips equal timestamps). Server-side hard caps by plan (plan echoes them): PRO a 30-day window / 100 per page, ULTRA a 365-day window / 100 per page, BUSINESS an unbounded window / 500 per page; a larger limit is clamped (pagination.limit_capped) and an earlier since is clamped to the plan window. The ULTRA and BUSINESS windows normally reach past the online trade boundary, so their dev_trades coverage is usually partial (see above). ULTRA and BUSINESS responses carry an identity block, which currently answers status: not_available (identity stitching is not released; no linked wallets are reported, which says nothing about whether the wallet operates alone). PRO responses never carry an identity block or a fee-payer address. LIVE in production for PRO+. The capability flag remains a rollback guard; if an operator disables the feature the route answers 503 feature_disabled rather than returning a false empty timeline.
Request
- Base URL: https://madeonsol.com/api/v1
- URL: https://madeonsol.com/api/v1/deployer-hunter/{wallet}/activity
- Auth: HTTP bearer
Path parameters
Query parameters
Events per page. Clamped to the plan's hard cap: 100 (PRO, ULTRA) or 500 (BUSINESS).
pagination.next_cursor from the previous page. A cursor older than the effective window returns 400.
Requested window start (ISO 8601). Clamped to the plan window, never widened; in the future → 400. Default: the plan window.
Comma list of event types: launch, dev_buy, dev_sell, dev_token_transfer_out, dev_token_transfer_in, creator_transferred, fee_claim, funding_in, capital_out.
Response
OK
Changes
No recorded changes to this operation across all 1 revision of this API.