Ecosystem
What is live on Frost today.
Services
Section titled “Services”The traded universe behind FrostSwap is the RWA v2 compliance suite — a
chain-global FrostKycRegistry of investor records, and per-asset
FrostRwaTokenV2 tokens that make exactly one compliance call per transfer
against the issuer’s rules — and a Uniswap v3 FUSD hub: a Frost factory
shim, the SwapRouter, the position manager and one FUSD/<token> pool per
asset, with a WROST/FUSD bridge pool. The pools’ TWAP is the price oracle
behind the suite’s FUSD-denominated transfer caps. Post-quantum accounts interact with all of it as
ordinary addresses, because from a contract’s point of view that is exactly
what they are. The contracts are source-verified on Frostscan.
Wallets
Section titled “Wallets”| Wallet | Platform | Keys |
|---|---|---|
| FrostWallet | iOS and macOS | ML-DSA-65 signing key generated in, and never leaving, the Secure Enclave. |
| Browser-extension wallet | Manifest V3 browser extension | ML-DSA-65 smart accounts. |
Contracts you can rely on
Section titled “Contracts you can rely on”Present from genesis at fixed addresses, so tooling that hardcodes them works unmodified.
| Contract | Address |
|---|---|
| CREATE2 factory (EIP-7997) | 0x4e59b44847b379578588920cA78FbF26c0B4956C |
| Multicall3 | 0xca11bde05977b3631167028862be2a173976ca11 |
| Frame expiry verifier | 0x0000000000000000000000000000000000008141 |
One address in the same range is not a predeploy: the frame entry point,
0x00000000000000000000000000000000000000aa, is a system address with no code.
It is the caller that frame execution presents to an account, which is how an
account contract tells a frame invocation from an ordinary call.
Full list with descriptions: Predeploys.
The precompiles — including the ML-DSA verifiers at
0x14 and 0x15 — are available to any contract.
Tooling
Section titled “Tooling”| Tool | Language | Purpose |
|---|---|---|
| viem-8141 | TypeScript | Frame transactions and ML-DSA signing for viem. Browser-capable. |
| web3-8141 | Python | The same for web3.py. |
| frametx | Go | Reference CLI — keygen, addresses, sends, rotation. |
Standard Ethereum tooling — Foundry, Hardhat, ethers, viem, explorers, indexers — works for everything except signing from a post-quantum account. See SDKs.
Building here
Section titled “Building here”The chain is an ordinary EVM target with two additions worth designing around:
Post-quantum accounts are contracts. Do not use tx.origin as proof that
the caller holds a key: under EIP-8141 ORIGIN is the frame’s caller, so a
post-quantum account passes tx.origin == msg.sender without being an EOA.
Signature verification is available to you. Any contract can call the
ML-DSA precompiles — 16,000 gas for ML-DSA-65 at 0x14, 10,500 for ML-DSA-44 at
0x15, flat in both cases. That opens designs that are not practical
elsewhere: post-quantum multisigs, attestations verifiable on chain, or bridging
authorities that survive a quantum adversary. See
Deploy a contract.
Getting listed
Section titled “Getting listed”If you deploy something on Frost and want it here, open a pull request against the documentation repository.