Connect a wallet
Everything you do on Sealroom is signed by your own Solana wallet: paying for a call, listing a model, posting a bond, opening a dispute. Your wallet address is your identity. The models a wallet created are that owner's models, and the wallet an operator gave in its application is the operator's authority.
Supported wallets
The app finds browser wallets through the Wallet Standard. Phantom, Solflare and Backpack appear in the wallet list, along with any other extension wallet that offers Wallet Standard connection and Solana transaction signing. Hardware wallets connected over USB are not offered.
Connect
- Open the app at
https://sealroom.cloud/app. - Select Connect wallet at the end of the top bar.
- The Connect a wallet panel lists the wallets installed in your browser. Choose one.
- Approve the connection in the wallet's own window.
The bar now shows your address in short form. Open it to see the wallet's name and full address, and Disconnect to end the session. When you come back, the app reconnects the wallet you used last, as long as that wallet still trusts the site.
If the panel says "No browser wallet found. Install Phantom, Solflare or Backpack.", install one of them, reload the page and connect again.
The network
Sealroom runs on Solana. The top bar shows the cluster the app is connected to (for example mainnet-beta). Set your wallet to the same network.
GET <api-url>/v1/parameters returns the deployment's settings, including:
| Field | Meaning |
|---|---|
cluster | The Solana cluster |
programId | The address of the sealroom program |
usdcMint | The USDC mint every payment, bond and deposit uses (native USDC on mainnet, EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) |
usdcDecimals | Always 6 |
What you need in the wallet
You need two assets: SOL for network fees and rent, and USDC for calls, bonds and dispute deposits.
| Action | USDC | SOL |
|---|---|---|
| Pay for a call | The call's price, or the ceiling for a metered call | None. The facilitator pays the network fee for payment transactions |
List a model (create_model) | None | Network fee and rent for the Model account, plus rent for any split recipient's USDC account that does not exist yet |
Open a lane (open_lane) | None | Network fee and rent for the Lane account and its USDC vault |
| Distribute a lane | None | Network fee |
| Deposit a bond | The bond amount | Network fee, plus rent for your USDC accounts if they do not exist yet |
| Register a platform or node | None | Network fee and rent for the new accounts |
| Open a dispute | The dispute deposit | Network fee and rent for the dispute's accounts |
| Claim a deferred payout or dispute award | None | Network fee |
Every preview the app requests reports the exact network fee (estimatedFeeLamports) before you sign.
Your USDC account
USDC on Solana lives in a token account. Sealroom uses each wallet's canonical USDC account, the associated token account for your address and the USDC mint. Payments for calls are drawn from it, and payouts from distributions arrive in it. The account exists once USDC has been sent to your address.
When a transaction you send needs a USDC account that does not exist yet (your own, or a split recipient's), the same transaction creates it and you pay its rent.
How signing works
Each action in the app is one Solana transaction, and your wallet signs it. Sealroom never holds your keys.
- Building the transaction… The app sends your intent (for example
open_lanewith a model and a node) to the public API. The API reads the chain, builds the exact transaction and returns it unsigned, together with the signers it needs and the network fee. If something on-chain prevents the action, the API says so instead and nothing is sent to your wallet. - Waiting for your wallet to sign… Your wallet shows the transaction. Review it and approve. The app asks the wallet only to sign (
solana:signTransaction), never to sign and send. - Sending… The app submits the signed transaction to Solana.
- Waiting for confirmation… The app polls until the transaction is confirmed.
- Confirmed · 5Hk2xQ9a… The status line shows the first eight characters of the transaction signature. The page re-reads the registry, which reflects the change within a few seconds as the indexer catches up.
When the API cannot build the transaction, the status line shows its explanation followed by the code, for example "The bond can be withdrawn after its unbondAt time. (UNBOND_TIMELOCK_PENDING)". The Public API page lists every code.
Transactions with a second signer
A few actions need a second signature:
| Action | Second signer |
|---|---|
register_platform | The Sealroom admin multisig, which confirms the platform identity matches the operator's vetting record. The preview arrives with the admin signature in place and your wallet adds its own |
propose_split that lowers a locked split entry | The recipient of that entry, who consents to the change |
The preview's requiredSigners field lists every signer. Your wallet keeps the signatures already present.
Payment transactions
Paying for a call is also one transaction, built from the node's 402 price. It holds one USDC transfer from your account to the lane vault (or, for a metered call, an escrow of your ceiling) and a memo that ties it to your request. Your wallet signs only its own slot. The facilitator adds the fee-payer signature and submits the transaction after the node has checked it. Call a model walks through it.
Next
- Call a model with your funded wallet.
- List a model if you own one.
- Operate nodes if you run confidential GPUs.