bitpro가 원문에서 글자만 모은 내용이에요. 표·그림·수식은 빠지거나 깨질 수 있어요. 전체 35쪽 중 34쪽
taking/how-it-works
How the wstO exchange rate is set, what can change it, and what the vault's controls can and cannot do.
The vault holds O and issues wstO shares. Each wstO is a claim on an equal fraction of the O in the vault, so the value of your wstO follows the vault's O balance rather than a fixed 1:1 peg. wstO is backed by O, not by a USD value: the vault does not guarantee the price of O, and wstO can trade below its redemption value on external markets.
## Exchange rate
```text theme={null}
exchange rate = O held by the vault / total wstO supply
```
| Action | You receive |
| - | - |
| Deposit O | `O deposited / exchange rate` wstO, rounded down |
| Redeem wstO | `wstO redeemed × exchange rate` O, rounded down |
Both actions use the exchange rate from before your transaction. Rounding always favors the vault, and the remainder stays in it for every holder. The loss from rounding is less than the value of one smallest wstO unit per deposit and at most one smallest O unit per redemption.
For example, if the vault holds 1,000 O and 1,000 wstO exist, the rate is 1 O per wstO, and a deposit of 100 O mints 100 wstO.
## What changes the rate
The exchange rate can never decrease. It rises only when:
1. someone sends O directly to the vault without depositing;
2. a holder burns their own wstO, which destroys it for nothing in return;
3. rounding remainders from deposits and redemptions accumulate.
Deposits and redemptions at the current rate do not change it beyond rounding. The vault has no strategy, reward source, or external integration.
<Warning>
Do not send O directly to the vault address. A direct transfer mints no wstO, raises the rate for every holder, and cannot be recovered.
</Warning>
## Permanently locked shares
When each vault was created, part of its first wstO was minted to a Permanent Share Sink. The sink is a contract with no functions, so those shares can never move or be redeemed. They always count toward the total supply, which makes the exchange rate harder to manipulate while supply is small.
## Deposit pause
Each vault reads one switch from its Protocol Config contract: whether new deposits are paused.
* The Guardian can pause new deposits.
* Only governance can resume deposits, through a Timelock contract that enforces a public delay.
* A pause affects deposits only. Redemptions, transfers, burns, and permit signatures keep working.
The vault page shows **Live** while deposits are open and **Deposits paused** otherwise.
## What no one can do
No role can withdraw O from the vault, mint wstO, burn or move another holder's wstO, change balances, block redemptions or transfers, or upgrade the contracts. See [Governance boundary](/staking/security#governance-boundary) for what each role can do.
The contracts are not upgradeable. If a vault ever had to change, a new vault would be deployed and holders would move by redeeming from the old one, which keeps working.
# Integrate wstO
Source: https://docs.o1.exchange/staking/integration
Call the wstO vault directly: functions, approvals, permit, quoting, receivers, errors, and events.
This page is for wallets, protocols, and apps that call the wstO vault directly. Addresses are listed on [Contracts](/staking/contracts).
<Warning>
**wstO is not ERC-4626.** It has no `mint`, `withdraw`, or `max*` functions, and `deposit` and `redeem` take extra slippage and deadline arguments. Do not use a generic ERC-4626 adapter.
</Warning>
## Functions
All amounts are in base units, and deadlines are Unix timestamps in seconds.
```solidity theme={null}
// State-changing (besides standard ERC-20 and EIP-2612 permit)
function deposit(uint256 assets, address receiver, uint256 minShares, uint256 deadline) returns (uint256 shares);
function redeem(uint256 shares, address receiver, address owner, uint256 minAssets, uint256 deadline) returns (uint256 assets);
function burn(uint256 shares);
// Read-only
function previewDeposit(uint256 assets) view returns (uint256);
function previewRedeem(uint256 shares) view returns (uint256);
function convertToShares(uint256 assets) view returns (uint256);
function convertToAssets(uint256 shares) view returns (uint256);
function exchangeRate() view returns (uint256); // O per wstO, scaled by 1e18
function totalAssets() view returns (uint256);
function asset() view returns (address);
function shareSink() view returns (address);
function config() view returns (address);
function initialized() view returns (bool);
```
Previews and conversions revert instead of falling back to 1:1 when the vault holds no O or has no supply. To check whether deposits are open, call `depositsPaused()` on the Protocol Config returned by `config()`.
## Approvals
| Action | Approval |
| - | - |
| Deposit O | `O.approve(vault, amount)` first. There is no deposit with permit |
| Redeem your own wstO | None |
| Redeem another holder's wstO | A wstO allowance from the owner, through `approve` or `permit` |
Permit approves wstO only, never the underlying O. Read the EIP-712 domain with `eip712Domain()` instead of hardcoding it. On every deployed vault it is `{ name: "Wrapped Staked O", version: "1", chainId, verifyingContract: vault }`.
## Quote, then protect
1. Take `minShares` from `previewDeposit`, or `minAssets` from `previewRedeem`, less the user's slippage tolerance.
2. Quote again right before submitting. If a preview returns 0, block submission, because the call would revert.
3. Before a deposit, compare `previewRedeem(previewDeposit(assets))` with `assets`. `minShares` cannot show the O lost to rounding, and this check can.
4. Simulate the transaction and decode the custom errors below.
There are no fees. The only loss is rounding down, which stays in the vault: less than the value of one share base unit per deposit, and at most one O base unit per redemption. Because the exchange rate never decreases, a fresh `previewRedeem` result is a safe `minAssets`.
## Receivers to reject
The vault rejects `address(0)`, `0x…01`, `0x…02`, and the vault itself as the receiver of `deposit` and `redeem`. It still accepts some destinations from which nothing can ever move. Integrations must reject:
* the Permanent Share Sink as the receiver of `redeem`, because the O would leave the vault for an address that can never move it;
* the O token contract as any receiver;
* a plain wstO `transfer` to the vault address.
Send shares to the Permanent Share Sink only when the intent is to lock them permanently.
## Do not
* Do not send O directly to the vault. It mints no wstO, raises the rate for every holder, and cannot be recovered.
* Do not expose `burn` in a user interface. It destroys wstO for nothing in return.
* Do not use `exchangeRate()` as a price oracle. Donations can raise it at any time.
## Errors
| Error | Cause |
| - | - |
| `DepositsPaused()` | Deposits are paused in the Protocol Config |
| `DeadlineExpired()` | `block.timestamp` is later than `deadline` |
| `SlippageExceeded(uint256 minimum, uint256 actual)` | The result is below `minShares` or `minAssets` |
| `InvalidAddress()` | The receiver is rejected |
| `InvalidAmount()` | An amount or minimum is zero, or `owner` is the zero address |
| `NotInitialized()` | The vault is not initialized |
| `InsolventVault()` | The vault holds no O or has no wstO supply, so no rate can be computed |
| `UnexpectedAssetAmount()` | The O balance did not change by exactly the expected amount |
## Events
| Contract | Event |
| - | - |
| Vault | `Deposit(address indexed caller, address indexed receiver, uint256 assets, uint256 shares)` |
| Vault | `Redeem(address indexed caller, address indexed receiver, address indexed owner, uint256 assets, uint256 shares)` |
| Vault | `SharesBurned(address indexed burner, uint256 shares)` |
| Vault | `Initialized(address indexed receiver, uint256 seedAssets, uint256 donatedAssets, uint256 sinkShares)` |
| Protocol Config | `DepositsPauseChanged(bool paused, address indexed caller)` |
| Protocol Config | `GuardianUpdated(address indexed oldGuardian, address indexed newGuardian)` |
Scan history in bounded windows starting from the vault creation block on [Contracts](/staking/contracts#vault-parameters). Public RPCs limit `eth_getLogs` ranges, for example to 500 blocks on Base and 50,000 blocks on Robinhood Chain, and are not archive nodes.
# O Staking
Source: https://docs.o1.exchange/staking/introduction
Deposit O to receive wstO, redeem it for O at any time, and move O between Base and Robinhood Chain.
O Staking is the vault for the o1 token, \$O. You deposit O and receive wstO (Wrapped Staked O), a standard ERC-20 share of the O held by the vault. You can redeem wstO for O at any time at the current exchange rate.
Open the app at [staking.o1.exchange](https://staking.o1.exchange).
<Warning>
**wstO has no built-in yield.** The vault does not lend, trade, or stake O anywhere else, and it pays no rewards or interest. The exchange rate rises only when O is added to the vault or wstO is burned, so it usually stays constant.
</Warning>
## Key properties
<CardGroup>
<Card title="No fees" icon="percent">
Deposits and redemptions charge no fee. Apart from network gas, the only cost is rounding down, and the remainder stays in the vault.
</Card>
<Card title="Redeem at any time" icon="unlock">
There is no lockup or cooldown. A deposit pause never stops redemptions, transfers, or burns.
</Card>
<Card title="Standard ERC-20 share" icon="coins">
wstO does not rebase: your balance changes only when you deposit, redeem, or transfer. It supports EIP-2612 permit.
</Card>
<Card title="Fixed contracts" icon="lock">
The vault cannot be upgraded, and no role can move deposited O, mint wstO, or change balances.
</Card>
</CardGroup>
## Supported networks
| Network | O | wstO vault |
| - | - | - |
| Base (`8453`) | Native O | [`0x80C6BAE89B636c6Ee96FE8F198c0D6926C2C91df`](https://basescan.org/address/0x80C6BAE89B636c6Ee96FE8F198c0D6926C2C91df) |
| Robinhood Chain (`4663`) | O bridged from Base through LayerZero | [`0xE92bD1C05E4E308792003C8205127A6FA662b4D4`](https://robinhoodchain.blockscout.com/address/0xE92bD1C05E4E308792003C8205127A6FA662b4D4) |
Each network has its own vault, exchange rate, and wstO supply. wstO on one network cannot be redeemed or bridged to the other. To move O between networks, use the [O bridge](/staking/bridge).
<Note>
O Staking is separate from [Launchpad staking vaults](/launchpad/staking/overview), which let anyone create fixed-schedule reward programs for other tokens.
</Note>
## Explore the documentation
<CardGroup>
<Card title="How wstO works" icon="scale-balanced" href="/staking/how-it-works">
Understand the exchange rate, locked shares, and deposit pause.
</Card>
<Card title="Deposit and redeem" icon="arrow-right-arrow-left" href="/staking/deposit-and-redeem">
Deposit O, redeem wstO, and read the vault page.
</Card>
<Card title="Bridge O" icon="bridge" href="/staking/bridge">
Move O between Base and Robinhood Chain.
</Card>
<Card title="Security and audit" icon="shield-check" href="/staking/security">
Review the audit, safety properties, and governance boundary.
</Card>
<Card title="Contracts" icon="file-contract" href="/staking/contracts">
Find every address with dated onchain readback.
</Card>
<Card title="Integrate wstO" icon="code" href="/staking/integration">
Call the vault directly from your own contracts or apps.
</Card>
</CardGroup>
# Security and audit
Source: https://docs.o1.exchange/staking/security
The wstO vault audit, core safety properties, governance boundary, and verification guidance.
The wstO vault is designed around fully backed shares, instant redemption, and a single administrative switch that can only pause new deposits.
## Vault audit
<CardGroup>
<Card title="XORS wstO vault audit" icon="file-shield">
Review of the wstO vault, governance, and deployment contracts dated October 2, 2026.
</Card>
</CardGroup>
## Audit results
The report covers commit `5d14be4` and includes its findings. The contracts were not changed after the review, so the vaults deployed on Base and Robinhood Chain use the reviewed code. See [Contracts](/staking/contracts) for deployed addresses. The web app was not part of the review, and no formal verification has been performed.
## Core safety properties
* the vault has no upgrade, rescue, administrative mint, or balance-seizure path, and no role can withdraw deposited O;
* every wstO is backed by the O the vault holds, and redemptions pay out from that balance at the current exchange rate;
* deposits and redemptions charge no fee, and rounding always favors the vault;
* the exchange rate can never decrease;
* redemptions, transfers, burns, and permit signatures cannot be paused;
* deposits and redemptions check the O actually transferred, so a transfer fee or rebase reverts the transaction;
* shares minted to the Permanent Share Sink at creation can never move;
* private keys and transaction signing remain in the user's wallet.
## Governance boundary
Each vault's Protocol Config has a Guardian and a governance address set to a Timelock contract. The Guardian can only pause new deposits. After the Timelock delay, governance can pause or resume deposits, replace the Guardian, and change the Timelock's own delay and roles. Governance actions are scheduled publicly on the Timelock before they can execute.
Neither the Guardian nor governance can move O, mint or burn wstO, change balances, or upgrade the contracts. The bootstrap authority that bound each vault to its Protocol Config was cleared permanently when the vault was created.
Timelock and Protocol Config addresses are listed in [Contracts](/staking/contracts).
## What users and integrators should verify
* use the vault address for the selected network from [Contracts](/staking/contracts);
* confirm the wallet is connected to the intended network;
* check that deposits are open, and review the exchange rate and minimum received before depositing;
* deposit only through the vault's deposit function, never by sending O directly to the vault;
* for integrations, quote again right before submitting and follow the [receiver rules](/staking/integration#receivers-to-reject);
* review the network, contract, amounts, and wallet transaction details before signing.
To report a potential issue, follow the [o1 Exchange bug bounty guidance](/community/bug-bounty).
# Token Contract Audits
Source: https://docs.o1.exchange/token/audits
Security audit reports for the $O token and related smart contracts
XORS has independently reviewed the \$O token and related smart contracts. View the reports below for the audit findings and resolution status.
## Audit Reports
<CardGroup>
<Card title="XORS token and distribution audit" icon="file-shield" href="https://drive.google.com/file/d/1agKQXHSJWx3mMQDxoqOgGlNR-ydFTz2H/view?usp=sharing">
Independent review of the \$O token and related distribution contracts dated May 2, 2026.
</Card>
<Card title="XORS bridge audit" icon="file-shield" href="https://drive.google.com/file/d/18Qy_Lncykw6zQq0XBvvVML52XRGNMxuF/view?usp=sharing">
Independent review of the \$O token bridge between Base and BSC dated June 11, 2026.
</Card>
</CardGroup>
For Launchpad and Launchpad staking reports, see [Launchpad security and audit](/launchpad/security). For the wstO vault report, see [O Staking security and audit](/staking/security).
# Community
Source: https://docs.o1.exchange/token/community
How o1 Terminal rewards authentic traders through the Season 1 airdrop
## Season 1 Airdrop
The community allocation rewards authentic o1 Terminal traders through a carefully designed airdrop mechanism. While the exact algorithm is not open-sourced or publicly disclosed, it was built to ensure that genuine users are well rewarded for their contributions to the platform.
The airdrop allocation for each user is determined by a sophisticated, nonlinear function that factors in:
* **S1.1 and S1.2 Points** — Core trading points earned across both phases of Season 1.
* **Net Fees Paid** — The actual fees paid to o1 Terminal after accounting for each user's individual cashback rate, ensuring that users who contribute more to platform revenue are proportionally rewarded.
* **Referrals** — The number of users referred to o1 Terminal, rewarding those who helped grow the community.
* **Trading Patterns** — Variety of token mints traded, token holding periods, user retention on the platform, and other behavioral signals used to differentiate real traders from farmers.
* **Social Impact** — Contributions and engagement on X (Twitter) and Discord, including Discord Maxi roles and community participation.
These inputs are combined in a way that disproportionately rewards consistent, organic platform usage over gameable single-dimension metrics. The goal is to distribute \$O to the users who genuinely contributed to o1 Terminal's growth during Season 1.
# Disclosure
Source: https://docs.o1.exchange/token/disclosure
o1 Terminal / $O Token – Disclosure
Writing as of June 2, 2026
The following disclosure is intended to provide an overview of o1 Terminal and the \$O token.
It does not purport to be complete or to contain all information that a recipient may consider relevant in making a decision regarding the token.
Nothing in this disclosure should be viewed as a statement about the future of o1 Terminal or the financial performance of the \$O token.
## 1. Project Information
o1 Terminal is the Onchain Everything Exchange — a non-custodial, lightning-fast trading platform that delivers institutional-grade execution for spot trading, perpetual futures, and prediction markets across Base, Solana, and BNB Chain.
The platform aggregates liquidity from 100+ sources, offers sub-block latency execution, advanced order types (limit, TWAP, stops, sniping), real-time analytics, TradingView integration, and quantitative/algorithmic trading tools.
o1 Terminal has achieved \$180M+ in spot trading volume, 3M+ transactions, and 400,000+ user signups within 7 months of beta, reaching top-3 revenue protocols on Base.
### Executive Officers and Key Personnel
**Company:** MoonX Foundation
PO Box 144, 3119 9 Forum Lane,
Camana Bay, George Town,
Grand Cayman, KY1-9006, Cayman Islands
**Founders and Executive Officers:**
* Claudio Romildo Pezzia, Director
* Jerry Pan, Founder
### Backers and Third-Party Contributors
o1 Terminal raised a \$4.8M seed round from the following institutional investors:
* Coinbase Ventures
* a16z (Andreessen Horowitz)
* AllianceDAO
* The House Fund
* Amber Group
* 30+ other select angels and institutional investors
No third-party development shops or external contractors materially contributed to the development of the protocol or the token.
## 2. Token Sale Information
o1 Terminal has not conducted and does not plan to conduct a public token sale.
\$O token distribution is driven entirely by usage (trading points program) and ecosystem growth.
There is no public offering, presale, or crowdsale of \$O tokens.
## 3. Token and Token Distribution Information
### Token Overview
\$O is the native utility token of the o1 Terminal platform.
It is an ERC-20 token deployed on the Base blockchain (L2 on Ethereum).
\$O provides the following utility to holders:
* **Tiered Trading Fee Discounts:**
Holding or staking \$O reduces trading fees in real time across all markets on o1 Terminal and swap.o1.exchange DEX Aggregator; discounts scale with amount held/staked.
* **Early Access to Alpha Features:**
Priority access to quantitative trading tools, strategy automation, advanced order types, and upcoming AI/alpha-generation features before public release.
* **Limited Badge Claims & Revenue Sharing Eligibility:**
Users who stake at least a required amount of \$O for a required period may become eligible to claim limited ecosystem badges. Badge holders qualify to apply fo프로젝트로 돌아가기