Spark config

The entire app state lives in two files - settings.json and auth.json. Below is the full schema of settings.json.

Where the files live

Windows
%APPDATA%\spark\settings.json
macOS
~/Library/Application Support/spark/settings.json

The auth file (auth.json) sits in the same directory and stores the license key and device ID. You don't need to edit it by hand.

app - application behaviour

General UI and action settings.

openInBrowser
boolean
= false

Enables auto-opening of passing tokens in the browser.

openMode
"new-tab" | "current-tab"
= "new-tab"

Auto-open mode: new tab in the system browser, or current tab (requires Spark Opener).

terminal
"axiom" | "padre" | "gmgn"
= "axiom"

Terminal Spark will open the token in.

uiScale
number (75-150)
= 100

UI scale, in percent.

soundEnabled
boolean
= true

Sound notifications when a new token reaches the feed.

soundVolume
number (0-100)
= 70

Notification volume, in percent.

filters.devHold

Filter by the developer's share of supply.

devMin
number (0.1-100)
= 0.1

Minimum dev ownership.

devMax
number (0.1-100)
= 77

Maximum dev ownership.

devHoldEnabled
boolean
= true

Whether the filter is on.

filters.migration

Developer track-record filter.

migrationPct
number (5-100)
= 15

Minimum migration rate for the developer.

migrationEnabled
boolean
= true

Whether the migration filter is on.

lastTokenMigrated
boolean
= false

Require the dev's latest token to have migrated.

filters.protocols

Launchpad toggles.

showPump
boolean
= true

Show pump.fun tokens.

showMayhem
boolean
= true

Show Mayhem-mode tokens.

showBonk
boolean
= true

Show bonk.fun tokens.

filters.fees

Filter by fees on past tokens.

feesFilterEnabled
boolean
= false

Whether the filter is on.

feesFilterMode
"total" | "average" | "each"
= "total"

Calculation mode: sum / average / each.

feesFilterValue
number (SOL, ≥0)
= 1

Threshold in SOL.

feesTerminal
"axiom" | "gmgn"
= "axiom"

Where to read fee data from.

filters.funding

Filter by dev wallet funding.

fundingEnabled
boolean
= false

Whether the filter is on.

minFundingAmount
number (SOL, ≥0)
= 0

Minimum SOL. 0 = disabled.

maxFundingAmount
number (SOL, ≥0)
= 0

Maximum SOL. 0 = no limit.

maxFundingAge
number (hours, ≥0)
= 0

Maximum age of the funding tx in hours.

filters.community

X/Twitter community filter.

communityEnabled
boolean
= false

Whether the filter is on.

onlyCommunity
boolean
= false

Show only tokens with an X community.

minCommunityMembers
number (≥0)
= 0

Minimum members.

maxCommunityMembers
number (≥0)
= 0

Maximum members. 0 = no limit.

minCreatorFollowers
number (≥0)
= 0

Minimum creator followers.

maxCreatorFollowers
number (≥0)
= 0

Maximum creator followers.

maxCommunityAge
number (hours, ≥0)
= 0

Maximum community age in hours. 0 = no limit.

maxCreatorAge
number (hours, ≥0)
= 0

Maximum creator account age in hours. 0 = no limit.

labels - custom labels

Label dictionaries for wallets and X creators.

labels.wallets
{ [address]: string (≤10 chars) }
= {}

Address → tag dictionary for developer wallets.

labels.creators
{ [screenName]: { label, color, screenName } }
= {}

X community creator labels with colour and caption.

blacklist

Developers and creators whose tokens are always hidden.

blacklist.wallets
string[]
= []

Dev wallet addresses whose tokens are never shown.

blacklist.creators
{ [screenName]: displayName }
= {}

X creators whose tokens are always hidden.

whitelist

Developers and creators whose tokens bypass all filters.

whitelist.wallets
string[]
= []

Dev wallet addresses. Their tokens always reach the feed.

whitelist.creators
{ [screenName]: displayName }
= {}

X creators whose tokens always bypass community filters.

Ready-to-use presets

Three configurations that are easy to start with. Copy the JSON and import it into the app.

Conservative

Strict filtering: reliable devs with proven migration history, limited Dev Hold, serious communities.

Aggressive

Wide net: only Dev Hold and protocols - everything else off. More tokens, more manual selection.

Community

X-community tokens only - minimum 500 members and 100 followers on the creator.

Export & import

Export to file

Settings → Config → Export to File. Saves the current configuration as a JSON file.

Copy to clipboard

Quick way to share a preset - the JSON is copied to the clipboard.

Import

Load a file back - filters, labels and lists apply immediately.

AI Helper

Copies a ChatGPT prompt that helps you assemble a correct JSON tailored to your strategy.