How Skewgate works
Paired token pools provide a shared budget for long and short positions. Deposits expand that budget; the market owner allocates it between the two directions.
Current release
The public website includes an interactive protocol preview and a wallet-signed standalone coin creation flow for Robinhood Chain. Public trading contracts and an official Skewgate token address have not been configured. The executable prototype runs on a local Hardhat EVM chain using test assets. Hardhat itself is not an Ethereum L2.
The local prototype implements market creation, token issuance, paired deposits, LP redemptions, long/short positions, weighted capacity and settlement. These docs describe that implementation, not a promise of future functionality. The website does not execute trades while its public deployment configuration is absent.
Robinhood Chain deployment
Skewgate targets Robinhood Chain, an Ethereum-compatible L2. Mainnet uses chain ID 4663; testnet uses 46630. Both use ETH for gas. The official network documentation lists public RPCs and infrastructure providers. Public RPCs are rate-limited; production applications should use a dedicated provider.
The coin creation flow requests the selected network in your wallet and checks its chain ID. It never asks for a private key. You need your own compatible EVM wallet and enough ETH on that network to pay the gas shown in the wallet. Testnet ETH has no monetary value.
Choosing a chain does not deploy any contracts. The public leverage interface remains disabled until a reviewed deployment is configured. Skewgate is an independent project, not an official Robinhood product.
Launch the main coin
The coin creation flow deploys a standalone LaunchToken. It does not use the pool factory and does not require a quote asset or initial liquidity. Practice on testnet first. No mainnet deployment has been verified for Skewgate.
- Choose the network, token name, ticker, fixed total supply and recipient wallet. Verify the full recipient address independently.
- Review the summary. All supply is sent to the recipient—not necessarily the wallet paying gas. Supply uses 18 decimals. Name, symbol, total supply and initial recipient cannot be edited after deployment.
- Accept the contract-risk acknowledgment and select Review deployment. This step sends no transaction.
- Select Deploy and review the transaction in your wallet. Mainnet deployment costs real ETH. Reject the wallet prompt to cancel before broadcasting.
- Wait for confirmation. The interface checks total supply and the recipient balance, then provides the contract's explorer link. If confirmation is interrupted, inspect that transaction before trying again to avoid duplicate tokens.
The token implements transfers and approvals. It has no owner/admin role, no upgrade mechanism, no post-deployment mint function, no transfer tax and no built-in vesting, treasury split, staking, burn or revenue entitlement. The deployment recipient controls the tokens it receives; allowances let approved spenders transfer authorized amounts. Contract code is unaudited.
A matching name or ticker is not proof of identity. Any visitor can create a token. A deployment from this form does not automatically become the official Skewgate coin. Publish the reviewed chain ID and exact address through your official channels after verification. Creating a token does not automatically create liquidity or list it on an exchange.
Build verification: npm run compile creates the contract artifact; node scripts/build-web.mjs includes its ABI and bytecode for wallet deployment. The browser submits constructor arguments directly using Ethers. The contract source is contracts/LaunchToken.sol; Solidity version is 0.8.24 with optimizer enabled at 200 runs. Explorer source verification is a separate step, not automatically completed by the interface.
Release checklist
- Confirm the final ticker, total supply and recipient. These are project decisions; no tokenomics are implied by the demo.
- Test deployment and token transfers on Robinhood testnet. Review the bytecode and contract with an independent security reviewer.
- Fund your own mainnet wallet for gas. Never use a public Hardhat development account or share its private key.
- Deploy once, verify the transaction, publish verified source, and record the canonical contract address and network.
- Plan distribution, treasury custody, vesting and liquidity separately. The basic token does not enforce a distribution plan.
- Do not present the leverage prototype as production-ready. It still needs manipulation-resistant pricing, liquidation and bad-debt design, risk review, operational monitoring and independent security review before real deposits.
Project-token deployment and leveraged-market deployment are separate releases. Completing one does not complete the other.
Official contract address
The official Skewgate CA is not available yet. After launch, the confirmed Robinhood Chain address will appear in the official CA section, with a Copy official CA button. That button stays disabled until the address is published.
Follow @Skewgate on X for announcements. A market token, visitor-created token, or matching name is not automatically the official project token. Always compare the full address and chain.
Launch a market
- Connect on the configured network and obtain quote assets. The local demo provides mock quote tokens.
- Choose a token name, symbol, fixed supply, base tokens to seed, quote deposit and initial price.
- Approve the factory to transfer the quote deposit.
- Submit the launch. One transaction creates the token, oracle and pool, seeds liquidity and credits LP shares to the creator.
The launch token uses 18 decimals and has no post-construction mint function. Unseeded supply goes to the creator. The creator controls the market's capacity weight and initially controls its oracle. The registry lists the latest 20 markets in the interface. Oracle price is entered separately from the seed ratio; the contract does not force them to match.
Liquidity & LP shares
Deposit both base and quote assets. The interface derives the quote amount from the current reserve ratio. Initial shares are the integer square root of base amount multiplied by quote amount. Later deposits mint the smaller of the base-proportional and quote-proportional share amounts. Unbalanced deposits can contribute excess assets without additional shares.
Shares are recorded in the pool's internal ledger; they are not a transferable ERC-20 token. The interface requests a minimum of 99.5% of the contract's previewed share amount when submitting a deposit.
Withdraw all redeems your shares for proportional base and quote reserves. A withdrawal reverts if it would leave either direction's open interest above its remaining capacity. The interface requires at least 99.5% of each previewed output, protecting against larger reserve changes before inclusion.
Trading fees and realized trader losses increase quote reserves; trader profits reduce them. There is no guaranteed APY, separate yield claim, or yield source independent of these cash flows. A profitable trader can cause LP losses.
Weighted capacity
Total capacity = quote reserve × 80%
Long capacity = total capacity × long weight
Short capacity = total capacity × (1 − long weight)
Available capacity = max(0, side capacity − side open interest)
The default allocation is 50/50. Only the immutable pool owner can change the long weight, within 10–90%. Rebalancing reverts when existing open interest exceeds a proposed side's capacity.
Example: 100,000 quote tokens create an 80,000 notional budget. At 65/35, the long limit is 52,000 and the short limit is 28,000. A proportional deposit of another 10,000 quote tokens adds 5,200 long and 2,800 short capacity.
Changing the allocation changes trading limits, not token ownership or separate physical reserve balances. Both sides use the same quote reserve. The split cannot guarantee solvency after price movement. Realized profits may reduce reserves below the capacity needed by remaining positions.
The chamber water indicates unused capacity fraction. Particle routing follows the confirmed weight, while stirring is a visual interaction. Clicking a chamber stages a trade direction; it does not submit a transaction.
Positions, fees & settlement
| Parameter | Current contract value |
|---|---|
| Integer leverage | 1× to 10× |
| Opening fee | 0.30% of notional |
| Closing fee | 0.10% of notional |
| Shared capacity | 80% of quote reserve |
Notional equals deposited collateral multiplied by leverage. The opening fee goes into LP quote reserves and is deducted from the position's recorded collateral. Position entry uses the oracle price at execution.
Long PnL = notional × (exit price − entry price) / entry price
Short PnL = −long PnL
Requested payout = max(0, recorded collateral + PnL − closing fee)
Actual payout = min(requested payout, quote reserve + this position's collateral)
For 1,000 quote collateral at 3×, notional is 3,000, the opening fee is 9 and recorded collateral is 991. A 10% favorable move yields 300 gross PnL. After a 3 quote closing fee, requested payout is 1,288, subject to the pool's payout cap.
Only the trader can close their position. PnL shown in the interface is a gross estimate, before the closing fee and payout cap. No base tokens are borrowed or sold when opening a short: positions are cash-settled exposure against the oracle.
Contracts & permissions
| Contract | Role |
|---|---|
| ScaleFactory | Creates markets and stores creator, token, pool and oracle addresses. |
| LaunchToken | Fixed-supply ERC-20-style asset; transfers and approvals. |
| ScalePool | Holds reserves, records shares and positions, applies limits and settles payouts. |
| ScaleOracle | Stores a price controlled by its reporter. Reporter authority can be transferred. |
| MockToken | Local test asset with minting/faucet behavior; not production USDC. |
Solidity source names retain their original Scale prefix. The product brand is Skewgate. There is no upgrade proxy, liquidation keeper, pool pause switch, or pool-owner transfer function in this version.
Known limitations
- The reporter can change prices directly. There is no independent price aggregation, freshness limit, L2 sequencer check or manipulation resistance.
- No liquidation, periodic funding, insurance fund or automatic market balancing is implemented.
- A capped payout may be smaller than displayed PnL implies. Settlement order affects the reserve available to later winners.
- A depleted quote reserve with outstanding LP shares can make deposit previews divide by zero. Market recovery needs an explicit design.
- The client reads token decimals from each contract. Launch tokens and oracle prices use 18 decimals; quote amounts use the quote token’s decimals. Nonstandard and fee-on-transfer assets are not supported.
- Contract tests are functional checks, not a security audit. Public-network behavior has not been verified.
- Approvals may grant unlimited spending to the chosen contract. Review wallet prompts and revoke unused allowances through your wallet tools.
Install on your phone
Open the HTTPS website. On browsers supporting an install prompt, select Install app. On iPhone, use Safari's Share menu and Add to Home Screen. The app shell can be cached, but chain data and transactions require an online connection and a compatible wallet. Installing the app does not deploy contracts or provide a wallet.
Developer reference
Run npm install, then npm run demo for the local chain and web app. Use npm test for contract tests and npm run test:e2e for the browser transaction flow. The local signer uses publicly known development accounts; they are test accounts only.
Pool methods: previewDeposit(base, quote), addLiquidity(base, quote, minShares), previewRedeem(shares), removeLiquidity(shares, minBase, minQuote), openPosition(isLong, collateral, leverage), closePosition(id) and owner-only setCapacityWeight(longWeightBps).
Read baseReserve, quoteReserve, totalShares, sharesOf, longCapacity, shortCapacity, both open-interest values, positions and getPositionIds. Closed IDs remain in the historical ID list; their position records are cleared.
Events include LaunchCreated, LiquidityAdded, LiquidityRemoved, PositionOpened, PositionClosed, PayoutCapped and CapacityWeightUpdated. Token and price amounts in the current demo use 18 decimals; weight and fee basis points use 10,000 as the denominator.
node scripts/build-web.mjs creates the public preview bundle. It deliberately omits local RPC configuration and credentials. Deployment scripts are preparation utilities, not a production-ready integration. A live release still needs a selected network, correct asset units, wallet integration, robust price/risk mechanisms and a reviewed deployment.
Troubleshooting
Why can't I trade on the public site?
No public contract deployment is configured. The public site disables transactional controls and does not create fake balances.
Why did withdrawal or rebalancing revert?
Open positions still require the capacity being removed. Close positions or provide enough remaining liquidity before retrying.
Why isn't my pasted token a market?
Lookup reads metadata only. A market needs a factory launch and seeded pool; pasting a token cannot create one.
Why does my wallet show the wrong chain?
The wallet must match the chain ID in the deployment configuration. The app requests a network switch and verifies it before creating transaction contracts. Public deployment configuration is still absent.
Does the official Skewgate coin exist?
No official project-token address is configured here. Do not infer one from the NOVA demo market or a token with a matching name.