madeonsol 2.24.0 → 2.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1695,6 +1695,504 @@ export interface TokenHoldersResponse {
1695
1695
  deployer: TokenHoldersDeployer | null;
1696
1696
  source: TokenHoldersSource;
1697
1697
  }
1698
+ /** Locker program a contract lives under. LP locks are NOT covered (token / vesting locks only). */
1699
+ export type TokenLockProgram = "streamflow" | "jupiter_lock" | "bonfida_vesting";
1700
+ /** `lock` = whole amount released at one date; `vesting` = cliff and/or periodic release. */
1701
+ export type TokenLockKind = "lock" | "vesting";
1702
+ /** Contract status, derived at request time from the on-chain schedule + withdrawn/cancelled state. */
1703
+ export type TokenLockStatus = "active" | "completed" | "cancelled" | "closed";
1704
+ /** Kind of unlock event: `cliff`, periodic `period`, the `final` release, or a Bonfida `tranche`. */
1705
+ export type TokenUnlockEventKind = "cliff" | "period" | "final" | "tranche";
1706
+ /** Mint facts joined to a lock row / unlock event. All null when unknown (`facts_resolved`). */
1707
+ export interface TokenLockToken {
1708
+ symbol: string | null;
1709
+ name: string | null;
1710
+ decimals: number | null;
1711
+ price_usd: number | null;
1712
+ market_cap_usd: number | null;
1713
+ }
1714
+ /** The next unlock event of a single contract. `amount_raw` is a base-unit STRING. */
1715
+ export interface TokenLockNextUnlock {
1716
+ at: string;
1717
+ kind: TokenUnlockEventKind;
1718
+ amount_raw: string;
1719
+ amount: number | null;
1720
+ amount_usd: number | null;
1721
+ }
1722
+ /**
1723
+ * One on-chain lock / vesting contract with a LIVE-derived view (computed at
1724
+ * request time). `*_raw` = base units as decimal STRINGS — never floats; the
1725
+ * ui (`amount`, `locked`, …), `*_usd` and `*_pct_of_supply` fields are null when
1726
+ * decimals / price are unknown.
1727
+ */
1728
+ export interface TokenLock {
1729
+ /** The contract account (Streamflow stream / Jupiter VestingEscrow / Bonfida vesting account). */
1730
+ lock_account: string;
1731
+ program: TokenLockProgram;
1732
+ kind: TokenLockKind;
1733
+ status: TokenLockStatus;
1734
+ mint: string;
1735
+ /** Creator / locker. Bonfida has none on-chain. */
1736
+ sender: string | null;
1737
+ recipient: string | null;
1738
+ name: string | null;
1739
+ /** Deposited amount. */
1740
+ amount_raw: string;
1741
+ amount: number | null;
1742
+ amount_usd: number | null;
1743
+ amount_pct_of_supply: number | null;
1744
+ /** Still locked right now (amount − unlocked-so-far); "0" unless active. */
1745
+ locked_raw: string;
1746
+ locked: number | null;
1747
+ locked_usd: number | null;
1748
+ locked_pct_of_supply: number | null;
1749
+ unlocked_raw: string;
1750
+ unlocked: number | null;
1751
+ /** Claimed so far. */
1752
+ withdrawn_raw: string;
1753
+ withdrawn: number | null;
1754
+ /** Unlocked but not yet withdrawn. */
1755
+ claimable_raw: string;
1756
+ claimable: number | null;
1757
+ start_at: string | null;
1758
+ cliff_at: string | null;
1759
+ /** Fully unlocked at; null = perpetual / no schedule. */
1760
+ end_at: string | null;
1761
+ period_seconds: number | null;
1762
+ /** period < 1h (per-second stream, e.g. Streamflow payroll). */
1763
+ continuous: boolean;
1764
+ amount_per_period_raw: string | null;
1765
+ amount_per_period: number | null;
1766
+ cliff_amount_raw: string | null;
1767
+ cliff_amount: number | null;
1768
+ perpetual: boolean;
1769
+ next_unlock: TokenLockNextUnlock | null;
1770
+ /** The locker can cancel — funds are locked against the RECIPIENT, not the locker (a weaker promise). */
1771
+ cancelable_by_sender: boolean | null;
1772
+ cancelable_by_recipient: boolean | null;
1773
+ transferable: boolean | null;
1774
+ can_topup: boolean | null;
1775
+ cancelled_at: string | null;
1776
+ created_at: string | null;
1777
+ /** Backfilled row with no on-chain creation time (Jupiter Lock). */
1778
+ created_at_estimated: boolean;
1779
+ tx_signature: string | null;
1780
+ }
1781
+ /** A lock row on the cross-token feed — the contract plus its mint's facts. */
1782
+ export interface TokenLockFeedEntry extends TokenLock {
1783
+ token: TokenLockToken;
1784
+ }
1785
+ /** Rollup over ALL contracts on a mint (the `status` / `program` filters only narrow `locks[]`). */
1786
+ export interface TokenLocksSummary {
1787
+ /** Exact count of contracts on the mint. */
1788
+ lock_count: number;
1789
+ /** false when the mint holds more than 5000 contracts — totals then cover the newest 5000 (`rows_considered`). */
1790
+ complete: boolean;
1791
+ rows_considered: number;
1792
+ active_count: number;
1793
+ by_program: Record<string, number>;
1794
+ by_kind: Record<string, number>;
1795
+ distinct_lockers: number;
1796
+ locked_raw: string;
1797
+ locked: number | null;
1798
+ locked_usd: number | null;
1799
+ locked_pct_of_supply: number | null;
1800
+ deposited_raw: string;
1801
+ deposited: number | null;
1802
+ deposited_usd: number | null;
1803
+ /** Forward unlock schedule — everything releasing in the next 7 / 30 days. */
1804
+ unlocking_7d_raw: string;
1805
+ unlocking_7d: number | null;
1806
+ unlocking_7d_usd: number | null;
1807
+ unlocking_7d_pct_of_supply: number | null;
1808
+ unlocking_30d_raw: string;
1809
+ unlocking_30d: number | null;
1810
+ unlocking_30d_usd: number | null;
1811
+ unlocking_30d_pct_of_supply: number | null;
1812
+ /** Nearest next unlock across all active contracts. */
1813
+ next_unlock: (TokenLockNextUnlock & {
1814
+ lock_account: string;
1815
+ }) | null;
1816
+ /** Active contracts the sender can still cancel (pull the funds back). */
1817
+ active_cancelable_by_sender: number;
1818
+ }
1819
+ /** Query params for GET /tokens/{mint}/locks. */
1820
+ export interface TokenLocksParams {
1821
+ /** Filter the list (the summary always covers all rows). */
1822
+ status?: TokenLockStatus;
1823
+ program?: TokenLockProgram;
1824
+ /** 1–500, default 200. */
1825
+ limit?: number;
1826
+ }
1827
+ /**
1828
+ * GET /tokens/{mint}/locks — every on-chain lock / vesting contract on a mint
1829
+ * (Streamflow, Jupiter Lock, Bonfida vesting) with a live-derived view + summary.
1830
+ * **LP locks are NOT included** (token / vesting locks only). PRO+, keyed only.
1831
+ */
1832
+ export interface TokenLocksResponse {
1833
+ mint: string;
1834
+ token: TokenLockToken & {
1835
+ supply: number | null;
1836
+ facts_resolved: boolean;
1837
+ };
1838
+ summary: TokenLocksSummary;
1839
+ locks: TokenLock[];
1840
+ meta?: Record<string, unknown>;
1841
+ }
1842
+ /** Query params for GET /tokens/locks (cross-token feed of NEW contracts). */
1843
+ export interface TokenLocksFeedParams {
1844
+ /** ISO date-time — only contracts created after this instant (use `pagination.next_since`). */
1845
+ since?: string;
1846
+ /** ISO date-time — page back: only contracts created before this instant (`pagination.next_before`). */
1847
+ before?: string;
1848
+ mint?: string;
1849
+ sender?: string;
1850
+ recipient?: string;
1851
+ program?: TokenLockProgram;
1852
+ kind?: TokenLockKind;
1853
+ status?: TokenLockStatus;
1854
+ /** Deposited amount in USD ≥ (needs a known price; post-filter). */
1855
+ min_usd?: number;
1856
+ /** 0–100 (post-filter). */
1857
+ min_pct_of_supply?: number;
1858
+ /** Include backfilled Jupiter Lock rows that have no on-chain creation time (default: excluded). */
1859
+ include_estimated?: boolean;
1860
+ /** 1–100, default 50. */
1861
+ limit?: number;
1862
+ }
1863
+ /** Cursor pagination on the ISO-timestamp feeds. */
1864
+ export interface TokenFeedPagination {
1865
+ limit: number;
1866
+ count: number;
1867
+ has_more: boolean;
1868
+ /** Pass as `since` to fetch only what is newer. */
1869
+ next_since: string | null;
1870
+ /** Pass as `before` to page back. */
1871
+ next_before: string | null;
1872
+ }
1873
+ /** WebSocket pointer returned by the feed endpoints — the same rows are pushed live on `channel`. */
1874
+ export interface TokenFeedStreamPointer {
1875
+ channel: string;
1876
+ url: string;
1877
+ token_endpoint?: string;
1878
+ subscribe?: {
1879
+ type: "subscribe";
1880
+ channels: string[];
1881
+ };
1882
+ note?: string;
1883
+ }
1884
+ /** GET /tokens/locks — newest lock / vesting contracts across all mints. PRO+, keyed only. */
1885
+ export interface TokenLocksFeedResponse {
1886
+ locks: TokenLockFeedEntry[];
1887
+ pagination: TokenFeedPagination;
1888
+ /** Pointer to the `token:locks` WS channel (event `token:lock`). */
1889
+ stream: TokenFeedStreamPointer;
1890
+ meta?: Record<string, unknown>;
1891
+ }
1892
+ /** Look-ahead window for GET /tokens/unlocks. */
1893
+ export type TokenUnlocksWithin = "1h" | "6h" | "24h" | "3d" | "7d" | "14d" | "30d" | "90d";
1894
+ /** Query params for GET /tokens/unlocks. */
1895
+ export interface TokenUnlocksParams {
1896
+ /** Default "7d". */
1897
+ within?: TokenUnlocksWithin;
1898
+ mint?: string;
1899
+ program?: TokenLockProgram;
1900
+ kind?: TokenLockKind;
1901
+ /** Next-event amount in USD ≥ (needs a known price). */
1902
+ min_usd?: number;
1903
+ /** 0–100. */
1904
+ min_pct_of_supply?: number;
1905
+ /** Default "soonest". */
1906
+ sort?: "soonest" | "largest_usd" | "largest_pct";
1907
+ /** 1–200, default 50. */
1908
+ limit?: number;
1909
+ }
1910
+ /**
1911
+ * One upcoming unlock — the NEXT event of an active contract inside the window,
1912
+ * plus that contract's total release over the whole window (`window_amount_*`).
1913
+ */
1914
+ export interface TokenUnlockEvent {
1915
+ unlock_at: string;
1916
+ in_seconds: number;
1917
+ event: TokenUnlockEventKind;
1918
+ amount_raw: string;
1919
+ amount: number | null;
1920
+ amount_usd: number | null;
1921
+ amount_pct_of_supply: number | null;
1922
+ window_amount_raw: string;
1923
+ window_amount: number | null;
1924
+ window_amount_usd: number | null;
1925
+ window_amount_pct_of_supply: number | null;
1926
+ mint: string;
1927
+ token: TokenLockToken;
1928
+ /** The contract this event belongs to (a subset of the {@link TokenLock} row). */
1929
+ lock: Pick<TokenLock, "lock_account" | "program" | "kind" | "name" | "sender" | "recipient" | "amount_raw" | "amount" | "amount_usd" | "locked_raw" | "locked" | "locked_usd" | "cliff_at" | "end_at" | "period_seconds" | "continuous" | "cancelable_by_sender">;
1930
+ }
1931
+ /** GET /tokens/unlocks — upcoming unlock events across all active contracts. PRO+, keyed only. */
1932
+ export interface TokenUnlocksResponse {
1933
+ window: {
1934
+ within: TokenUnlocksWithin;
1935
+ from: string;
1936
+ to: string;
1937
+ };
1938
+ unlocks: TokenUnlockEvent[];
1939
+ pagination: {
1940
+ limit: number;
1941
+ count: number;
1942
+ total_in_window: number;
1943
+ has_more: boolean;
1944
+ };
1945
+ meta?: Record<string, unknown>;
1946
+ }
1947
+ /**
1948
+ * Payload of a `token:lock` WS event (channel `token:locks`) — pushed by the
1949
+ * lock-tracker the moment a NEW contract's account is first seen (~seconds after
1950
+ * the create tx). A compact writer payload, NOT the full live-derived REST row:
1951
+ * poll GET /tokens/{mint}/locks for the live state. Updates (claims / cancels /
1952
+ * closes) are NOT pushed.
1953
+ */
1954
+ export interface TokenLockStreamEvent {
1955
+ lock_account: string;
1956
+ program: TokenLockProgram;
1957
+ mint: string;
1958
+ kind: TokenLockKind;
1959
+ sender: string | null;
1960
+ recipient: string | null;
1961
+ /** Base-unit STRING. */
1962
+ amount_raw: string;
1963
+ /** May be null on the very first sighting of a mint. */
1964
+ decimals: number | null;
1965
+ start_at: string | null;
1966
+ cliff_at: string | null;
1967
+ end_at: string | null;
1968
+ name: string | null;
1969
+ tx_signature: string | null;
1970
+ slot: number | null;
1971
+ created_at: string;
1972
+ }
1973
+ /** pump.fun fee event types (`creator_claim` is excluded from the feed unless requested via `type=`). */
1974
+ export type TokenFeeEventType = "shares_created" | "shares_updated" | "shares_reset" | "distribution" | "social_pda_created" | "social_claim" | "creator_transferred" | "creator_claim";
1975
+ /** A shareholder on a SharingConfig: `{ address, share_bps }` (bps of the creator fee). */
1976
+ export interface TokenFeeShareEntry {
1977
+ address: string;
1978
+ share_bps: number;
1979
+ }
1980
+ /**
1981
+ * A pump_fees SocialFeePda — fees earmarked for a platform identity (platform 2 = X;
1982
+ * `user_id` is the platform-native numeric id, NOT the handle) until the identity's
1983
+ * owner claims them.
1984
+ */
1985
+ export interface TokenFeeSocialIdentity {
1986
+ platform: number;
1987
+ /** "x" for platform 2; `platform_<n>` for platforms not yet observed. */
1988
+ platform_label: string | null;
1989
+ user_id: string;
1990
+ /** Base-unit STRING (quote lamports). */
1991
+ lifetime_claimed_raw: string;
1992
+ lifetime_claimed: number | null;
1993
+ lifetime_claimed_usd: number | null;
1994
+ last_claimed_at: string | null;
1995
+ }
1996
+ /** One shareholder / recipient of a coin's creator fees, with what it has received so far. */
1997
+ export interface TokenFeeShareholder {
1998
+ address: string;
1999
+ /** null for a past recipient no longer in the split. */
2000
+ share_bps: number | null;
2001
+ share_pct: number | null;
2002
+ /** The config admin (normally the coin creator). */
2003
+ is_admin: boolean;
2004
+ /** Address is a pump_fees SocialFeePda — fees earmarked for a platform identity. */
2005
+ is_social_pda: boolean;
2006
+ social: TokenFeeSocialIdentity | null;
2007
+ /** Total received via distributions since 2026-08-17 — base-unit STRING. */
2008
+ received_raw: string;
2009
+ received: number | null;
2010
+ received_usd: number | null;
2011
+ payout_count: number;
2012
+ last_payout_at: string | null;
2013
+ }
2014
+ /** The on-chain SharingConfig of a pump.fun coin (pump_fees PDA ["sharing-config", mint]). */
2015
+ export interface TokenFeeSharingConfig {
2016
+ sharing_config: string;
2017
+ admin: string | null;
2018
+ admin_revoked: boolean | null;
2019
+ status: string | null;
2020
+ version: number | null;
2021
+ /** true = 100% to the admin, no redirect (pump creates one per coin — a real answer, not "unknown"). */
2022
+ is_default: boolean | null;
2023
+ /** Share going to NON-admin addresses. */
2024
+ redirected_bps: number;
2025
+ redirected_pct: number;
2026
+ /** Share going to social PDAs. */
2027
+ social_bps: number;
2028
+ social_pct: number;
2029
+ shareholders: TokenFeeShareholder[];
2030
+ /** `stream` = our table (only non-default configs are stored); `chain` = live PDA read. */
2031
+ source: "stream" | "chain";
2032
+ updated_at: string | null;
2033
+ }
2034
+ /** Config change / creator transfer on the fee-shares history log. */
2035
+ export interface TokenFeeShareHistoryEntry {
2036
+ id: number;
2037
+ type: TokenFeeEventType;
2038
+ at: string;
2039
+ tx_signature: string;
2040
+ actor: string | null;
2041
+ admin: string | null;
2042
+ recipient: string | null;
2043
+ shareholders: TokenFeeShareEntry[] | null;
2044
+ amount_raw: string | null;
2045
+ amount: number | null;
2046
+ social: {
2047
+ platform: number;
2048
+ platform_label: string | null;
2049
+ user_id: string;
2050
+ pda: string | null;
2051
+ } | null;
2052
+ /** Full decoded Anchor event. */
2053
+ payload: Record<string, unknown> | null;
2054
+ }
2055
+ /** One `distribute_creator_fees` payout on the fee-shares view. */
2056
+ export interface TokenFeeDistribution {
2057
+ at: string;
2058
+ tx_signature: string;
2059
+ amount_raw: string;
2060
+ amount: number | null;
2061
+ amount_usd: number | null;
2062
+ shareholders: TokenFeeShareEntry[] | null;
2063
+ actor: string | null;
2064
+ }
2065
+ /**
2066
+ * GET /tokens/{mint}/fee-shares — pump.fun creator-fee sharing on a coin: who the
2067
+ * fees are redirected to (SharingConfig), the distribution rollup per recipient,
2068
+ * the config change log and recent payouts. **Event history starts 2026-08-17.**
2069
+ * PRO+, keyed only.
2070
+ */
2071
+ export interface TokenFeeSharesResponse {
2072
+ mint: string;
2073
+ /** null when the live read failed on every RPC endpoint (see `config_error`). */
2074
+ config: TokenFeeSharingConfig | null;
2075
+ config_pda: string;
2076
+ config_error: string | null;
2077
+ /** Quote asset the fees are paid in (SOL unless a stable-quoted coin). */
2078
+ quote: {
2079
+ symbol: string;
2080
+ decimals: number;
2081
+ sol_usd: number | null;
2082
+ };
2083
+ distributions: {
2084
+ count: number;
2085
+ total_raw: string;
2086
+ total: number | null;
2087
+ total_usd: number | null;
2088
+ last_at: string | null;
2089
+ /** Everyone who received a payout (current + past shareholders), largest first. */
2090
+ recipients: TokenFeeShareholder[];
2091
+ /** Recipients no longer in the split. */
2092
+ past_recipients: TokenFeeShareholder[];
2093
+ payouts_considered: number;
2094
+ payouts_truncated: boolean;
2095
+ };
2096
+ /** Config changes + creator transfers, newest first (max 100). */
2097
+ history: TokenFeeShareHistoryEntry[];
2098
+ recent_distributions: TokenFeeDistribution[];
2099
+ meta?: Record<string, unknown>;
2100
+ }
2101
+ /** Query params for GET /tokens/fee-claims. */
2102
+ export interface TokenFeeClaimsParams {
2103
+ /** Comma list of {@link TokenFeeEventType} (default: all except `creator_claim`). */
2104
+ type?: string;
2105
+ mint?: string;
2106
+ /** Payout / claim recipient wallet, or the new creator. */
2107
+ recipient?: string;
2108
+ /** Transaction signer. */
2109
+ actor?: string;
2110
+ /** Raw platform id (2 = X). */
2111
+ social_platform?: number;
2112
+ /** Platform-native numeric user id. */
2113
+ social_user_id?: string;
2114
+ /** Amount floor in SOL. */
2115
+ min_sol?: number;
2116
+ /** ISO date-time (use `pagination.next_since`). */
2117
+ since?: string;
2118
+ /** ISO date-time (use `pagination.next_before`). */
2119
+ before?: string;
2120
+ /** 1–100, default 50. */
2121
+ limit?: number;
2122
+ }
2123
+ /** Pro-rata payout to one shareholder inside a `distribution` event. */
2124
+ export interface TokenFeePayout {
2125
+ address: string;
2126
+ share_bps: number;
2127
+ amount_raw: string;
2128
+ amount: number | null;
2129
+ amount_usd: number | null;
2130
+ }
2131
+ /** One decoded pump.fun fee event on the feed. Amounts are quote base units (SOL lamports unless a stable-quoted coin) as STRINGS. */
2132
+ export interface TokenFeeClaimEvent {
2133
+ id: number;
2134
+ type: TokenFeeEventType;
2135
+ at: string;
2136
+ tx_signature: string;
2137
+ slot: number | null;
2138
+ /** null for social claims and creator vault claims (per identity / per creator). */
2139
+ mint: string | null;
2140
+ admin: string | null;
2141
+ /** Transaction signer. */
2142
+ actor: string | null;
2143
+ recipient: string | null;
2144
+ amount_raw: string | null;
2145
+ amount: number | null;
2146
+ amount_usd: number | null;
2147
+ /** Quote symbol, e.g. "SOL". */
2148
+ quote: string;
2149
+ social: {
2150
+ platform: number;
2151
+ platform_label: string | null;
2152
+ user_id: string;
2153
+ pda: string | null;
2154
+ } | null;
2155
+ shareholders: TokenFeeShareEntry[] | null;
2156
+ /** `distribution` only: pro-rata amount per shareholder. */
2157
+ payouts: TokenFeePayout[] | null;
2158
+ /** Full decoded Anchor event. */
2159
+ payload: Record<string, unknown> | null;
2160
+ }
2161
+ /** GET /tokens/fee-claims — pump.fun fee-event feed, newest first. **History starts 2026-08-17.** PRO+, keyed only. */
2162
+ export interface TokenFeeClaimsResponse {
2163
+ events: TokenFeeClaimEvent[];
2164
+ pagination: TokenFeedPagination;
2165
+ /** Pointer to the `token:fee_claims` WS channel (event `token:fee_claim`). */
2166
+ stream: TokenFeedStreamPointer;
2167
+ meta?: Record<string, unknown>;
2168
+ }
2169
+ /**
2170
+ * Payload of a `token:fee_claim` WS event (channel `token:fee_claims`) — pushed by
2171
+ * the fee-claim-tracker the moment the tx confirms. A compact writer payload (flat
2172
+ * `event_type` / `block_time` / `social_*` fields), NOT the enriched REST row —
2173
+ * no ui / usd amounts or `payouts[]`; call GET /tokens/fee-claims for those.
2174
+ */
2175
+ export interface TokenFeeClaimStreamEvent {
2176
+ id: number;
2177
+ event_type: TokenFeeEventType;
2178
+ tx_signature: string;
2179
+ slot: number | null;
2180
+ /** The event's own on-chain timestamp. */
2181
+ block_time: string;
2182
+ /** null for social claims and creator vault claims. */
2183
+ mint: string | null;
2184
+ sharing_config: string | null;
2185
+ admin: string | null;
2186
+ actor: string | null;
2187
+ recipient: string | null;
2188
+ /** Quote base units as a STRING (SOL lamports unless a stable-quoted coin). */
2189
+ amount_raw: string | null;
2190
+ quote_mint: string | null;
2191
+ social_platform: number | null;
2192
+ social_user_id: string | null;
2193
+ social_fee_pda: string | null;
2194
+ shareholders: TokenFeeShareEntry[] | null;
2195
+ }
1698
2196
  export type CandleTimeframe = "1m" | "5m" | "15m" | "1h" | "4h" | "1d";
1699
2197
  export interface CandlesParams {
1700
2198
  /** Bar size. Default "1h". */
@@ -3105,6 +3603,128 @@ declare class TokenClient {
3105
3603
  * and at 1h/6h/24h/7d after bond.
3106
3604
  */
3107
3605
  peakHistory(mint: string): Promise<PeakHistoryResponse>;
3606
+ /**
3607
+ * v2.25 — Token locks & vesting on a mint (`GET /tokens/{mint}/locks`): every
3608
+ * on-chain Streamflow stream, Jupiter Lock vesting escrow and Bonfida
3609
+ * token-vesting contract, decoded from the locker programs' account state.
3610
+ * Each row carries the schedule (start / cliff / period / end, cliff and
3611
+ * per-period amounts), the terms (`cancelable_by_sender` — funds are locked
3612
+ * against the RECIPIENT, not the locker; `transferable`, `can_topup`) and a
3613
+ * LIVE-derived view computed at request time: `locked_raw` (still locked),
3614
+ * `unlocked`, `withdrawn`, `claimable`, `status`, `next_unlock`. `summary`
3615
+ * rolls up locked / deposited totals (raw + ui + usd + % of supply), the
3616
+ * 7d / 30d forward unlock schedule, the nearest `next_unlock` and
3617
+ * `active_cancelable_by_sender`. Answers "did the team lock, how much, until
3618
+ * when, and can they pull it".
3619
+ *
3620
+ * - `*_raw` amounts are base-unit **strings** (use `BigInt()`); ui / usd / pct
3621
+ * fields are `null` when decimals or price are unknown (`token.facts_resolved`).
3622
+ * - **LP locks are NOT included** — token / vesting locks only.
3623
+ * - `status` / `program` narrow `locks[]` only; `summary` always covers all rows.
3624
+ *
3625
+ * **PRO+** — BASIC receives HTTP 403. Keyed (`msk_`) API only.
3626
+ * @param mint Token mint address (base58).
3627
+ * @example
3628
+ * ```ts
3629
+ * const { summary, locks } = await client.token.locks(mint, { status: "active" });
3630
+ * console.log(`${summary.locked_pct_of_supply}% of supply locked, ${summary.unlocking_7d_usd} USD unlocking in 7d`);
3631
+ * console.log(`${summary.active_cancelable_by_sender} active locks the locker can still cancel`);
3632
+ * ```
3633
+ */
3634
+ locks(mint: string, params?: TokenLocksParams): Promise<TokenLocksResponse>;
3635
+ /**
3636
+ * v2.25 — Cross-token feed of NEW lock / vesting contracts, newest first
3637
+ * (`GET /tokens/locks`): who just locked tokens, of what mint, how much,
3638
+ * until when — Streamflow, Jupiter Lock and Bonfida vesting. Each row is the
3639
+ * same live-derived contract as `locks()` plus `token` (symbol, decimals,
3640
+ * price, MC). Poll incrementally with `since = pagination.next_since`, page
3641
+ * back with `before = pagination.next_before`, or subscribe to the
3642
+ * **`token:locks`** WS channel (event `token:lock`) for a push the moment the
3643
+ * contract lands on-chain. `min_usd` / `min_pct_of_supply` / `status`
3644
+ * post-filter (×4 over-fetch — a page may be shorter than `limit`).
3645
+ * Backfilled Jupiter Lock rows have no on-chain creation time and are
3646
+ * excluded unless `include_estimated: true`. **LP locks are NOT included.**
3647
+ * **PRO+** — BASIC receives HTTP 403.
3648
+ * @example
3649
+ * ```ts
3650
+ * let since: string | undefined;
3651
+ * for (;;) {
3652
+ * const page = await client.token.locksFeed({ since, min_usd: 10_000 });
3653
+ * for (const l of page.locks) console.log(l.token.symbol, l.amount_usd, "until", l.end_at);
3654
+ * since = page.pagination.next_since ?? since;
3655
+ * await new Promise((r) => setTimeout(r, 30_000));
3656
+ * }
3657
+ * ```
3658
+ */
3659
+ locksFeed(params?: TokenLocksFeedParams): Promise<TokenLocksFeedResponse>;
3660
+ /**
3661
+ * v2.25 — Upcoming unlock EVENTS across all active lock / vesting contracts
3662
+ * inside a window (`GET /tokens/unlocks`; `within` 1h | 6h | 24h | 3d | 7d
3663
+ * (default) | 14d | 30d | 90d): which tokens have locked supply hitting the
3664
+ * market, how much, from whose lock. One entry per active contract = its NEXT
3665
+ * unlock event in the window (`event`: cliff | period | final | tranche) with
3666
+ * `amount_*`, plus `window_amount_*` = that contract's total release over the
3667
+ * whole window. Continuous per-second streams (Streamflow payroll) contribute
3668
+ * only their cliff / final events. `sort` soonest (default) | largest_usd |
3669
+ * largest_pct. Base-unit amounts are strings; usd / pct null when price /
3670
+ * supply is unknown. **LP locks are NOT included.** **PRO+** — BASIC receives
3671
+ * HTTP 403.
3672
+ * @example
3673
+ * ```ts
3674
+ * const { unlocks } = await client.token.unlocks({ within: "24h", sort: "largest_usd", min_usd: 50_000 });
3675
+ * for (const u of unlocks) console.log(u.token.symbol, u.event, u.amount_usd, "in", u.in_seconds, "s");
3676
+ * ```
3677
+ */
3678
+ unlocks(params?: TokenUnlocksParams): Promise<TokenUnlocksResponse>;
3679
+ /**
3680
+ * v2.25 — pump.fun creator-fee sharing on a coin (`GET /tokens/{mint}/fee-shares`):
3681
+ * who its creator fees are redirected to. Decodes the on-chain `SharingConfig`
3682
+ * (pump_fees PDA `["sharing-config", mint]`): `admin`, `status`, each
3683
+ * shareholder's `share_bps` with `is_admin` / `is_social_pda` (a SocialFeePda =
3684
+ * fees earmarked for a platform identity — platform 2 = X, `social.user_id` is
3685
+ * the platform-native numeric id, NOT the handle — with its lifetime claimed),
3686
+ * `redirected_bps` (share going to non-admin addresses), `social_bps` and
3687
+ * `is_default` (100% to the creator — a real answer: pump creates one config
3688
+ * per coin). Plus `distributions` (every `distribute_creator_fees` payout,
3689
+ * pro-rata per shareholder; per-recipient received totals; `past_recipients`
3690
+ * no longer in the split), `history` (config created / updated / reset,
3691
+ * creator transferred) and `recent_distributions`. `config.source` is
3692
+ * `"stream"` (our table — only NON-default configs are stored) or `"chain"`
3693
+ * (live PDA read; `config_error` set and `config` null if every RPC endpoint
3694
+ * failed). Amounts are quote base units (SOL lamports unless a stable-quoted
3695
+ * coin) as strings. **Event / distribution history starts 2026-08-17.**
3696
+ * **PRO+** — BASIC receives HTTP 403.
3697
+ * @param mint Token mint address (base58).
3698
+ * @example
3699
+ * ```ts
3700
+ * const fs = await client.token.feeShares(mint);
3701
+ * if (fs.config?.is_default) console.log("100% of creator fees go to the creator");
3702
+ * else for (const s of fs.config?.shareholders ?? []) console.log(s.address, s.share_pct, "%", s.social?.platform_label ?? "");
3703
+ * ```
3704
+ */
3705
+ feeShares(mint: string): Promise<TokenFeeSharesResponse>;
3706
+ /**
3707
+ * v2.25 — pump.fun fee-event feed, newest first (`GET /tokens/fee-claims`).
3708
+ * `type`s: `distribution` (creator fees paid out pro-rata to the SharingConfig
3709
+ * shareholders — fees redirected to others — with `payouts[]` per address),
3710
+ * `social_claim` (fees earmarked for a platform identity — 2 = X — claimed to
3711
+ * a `recipient` wallet), `shares_created` / `shares_updated` / `shares_reset`
3712
+ * (config changes), `creator_transferred`, and `creator_claim` (the plain
3713
+ * creator vault claim — per creator, carries NO mint; excluded unless you ask
3714
+ * for it via `type`). Default 100%-to-creator configs and zero-amount
3715
+ * distributions are not stored. Filters `type` (comma list), `mint`,
3716
+ * `recipient`, `actor`, `social_platform`, `social_user_id`, `min_sol`; poll
3717
+ * with `since = pagination.next_since` or subscribe to the
3718
+ * **`token:fee_claims`** WS channel (event `token:fee_claim`). Amounts are
3719
+ * quote base units as strings + `amount` / `amount_usd`. **History starts
3720
+ * 2026-08-17.** **PRO+** — BASIC receives HTTP 403.
3721
+ * @example
3722
+ * ```ts
3723
+ * const { events } = await client.token.feeClaims({ type: "distribution,social_claim", min_sol: 1 });
3724
+ * for (const e of events) console.log(e.type, e.mint, e.amount, e.quote, e.recipient ?? e.payouts?.length);
3725
+ * ```
3726
+ */
3727
+ feeClaims(params?: TokenFeeClaimsParams): Promise<TokenFeeClaimsResponse>;
3108
3728
  }
3109
3729
  declare class DeployerClient {
3110
3730
  private readonly _fetch;