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

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