Owner approval required
Review this exact summary before opening your wallet.
Awaiting approvalSell 500 RLUSD · RLUSD/XRP
- Action
- Swap RLUSD for XRP
- Amount
- 500 RLUSD → ≈ 963.85 XRP
- Destination
- XRPL DEX
- Max fee
- 12 drops
A unified agentic harness for multi-venue discovery and execution.
Pilot is model-agnostic and its memory learns your trading style.
Swap 500 RLUSD for XRP, max 1% slippage.
I compared the XRP/RLUSD order book with the AMM pool, built the exact swap and simulated it within your limits.
Best vs worst +7.64 XRP · simulated quotes
Review this exact summary before opening your wallet.
Awaiting approvalSell 500 RLUSD · RLUSD/XRP
The problem
Moving money on the XRP Ledger takes the same sequence every time. Developers write it from scratch, and traders stitch it together by hand.
The builder problem
Pilot handles all five steps through one MCP server or REST API.
Pilot MCP server · REST API
The trader problem
Pilot runs all four steps in one workspace, and remembers why.
What we built
Traders use the Pilot workspace. Agents connect over MCP. Apps connect over REST. All three reach the same 64 operations and the same checks.
For traders
Pilot workspace
An AI trading harness. The model never holds a signing key.
For agents
MCP server
search · execute
Runs in a sandbox with no internet access.
For apps
REST API
POST /api/ops/{op}
The same 64 operations.
27Read
14Market reads
Balances, order books, quotes, AMM pools
8Research
Token risk flags, yield, docs, XRP perps
5Venues & skills
23-venue catalog, safety playbooks
16Build
Transaction builders
21Execute
8Execution
Submit, track, permissions and limits
13Payments & infra
Mastercard agent mandates, RPC health
An agent asks the MCP server to run a typed call from its sandbox. A backend posts the same arguments to the REST endpoint. Both return the same envelope: data, the ledger it came from, and any caveats.
// tools/call → Pilot MCP server
{
"name": "execute",
"arguments": {
"code": "return await harbor.venues.compare({
network: 'testnet',
sell: { currency: 'XRP' },
buy: { currency: 'RLUSD', issuer: 'rQhWct2fv4Vc4KRjRgMrxa8xPN9Zx9iLKV' },
amount: '100', side: 'sell'
})"
}
}Agents call the MCP server's execute tool from a sandbox with no internet access
Inside one trade
The engine runs every step the same way, whether the request comes from the Pilot workspace, an agent or an app. You only step in to approve.
The workspace
An AI trading agent built for XRPL. Ask about your account and the market; it proposes a trade with the exact details, follows your limits, confirms the result and remembers your choices.
Pilot never holds your owner key. Owner actions are signed in your own wallet, and any permission you grant can be revoked at any time.
Ask from any page about your account and the market. The public preview uses bounded fixtures; quotes, order books and AMM pools use live ledger reads only after a provider profile is explicitly configured and accepted.
Choose one-time, recurring or autonomous. Every proposal arrives as a card with the asset, amount, route, fee and policy result.
Approvals show the exact details, and you sign that transaction, not a summary of it. Per-trade caps, a daily budget and an issuer allowlist are checked every time.
Pilot reads the result back from the ledger, then remembers your choices for the next trade.
Other apps · One engine, many apps
DEX, AMM and ledger-read contracts are available through one API. The public runtime uses bounded fixtures; live reads require an explicitly configured provider. The same limits and approvals remain built in, and dashed boxes are examples—no outside apps use them yet.
QuickNode RPC, confirmation and key-monitoring contracts · provider calls default-off
Self-improving memory
After each trade, Pilot compares what it expected with what happened and suggests a better preference. It only keeps what you approve, and the next trade reads it.
Learns from every trade
An Obsidian vault you own
Linked Markdown notes, versioned in Git
Any model, same memory
Switch models through OpenRouter anytime
New chats keep context
The agent searches your vault on every run
Nothing saved without you
Preferences apply only after you approve
From your question to the XRP Ledger and back: where Pilot checks your limits, where it asks you to sign, and how it learns what you prefer.
Watch one message run the whole loop
Step 01 of 12
Paused
You ask Pilot for a swap and mention how you like answers. That second part is what Pilot can learn from.
Swap 500 RLUSD for XRP. I prefer risk caveats first.
Highlighted: a preference Pilot can offer to remember
Privacy and control
Integrations
Open one to inspect its bounded explainer or fixture flow. The current public runtime makes no provider calls or transactions.
Built on AWS
Pilot carries structured screening, model, and signer provenance from the engine into each action receipt.
Screens untrusted ledger and tool text before it reaches the model, with fail-closed redaction.
Keeps model provenance visible on every supported intent receipt, including explicit mock labels.
Protects the engine's signing key material and records the signer mode without exposing credentials or key ARNs.
Untrusted data passes through Bedrock Guardrails and a selected Bedrock model, then Harbor policy, before an approved action reaches XRPL Testnet.
Approve on Ledger
This mirrors Ledger Agent Intent's human-in-the-loop model for XRPL. Ledger Agent Intent does not support XRPL yet. Pilot uses Ledger's Device Management Kit (DMK), not legacy LedgerJS.
Simulated evidence only. Physical-Ledger and live-Testnet checks are still pending and are not claimed here.
01Propose
Pilot turns the request into a typed intent and an exact XRPL transaction. The agent never holds the owner key.
02Execute
Within the permissions granted on-ledger and the limits checked by Harbor, the delegate can execute without another owner signature.
03Approve
When an action exceeds that bounded authority, the owner reviews and signs the exact transaction on the Ledger.
Simulated Ledger
Set the RLUSD trust line
Keyboard: ← · Enter/↓ · →
Screen 1 of 9: Review transaction
Blind-signing legend
Ledger's XRP app 2.8.2 labels these fields as unknown. During onboarding, Pilot shows the full Harbor delegate address beside the device; this preview preserves every fixed permission instead of pretending the transaction is clear-signed.
When approving in onboarding, match the full delegate address shown there and all seven values, then disable blind signing after the delegation validates.
Use cases
Safety
Agents make mistakes and networks drop. Pilot is built so that neither turns into a wrong, repeated or unsigned-for trade.
The model never holds a signing key. Owner-signed actions go to your wallet as sign-only requests.
Autonomous actions run only through delegate permissions you grant on-ledger, seven by default, and you can revoke them at any time. An account-wide kill switch stops them all.
Spending limits are checked and reserved before anything is signed or sent to the ledger.
An approval is bound to one transaction. The signed trade is checked against it again before submission.
Durable idempotency means a retried request cannot send the same trade twice.
Results are read back from the ledger, and recovered if the connection drops mid-flight.
Public runtime: explicit mock/default-off. Live Testnet execution and physical-wallet acceptance remain separate gates.
Roadmap and readiness
Today · public preview
Next
Later
Explore the public preview