ST4Y
ST4Y DOCUMENTATION

WHAT ST4Y IS

Creator fees reward buyers who $ST4Y. Creator fees are manually claimed as SOL into the public reward wallet, then fund an epoch pool shared by every eligible wallet.

HOW HOLD AGE WORKS

Each inbound acquisition creates a lot with its own amount and acquisition time. Effective hold age is calculated from the lots still remaining in a wallet.

PARTIAL EXITS

If tokens leave, only that amount loses its accumulated age. Remaining lots preserve their history. Newly acquired tokens begin with fresh age.

REWARD WEIGHT

REWARD WEIGHT = sqrt(current balance) × hold-time multiplier.

wallet share = wallet reward weight / total eligible reward weight

wallet payout = wallet share × epoch reward pool

CURRENT HOLD-TIME MULTIPLIERS

0–1 MIN—

1–3 MIN—

3–5 MIN—

5–10 MIN—

10–15 MIN—

15–30 MIN—

30–60 MIN—

1H+—

HOW EPOCHS WORK

Weights freeze → eligible wallets are ranked → top reward seats are selected → shares are calculated → max wallet cap and minimum payout rules apply → qualifying SOL is paid → unpaid SOL carries forward → the epoch becomes permanent public history → the next epoch starts.

All holders stay indexed, ranked and visible. Only the top 20 eligible wallets by reward weight take a reward seat in a given epoch.

CARRIED FORWARD

Not every SOL in a pool has to be distributed. SOL stays in the public reward wallet when a wallet sits outside the reward-seat cutoff, when a share is limited by the max wallet share cap, when a calculated payout is below the minimum payout, or when no eligible wallets exist. That SOL is never redistributed inside the same epoch — it is CARRIED FORWARD and is part of the next epoch's available pool.

HOW REWARDS ARE FUNDED

Creator fees are manually claimed. SOL reaches the public reward wallet, the current pool updates, and the epoch distributes that SOL in LIVE mode. A round with zero eligible wallets is rolled forward; no winner is invented.

DRY RUN / LIVE

DRY RUN records final allocation previews and sends no SOL. LIVE waits for on-chain confirmation, stores the transaction signature, then marks a reward PAID. Only confirmed PAID rewards count as returned.

HOLDER INDEXING

After a tracking mint is configured, Railway discovers current holders, groups token accounts by owner, backfills available history, persists lots, and updates the public holder directory. Connecting a wallet only highlights its position.

PUBLIC ADDRESSES

TRACKING MINT: not configured

REWARD WALLET: not configured

ELIGIBILITY

A wallet is ELIGIBLE when it holds at least the minimum token balance (—), has reached the minimum effective hold (0 min), and is not on the excluded list (pools, burn, team, and program accounts). Other states: BUILDING AGE, BELOW MIN BALANCE, NO BALANCE, EXCLUDED.

REWARD SEATS & LIMITS

Top 20 eligible wallets take a reward seat. One wallet can receive at most 50% of an epoch pool. Payouts below — SOL are not sent. Anything blocked by these rules stays in the reward wallet and carries forward.

WORKED EXAMPLE

Pool 1.00 SOL. Wallet A: 10,000 tokens held 20 min → sqrt 100 × 2.50x = 250. Wallet B: 2,500 tokens held 1h+ → sqrt 50 × 5.00x = 250. Wallet C: 40,000 tokens bought 2 min ago → sqrt 200 × 0.25x = 50. Total 550. A and B each get ≈ 0.4545 SOL; C gets ≈ 0.0909 SOL.

Holding longer beats buying bigger late. Flipping resets the tokens that leave to zero age.

READING THE BOARD

THE ROOM shows the top 12 wallets by reward weight — hover a figure for its details. The clock and progress bar show how far the current epoch has run. LIVE RANK MOVES and the leaderboard mark ▲ climbs and ▼ drops between refreshes. YOUR SEAT shows your own wallet once connected (read-only, no signing).

FAQ

Do I need to claim? No. Payouts are sent to your wallet automatically in LIVE mode.

If I sell some, do I lose everything? No. Only the tokens that leave lose their age.

Why did my estimate change? Estimates move with every buy, sell, and aging tick until weights freeze at close.

Where is the proof? On the REWARDS page, every paid reward links to its on-chain transaction.

PAYOUT SIGNING

The public site never stores private keys or signs transactions.

Railway handles payout signing and only marks rewards paid after on-chain confirmation.

ADVANCED / WORKER API
OPEN WORKER REFERENCE +

POST /api/public/worker

Authorization: Bearer <WORKER_API_SECRET>

Body: { "action": "...", "data": { ... } }

ACTIONS

  • heartbeat
  • get_config
  • get_worker_state
  • update_worker_state
  • set_indexer_status
  • upsert_holder
  • get_holder
  • get_holders
  • get_all_holders
  • upsert_holder_lot
  • get_holder_lots
  • replace_holder_lots
  • log_activity
  • get_current_epoch
  • create_epoch
  • update_epoch
  • close_epoch
  • upsert_epoch_reward
  • get_epoch_rewards
  • mark_reward_paid
  • set_token_mint
  • get_token_mint
  • set_reward_wallet
  • update_reward_pool
  • get_excluded_wallets