Security
How Orientim protects you
A typical swap acts with the wallet's authority for the whole transaction. Orientim builds each swap so that the swap program never gets it: only the amount your agent approves is placed within its reach, under a one-time key that exists for this one transaction.
What happens when your agent swaps
- Your agent asks Orientim for a swap. Orientim finds a route across Solana's markets, builds one transaction around it and checks it against its rules.
- With the skill, the command line or the MCP server, the exact transaction is checked again on your own connection to Solana before signing. A direct API client must run the same independent check before handing bytes to its signer.
- Your agent's wallet signs first. Orientim then adds the one-time key's signature and sends it.
- The swap runs. If less than your agent's minimum would arrive, the whole transaction is cancelled.
What every protected swap enforces
- The swap can spend only the amount your agent approves, plus a market's one-time account deposit when one is stated first.
- The wallet's other tokens, its NFTs and the rest of its SOL are never given to the swap program.
- No permission over your wallet is granted, and none outlives the transaction.
- The wallet receives at least the minimum, or nothing happens and only the network fee is paid.
- Orientim never holds your funds and never asks for your seed phrase.
This describes how Orientim is designed. What is and is not guaranteed is set out in the Terms.
The 7 rules, checked before your wallet signs
The open-source verifier decodes the exact bytes your wallet will sign and checks them against seven rules, with every account read from your own RPC. Your wallet signs only a transaction that passes all seven.
- R1
Your wallet stays out of reach
The swap program never receives your wallet, or any of its token accounts except the one that receives what you buy.
- R2
Only the instructions expected
Every instruction Orientim adds fills one expected place, with the exact accounts and amounts: the approved amount, the minimum checked on chain, the fee to the pinned treasury, the cleanup.
- R3
A new one-time key
The one-time key and its token accounts do not exist on chain yet, so nothing was prepared in them beforehand.
- R4
A capped network fee
The network fee your wallet pays, priority fee included, stays under a fixed maximum.
- R5
One transaction, nothing left open
One transaction within the size limit, each account loaded once, and every temporary account created and closed in it.
- R6
Only two signers
Your wallet pays the fee, and the only signers are your wallet and the one-time key.
- R7
Only tokens it can isolate
Both tokens, and any token the route passes through, are standard tokens or Token-2022 tokens without the features that would break the protection.
The code is in packages/verifier, under Apache-2.0.
Where the protection ends
- It protects your wallet, not the price or the future value of the token you buy.
- Orientim swaps only tokens it can isolate, and names the reason for any other: those whose issuer can run code on every transfer or move balances through a program.
- It cannot stop an agent that can read the signing key from using it outside Orientim. For unattended funds, keep the key in a separate signer with its own limits and use a wallet funded only for the agent's job.
- Give your agent its own RPC, never Orientim's, and use the skill as published: check a download against its GitHub release (
gh attestation verify), not against this site.
Fees
Every cost is in Orientim's answer, with the exact amounts, before your agent signs.
| Cost | Amount | Who receives it |
|---|---|---|
| Orientim fee | 0.25% of the swap: of the amount in, when taken from the input; of the enforced minimum, when taken from the output; of the swap’s value in SOL, when paid in SOL from your wallet | Orientim. Inside the transaction you sign: in SOL, USDC or USDT when the swap has one of them, otherwise in the input token or in SOL from your wallet. |
| Network fee | Usually under 0.0001 SOL; with the skill, never more than 0.001 SOL | Solana's validators. The exact amount is stated before your agent signs. |
| Market account fee | Only on some markets, such as a Pump.fun launch curve | The market. Stated before your agent signs, with what comes back. |
| Token transfer tax | Only on tokens that tax transfers | The token's issuer. Stated before your agent signs. |
- No fee for an API key, or for a swap your agent does not sign.
- A swap that does not run, because less than the minimum would arrive or its time ran out, costs at most the network fee.
- Swaps smaller than about 0.004 SOL, or $1 of USDC or USDT, are not taken, so the costs never outweigh the swap. Selling the whole balance of a token (not SOL) is allowed at any size.
Supported tokens and wallets
Most Solana tokens are supported. Orientim takes only the swaps it can protect, and says why when it cannot.
| Kind | Answer |
|---|---|
| SOL and standard SPL tokens | Supported |
| Token-2022 tokens with metadata, groups, close authority or confidential transfers | Supported |
| Token-2022 tokens with a transfer tax | Supported; the tax is stated before your agent signs |
| Stablecoins whose issuer can move balances with its own key (PYUSD, USDG, AUSD, CASH) | Supported, with a warning |
| Pump.fun launch curve and PumpSwap routes | Supported when the route fits and passes verification |
| Tokens whose issuer can move balances through a program, or with an active transfer hook, frozen by default, pausable, non-transferable, interest-bearing, requiring a memo, with a scaled UI amount, or with a Token-2022 extension Orientim has not reviewed | Not supported, with the reason |
| Tokens whose issuer can freeze accounts or mint more (USDC and USDT among them) | Supported; shown to your agent before it signs |
| A token account of your wallet that its issuer has frozen | Not supported, with the reason: the swap could not land |
| Routes through a market that would leave an account open | Not supported |
| Routes too large for one transaction | Not supported: Orientim never splits a swap |
- A key file or a signing service your agent controls: supported. A signing service keeps the key away from the agent.
- For the API key: a browser wallet that can sign a message, such as Phantom, Solflare or Backpack, or the skill's command line.
- Signers that can only sign and send at once, and multisig vaults: not supported, because the agent's wallet must sign first and Orientim last.
Report a vulnerability
If you find a security problem in Orientim, write to [security email] before telling anyone else, with enough detail to reproduce it. We answer, keep you informed while we fix it, and credit you if you wish.
We will not take legal action against research done in good faith that avoids harm to users and their funds, does not access other people's data, does not disrupt the service, and gives us reasonable time to fix the problem before it is disclosed. Never test with other people's wallets or funds.