System Overview
Follow issuance, migration, spot trading, and short selling to understand each module’s responsibilities and Token/USDC flows.
The Business Problem the Protocol Addresses
BigShort connects a Token's early price discovery with subsequent market trading: during issuance, Factory manages a virtual-reserve curve; once the curve inventory is sold out, funds and reserved Token automatically migrate to a standard Uniswap V2 Pair. Each migrated market has an independent Short Engine that uses a fixed Token inventory to support borrowing and selling, followed by buying back and repaying.
These shorts actually borrow and sell Token into Pair and must buy Token back when exiting. They are not virtual positions settling only an index-price difference. Pool depth and inventory therefore directly affect execution.
The Complete Business Flow
| Stage | User action | Protocol action | Core state |
|---|---|---|---|
| Creation | Submit Token information, tax settings, and creation parameters | Create the Token and related configuration using a Launch Profile snapshot | The Token enters the Bonding stage |
| Internal market | Buy with native USDC or sell Token | Quote using virtual reserves; update actual funds and sale inventory | Virtual reserves and actual reserves are accounted for in sync |
| Curve completion | Buy the remaining inventory available for sale | Within the same transaction, fund the Pair bound at creation and deploy / initialize the Engine | On success, enter Migrated; on failure, revert the entire transaction |
| External spot market | Buy and sell through external routers | A standard V2 Pair executes swaps; Tax Token deducts tax according to the transfer path | Actual Pair reserves determine the spot price |
| Short selling | Deposit collateral and specify the notional principal | The Engine borrows Token and sells it, recording Token debt, margin, and funding-fee shares | Each user may have at most one active position in each Engine |
| Exit / liquidation | Close a position, partially close it, or liquidate with authorization | Repurchase debt Token and settle user funds, bad debt, and Legacy | Return inventory and update all liability buckets |
Module Responsibilities
| Module | Responsibilities | Scope |
|---|---|---|
| Factory | Token creation, internal-market trading, automatic migration, management roles, and configuration registration | Shared across multiple markets |
| Profile Registry | Register and validate Token / Curve / Engine / Venue configurations and combine them into a Launch Profile | Shared; configurations are registered by appending |
| Token | ERC-20 balances, transfer rules by stage, and optional buy/sell taxes | One per market |
| Tax Processor | Processes transaction taxes for this Token. | One per Tax Token; ordinary Token have no such module |
| Short Engine | Lending inventory, positions, funding fees, liquidation, Legacy, and revenue liabilities | One clone per migrated market |
| Risk Oracle | Cumulative price observations for each Engine and TWAP-confirmed capacity caps | A shared contract for the Engine family, with state isolated by Engine |
| Quoter | Curve quotes, risk previews, and the maximum executable short size under lending constraints | Read-only helper module |
| Standard V2 Pair / Router | Actual external spot swaps and liquidity reserves | The configured external trading venue |
| Engine Event Emitter | Emit standardized Engine / Position state snapshot events | Shared component; the event-emitting address remains the Engine |
A market's lending budget is not a platform-wide shared lending pool. Engine instances, position debt, bad debt, and inventory available for borrowing are accounted for separately for different Token.
Two Assets and Three Distinct Amounts
- Base asset Token: Uses 18 decimal places; it can be traded on spot markets and constitutes the lending principal of the Short Engine.
- Quote asset USDC: In this Arc adaptation, native funds are accounted for with 18 decimal places; ERC-20 / V2 Pair interfaces use 6 decimal places.
- Notional principal, actual sale proceeds, and margin: These are three different business values and must not all be labeled “position amount.”
For detailed definitions, see Precision and Mathematical Conventions , and Position Lifecycle.