IntentOS X Layer testnet Open app
How it works

Say what should be true afterwards

You do not pick a route. You state an outcome. Solvers compete on how to reach it. The chain checks that they did. Live on X Layer testnet.

The loop Try it People and agents Use cases Who you trust FAQ

The loop

1
Declare

Write a sentence, or paste one from the playbook. Parse turns it into an outcome and a policy. Only two hashes go onchain.

2
Sign

You sign. You do not pay submit gas. The coordinator relays that signature. Exact-amount permit, never an unlimited approval.

3
Auction

Bonded solvers bid a fee, a time, and a guaranteed amount per leg. A worse pick is challengeable. A missed guarantee is slashed.

4
Settle

The winner reveals the plan. The contract sizes the basket from your weights, swaps, then measures your balance. Miss a floor and the whole fill reverts.

Try it in the app

1
Open the app. Connect OKX Wallet on X Layer testnet.
2
Mint test stables. These are demo tokens, not mainnet cash.
3
Pick a playbook line, or write your own. Press Parse. Check the legs, the policy, and the two hashes.
4
Press Submit & settle. You sign. Solvers bid. The chain checks the result. History sits in the app sidebar, not a separate tab.
Open the app Agent surface

People and agents

A human and an agent are the same kind of user: an owner address that signs an outcome. They share one history. Nothing is a different product.

Human

Use the app. Connect, mint, parse, sign. Recurring jobs need a session key so the coordinator can submit later without the root key.

Agent

POST a sentence to /api/declare with the owner address. You get calldata and EIP-712 typed data. Sign it. POST /api/relay. Same registry, same history.

Agent in one call

await agent.declare("put 5,000 USDT into NVDA and AAPL, 60/40, only attested assets", {
  relayUrl: "https://tryintentos.xyz/api/relay"
});
await agent.track(intentId);
await agent.history();

Authorize a session in the app if the agent should keep submitting (payroll, a weekly rebalance) without asking the root key each time. Smart-account owners sign with ERC-1271. There is no separate bundler to learn.

What you can declare

Pay someone

Send USDG. You sign; the coordinator pays submit gas.

Pay 500 USDG gaslessly to 0x…cafe
Swap stables

USDT into USDG with a slippage cap, not a hope.

Swap 2,500 USDT into USDG with 0.1% max slippage
Buy a basket

Weights are not negotiable. Settlement sizes every leg from what you committed.

Allocate 10,000 USDT equally across TSLA, NVDA, AAPL and SPY xStocks, only attested assets
Rebalance

Exits and entries in one transaction. No half-finished book.

Rebalance my xStocks to 25% TSLA, 25% NVDA, 25% AAPL, 25% SPY
Compliant only

Only KYB-attested solvers may win. Everyone else is refused at selection.

Using only compliant solvers, allocate 25,000 USDT equally across TSLA and NVDA
Tokenize an asset

Offchain to onchain. Zero spend files a request. An attestor later publishes the token. A funded onboard can also buy the wrapper.

Tokenize Tesla as TSLAx on X Layer
Payroll

A standing payment. The agent runtime submits each period under a session key.

Pay 1,200 USDG gaslessly to 0x…cafe every month
Gated entry

Do not serve unless a condition holds (volume, volatility, and so on).

Allocate 8,000 USDT equally across TSLA and NVDA, only if 24h volume exceeds 1000000

Who you trust

The parser, the solvers, and the coordinator are untrusted. Only settlement arithmetic is trusted, and it runs after everyone has already committed.

Floors are doubled

Each leg must clear your minimum and the solver’s guarantee, whichever is higher.

Measured, not reported

Output is the balance change on the recipient, never a router’s own return value.

Missed guarantee

The fill reverts. Then 10% of the solver’s bond goes to the runner-up.

Coordinator

Cannot touch funds. A worse pick is slashable for 30 minutes after selection.

FAQ

What is IntentOS?

A way to declare an outcome on X Layer. Solvers compete on how. The chain checks that they did.

Where do I start?

Open the app, connect on X Layer testnet, mint test stables, parse a sentence, submit. This page is the map. Docs is for agents. Standard is the hashing rules.

Isn’t this just a router?

A router returns whatever it returns. IntentOS measures your balance and reverts if it misses the floor. The guarantee is enforced, not advisory.

Why not a bridge?

One settlement, one chain. No half-finished cross-chain state. A guarantee that only means something if every leg lands together.

What stops a solver from lying?

Nothing stops the bid. The contract stops the payout. Miss the guarantee and the fill reverts. Then a slice of bond is slashed.

Do I need to trust the coordinator?

No. It cannot move your tokens. It can only pick a worse bid, and that is slashable.

Do I need OKB to declare?

Not for submit. You sign; the coordinator pays that gas. Keep a little OKB only if relay is down and you send the transaction yourself.

Is this ERC-4337?

The live path is signed intents: Submit + permit, session keys, ERC-1271 smart-account owners. There is no separate bundler to configure.

How does an agent differ from a person?

It does not, onchain. Same owner, same history. The agent uses declare + relay instead of the compose box. Authorize a session if it should keep going.

Can an intent tokenize a real-world asset?

Yes. “Tokenize Tesla as TSLAx” files an onboarding request. An attestor publishes the token. A funded onboard can also buy the wrapper when a pool exists.

Who runs the solvers?

The four live solvers are IntentOS reference operators we run, so auctions are not empty. They are bonded. We are not claiming independent third-party supply yet.

Testnet or mainnet?

The app you click is X Layer testnet, with mintable demo tokens. The same protocol is live on X Layer mainnet (registry 0x4129…D515) against real USDT, USDG, and TSLAx. Mainnet fills only where a pool actually quotes.

What is Standard?

The Intent Standard: how an outcome and a policy hash. If the offchain code and the contract disagree, settlement reverts. That page used to be called Spec.

Unlimited approvals?

No. Permit is for the exact amount of this intent.

Try a live intent Read the standard