Tokenized equities trade 24/7. Their references freeze. We make that visible, and executable. LIVE on afterhourequity.xyz
AfterHours is a multi-tenant, account-gated on-chain equity-intelligence + autonomous-execution platform for Solana. While the NYSE closes, the on-chain copies of the same stocks (xStocks/Backed tokenized equities, AAPLx, NVDAx, MSFTx…) keep trading. AfterHours continuously maps the live on-chain price of every tokenized equity against its frozen reference, surfaces the dislocations (the "gap"), and lets each user instruct their own paper (or real, through the vault) strategy against it. Every real fill is signed, capped, and visible with its Solscan link.
Market data and paper exploration are open: you can browse the live feed, open any opportunity, inspect the gap, fair-value adjustment, costs, net edge and the agent decision, and paper trade on the BNB and Bitget surfaces without an account. An account or connected wallet is only required for account-specific and value-moving actions (on this Solana surface: strategies, the vault, and the live rail).
Per-user autonomous books. Every paper account, strategy, position, decision and alert is scoped to your user id. The server-authoritative 60s loop ticks each user's book independently, your instruction drives your book, never a shared global ledger.
Your words are load-bearing: the rule text is parsed into real strategy params (direction, symbols, minGapPct, topN) that the engine honors, not a decorative label.
| Source | What it gives | Status |
|---|---|---|
| Jupiter Price v3 | Official xStocks channel: last-swap USD + official xStocks print + rebase multiplier schedule + pool liquidity, primary on-chain price for the gap engine | LIVE |
| GeckoTerminal DEX index | Fallback on-chain price + 24h volume + reserve (by mint) | LIVE |
| TwelveData | NYSE reference close (AAPL by quota-safe config; more with a bigger key) | LIVE |
| PreStocks / Tessera | Cross-issuer dislocations (SPACEX priced 178% apart across issuers, verified) | LIVE |
The gap = on-chain price − reference. When the market is closed the reference is stale, so the gap is the real signal.
The winner-shaped capital-utilization product: deposit SOL → arm → while the NYSE reference is frozen the vault buys the deepest discounted xStock (hard-capped ≈$0.25/fill, curated mint allowlist, ≥50bps real gap required, it refuses to buy blind if references are down) → at the open it unwinds to SOL. A 60s keeper runs the state machine (idle → armed → holding → unwind) with no-churn, kill-switch, and min-volume guards.
| Event | Tx | Status |
|---|---|---|
| Test fill #1 · 0.0016 SOL → AAPLx | 62HV8t3F… | FINALIZED |
| Test fill #2 · through the app API | 2gh4uPpC… | CONFIRMED |
| Vault buy · AAPLx @ gap −0.16% | 8g18g7V3… | FINALIZED |
| Wallet | 7JL8s63F5WPXMWmbPFKN7Wn2VrsyitA4GHCWxqb4RLYg, holds 0.00197113 AAPLx | ON-CHAIN |
| Dividend/rebase accrual | Detected on-chain (xStocks are rebasing assets), honest label, never overclaims source | WIRED |
Plain-English rules (e.g. "rotate to discounted tokenized equities") drive an honest paper ledger, integer micro-units, real fees + slippage, a cost-basis guard that makes phantom profit structurally impossible. 60s server-authoritative loop ticks each user's book independently; every decision logged, dust-filtered alerts.
GET /api/v3/live/info, wallet address + SOL balance + RPC (honest configured:false when no key).POST /api/v3/live/probe, signs + broadcasts a real 2,000-lamport self-transfer to prove the rail (returns the tx).POST /api/v3/live/swap, SOL → curated xStock, hard-capped ≈$0.60/order + mint allowlist + rate-limited; routes via Jupiter /swap/v1 on api.jup.ag. Never a fabricated fill.PRIVY_APP_ID is set.public/ landing (/) · product dashboard (/app) · docs (/docs)
src/ server.js (Express · auth-gated routes) · adapters/ (xstocks, twelvedata, prestocks, tessera, pyth)
services/vault.js (state machine + keeper + accrual) · v2.js (paper engine, per-user)
services/loop.js (multi-tenant 60s autonomous loop) · strategy-parse.js · auth.js · store.js + vault.db
scripts/ micro-swap.mjs (reusable "little-by-little" tester) · jupiter-swap.mjs · wallet-auth-test.mjs
.env (gitignored); API keys redacted from every surfaced error (a leak was caught live and fixed, keys were appearing in public 429 messages).| Capability | Status |
|---|---|
| Live site on custom domain | LIVE |
| Live gap + dislocations | VERIFIED |
| Account gating (wallet / handle / Privy) | VERIFIED |
| Autonomous per-user paper strategy | VERIFIED |
| Wallet-confirmed strategy add | VERIFIED |
| Real swaps land on mainnet | VERIFIED |