Skip to main content

What EPT Does For You

EPT is your claim on exchange points earned during the epoch. Deposit USDC, get EPT. Use the flash loop to multiply your exposure: deposit, sell the ST you receive, re-deposit the proceeds, repeat. EPT is an ERC20 with a built-in credit accrual system. Each epoch creates a new EPT per exchange per strategy, e.g., EPT-Pacifica-E007 for Pacifica points from Epoch 7. Think of it as a pre-market futures contract on exchange loyalty points. Multi-EPT: If a strategy earns points on multiple exchanges, you receive a separate EPT for each. A $100 deposit into Pacifica-Extended Funding Arb gives you 1 ST + 99.50 EPT_Pacifica + 99.50 EPT_Extended. EPT is deposit-only. No secondary market. You get it by depositing USDC, and the flash loop is how you stack more of it.

The Credit System

The credit formula: credits=balance×creditRate×Δt\text{credits} = \text{balance} \times \text{creditRate} \times \Delta t Your credits grow continuously while you hold EPT. The rate, creditRate, is set by ArcX’s Credits Oracle and reflects strategy activity:
Strategy TypeWhat creditRate reflectsWhy
Funding arbCurrent open interest (OI)More OI = more exchange points
Market makingTrading volume throughputMore volume = more activity points
Why variable rate? If the strategy was idle for 3 weeks then ramped up for 5 weeks, a constant rate would distribute credits equally across the epoch. Variable creditRate concentrates credit accrual during high-activity periods, aligning with when points were actually generated. Fallback: If the Credits Oracle goes down, credits accrue at the last known rate. If creditRate were constant, it cancels out in the final ratio, as proven in Credit Mathematics.

Credit Checkpointing

Every time EPT moves (transfer, mint), the contract checkpoints both sender and receiver:
  1. Compute sender’s accrued credits since last checkpoint
  2. Lock those credits to the sender
  3. Do the same for the receiver
  4. Execute the transfer
Lazy evaluation. Same result as continuous tracking, fraction of the gas.
ActionEffect on your credits
Hold for the full epochMaximum credit accrual
Deposit mid-epochCredits start from your deposit time
Transfer EPT to another walletCredits locked at checkpoint. You keep what you earned.
Claim points after finalizationCredits settled, gross points computed, redemption fee deducted, net PointsTokens minted. alreadyClaimed updated to prevent double-claiming.
Hold through multiple epochsEach epoch has its own EPT contract. Credits do not carry over. You must claim from each epoch separately.

Worked Example: Two Depositors at Different Times

This example uses a simplified 8-week epoch. The math works identically for any epoch length.
Alice deposits $100 on Day 0. Bob deposits $100 on Day 3 (mid-epoch). CreditRate = 10 (constant for simplicity). Day 0 onwards: Alice holds 100 EPT → accruing credits immediately Day 3: Bob deposits $100 → receives 100 EPT → starts accruing credits Full epoch (604,800 seconds):
Duration (seconds)CreditsSharePoints (of 1,000)
Alice604,800 (full epoch)604,800,00063.6%636
Bob345,600 (Day 3 onward)345,600,00036.4%364
Alice gets more because she deposited earlier and accrued credits for 3 extra days. The credit system correctly weights amount × duration. For variable creditRate examples, see Credit Mathematics.

The Flash Loop: Leveraged EPT

The flash loop multiplies your EPT exposure: deposit USDC, sell the resulting ST on the ArcX AMM, re-deposit the proceeds, repeat. After 3 iterations with a 10% ST discount, $100 produces ~270 EPT at ~$0.10 each. See Protocol Overview for step-by-step mechanics and EPT Pricing for the convergence formula. All EPT from the flash loop accrues credits from the moment of each deposit. Earlier loop iterations earn more credits than later ones (more time remaining). So run the flash loop early.

Claiming Points

After finalization, the Final Points Oracle reports totalPoints. The contract computes: pointsPerCredit=totalPointstotalCredits\text{pointsPerCredit} = \frac{\text{totalPoints}}{\text{totalCredits}} yourPoints=yourCredits×pointsPerCreditalreadyClaimed\text{yourPoints} = \text{yourCredits} \times \text{pointsPerCredit} - \text{alreadyClaimed} When you call claimPoints(): credits settled → gross PointsTokens computed → redemption fee deducted → net PointsTokens minted to your wallet. No expiry. Claim incrementally; the contract tracks what you’ve already received.

What Determines Your EPT’s Value

Since EPT has no secondary market, its value is determined by the implied cost through the flash loop:
FactorEffectMechanism
ST discount on ArcX AMM↑ discount → ↓ EPT costDeeper ST discounts mean cheaper EPT via the flash loop
Expected creditRate↑ activity → ↑ EPT valueMore active strategy = more credits per EPT
Time remaining↓ time left → ↓ EPT valueLess credits to earn for new deposits
Expected points value↑ TGE expectations → ↑ EPT demandMore deposits → more flash loops → more ST selling
Minting parityCaps combined ST+EPT at $1EPT_implied_cost = 1 - X/R
The minting parity equation: EPTfair=1XR\text{EPT}_\text{fair} = 1 - \frac{X}{R} Where X = ST market price and R = exchange rate. Full derivation in EPT Pricing. The one-way arb: If the combined value of ST + EPT from a $1 deposit exceeds $1, anyone can deposit and sell both at a profit. This caps the upside. But there is no early redemption to correct underpricing. See EPT Pricing for the full analysis.
  • Depositing late: You accrue fewer credits than early depositors. Same capital, fewer points per dollar.
  • creditRate drops: Strategy goes idle → credits accrue slower.
  • Points are worthless: No TGE or negligible airdrop → EPT value approaches zero.
  • Flash loop at bad timing: If ST discount widens after your loop, later depositors get EPT cheaper.