Welcome to Sylphy
Sylphy is private DeFi execution on Base. It protects intent details, matching logic, policy checks, and audit context while keeping final settlement verifiable on-chain.
Private execution, public settlement
Apps and agents submit signed intents instead of exposing raw trade actions early. Sylphy checks allowlists, slippage limits, and policy rules before sending the verified result to Base.
Base proves the transaction settled. Sylphy keeps the sensitive strategy and execution path private.
Sylphy protects the path before settlement. Intent details and routing context are processed inside a Trusted Execution Environment (TEE), then the final result settles on Base.
Get Started
How It Works
Submit an intent
A wallet, app, or agent sends a trade intent to Sylphy.
Process privately
Matching, policy checks, and proof preparation run in a protected flow.
Settle on Base
The final settlement is public and verifiable. The execution context stays protected.
What Sylphy is not
Sylphy is not a mixer, privacy coin, or anonymity layer. Wallet activity, transaction hashes, settlement amounts, and x402 payment records can still be visible on Base.
Quickstart
Submit your first Sylphy intent. Use the app for a wallet flow, or use the API when an agent needs to create intents programmatically.
This section shows the shortest path to a submitted intent. x402 payment details are covered in the protocol section.
Choose your path
Option A: Sylphy App
Connect wallet
Open Sylphy and connect a Base-compatible wallet.
Create an intent
Enter the token, side, amount, limit price, and any execution constraints.
Submit for execution
Sylphy queues the intent for private execution and returns a status reference.
Verify result
After settlement, review the final status and Base transaction reference.
Option B: Agent API
Registered agents submit intents through POST /api/intents/trade. External clients pay with x402; this example focuses on the intent payload and accepted response.
POST /api/intents/trade Content-Type: application/json X-PAYMENT: <base64-encoded-payment-proof> { "agentId": "agent_sylphy_01", "agentWallet": "0xAgentWallet...", "ownerWallet": "0xOwnerWallet...", "token": "0xTokenAddress...", "side": "buy", "amount": "100000", "limitPrice": "0.0042", "maxSlippageBps": 100, "settlementNetwork": "base", "privacyMode": "tee" }
Accepted response
A successful submission returns an accepted private intent. Use the intent ID to track execution and settlement.
{
"ok": true,
"intentId": "intent_8f3a...",
"status": "accepted",
"privacy": "private_intent",
"auditAvailableAfterSettlement": true,
"intentPreviewHash": "0x...",
"teeAcceptanceHash": "0x...",
"paymentReceiptId": "rcpt_abc123...",
"deadline": "2026-05-22T00:00:00.000Z",
"note": "Intent is queued for TEE matching. Use GET /api/match-status/:id to track status."
}
Read x402 Protocol for paid request flow, or Audit Trail for scoped settlement summaries.
Core Concepts
Sylphy is built around private intents, x402 access, protected execution, and verifiable settlement.
Execution model
x402 Protocol
Sylphy uses x402 for paid API access. A client calls a paid route, receives 402 Payment Required, signs a USDC authorization, and retries with X-PAYMENT.
x402 proves that a paid endpoint was funded. It does not grant audit access, reveal private proof data, or hide final settlement on Base.
How it works
The x402 middleware checks whether a route is priced. Free routes continue immediately. Paid routes require a valid X-PAYMENT or X-PAYMENT-SIGNATURE header before the route handler runs.
Client calls a paid route
An external client calls a route such as /api/intents/trade, /api/token/:address, or /api/audit/:settlementId/agent.
Sylphy returns HTTP 402
The response includes the route description, amount, network, asset, destination, and next step.
Client signs payment
The client signs a USDC authorization and retries the request with the signed payload in X-PAYMENT.
Facilitator verifies
Sylphy sends the payment proof and requirement to the facilitator at /verify.
Route executes
If verification succeeds, Sylphy attaches payment data and runs the route.
Payment requirement
This is the response returned when a paid route is called without payment.
HTTP/1.1 402 Payment Required Content-Type: application/json { "status": 402, "message": "Payment Required", "protocol": "x402", "description": "Submit trade intent as an AI agent (requires agent registration)", "requirement": { "scheme": "exact", "network": "eip155:8453", "asset": "USDC", "price": "$0.01", "payTo": "0xPayToAddress...", "description": "Submit trade intent as an AI agent (requires agent registration)" }, "instructions": { "step1": "Sign a USDC transfer authorization (EIP-3009) for the amount shown", "step2": "Retry this request with the signed payment in the X-PAYMENT header", "step3": "The facilitator will verify and settle the USDC transfer on Base", "network": "Base (Chain ID 8453)", "asset": "USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)", "docs": "https://x402.org/docs" } }
Payment header
After signing, retry the same request with the encoded payment proof. Sylphy checks X-PAYMENT first and falls back to X-PAYMENT-SIGNATURE.
POST /api/intents/trade Content-Type: application/json X-PAYMENT: <base64-encoded-payment-proof> { "agentId": "agent_01", "agentWallet": "0xAgentWallet...", "token": "0xTokenAddress...", "side": "buy", "amount": "100000", "limitPrice": "0.0042", "settlementNetwork": "base", "privacyMode": "tee" }
Verified request data
When verification succeeds, Sylphy attaches this payment context to the request.
{
"paid": true,
"payer": "0xPayerWallet...",
"txHash": "0xPaymentTx...",
"amount": "$0.01",
"asset": "USDC",
"network": "eip155:8453"
}
Paid audit response
For GET /api/audit/:settlementId/agent, x402 verifies payment first. Authorization is still required before any audit summary is returned.
{
"ok": true,
"auditSummary": {
"settlement_id": "settle_123",
"status": "settled",
"settlement_tx": "0xabcd...",
"tee_attestation": "valid",
"proof_status": "valid",
"risk_level": "low",
"matched_result": {
"token": "SYLPHY",
"matched_price": "0.0042 USDC",
"matched_amount": "100000 SYLPHY",
"price_type": "clearing_price",
"amount_type": "aggregated_total"
},
"private_fields": {
"submitter_wallet": "hidden",
"individual_trade_amount": "hidden",
"individual_limit_price": "hidden",
"full_audit_blob": "requires_regulator_access"
},
"payment_receipt_id": "rcpt_abc123...",
"summary": "Settlement completed on Base. TEE proof is valid and no policy violation was detected."
},
"accessRole": "authorized_agent",
"paymentReceiptId": "rcpt_abc123..."
}
Network and asset
| Parameter | Value |
|---|---|
| Network | eip155:8453 — Base mainnet |
| Payment asset | USDC |
| USDC contract | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Scheme | exact payment authorization |
| Headers | X-PAYMENT or X-PAYMENT-SIGNATURE |
| Facilitator | payai.network verifies and settles payment proofs |
x402 unlocks endpoint execution only. Audit routes still require authorization, and final settlement remains visible on Base.
Pricing
The Sylphy app is free to use. External API clients and AI agents pay per request in USDC on Base.
Paid routes
| Endpoint | Method | Price | Purpose |
|---|---|---|---|
/api/token/:address | GET | $0.01 | Resolve ERC-20 token info on Base |
/api/intent | POST | $0.01 | Submit a private trade intent |
/api/market-depth/:token | GET | $0.01 | Read aggregated, anonymized depth |
/api/match-status/:id | GET | $0.01 | Check intent status with authorization |
/api/intents/trade | POST | $0.01 | Submit a policy-bound AI agent intent |
/api/swap | POST | $0.02 | Instant DEX swap via Uniswap V2 ** |
/api/audit/:settlementId/agent | GET | $0.25 | Read an AI-safe audit summary with authorization |
/health, /api/fees, and free admin or registration routes do not require x402 payment. The Sylphy app also bypasses API billing.
Settlement
Settlement is the final on-chain result. Sylphy does not hide settlement; it protects the execution context around it.
Visibility model
Instant Swap
Agents and API clients can run instant swaps against Uniswap V2 liquidity on Base through SylphySettlement.
Instant swaps are routed directly to public AMM liquidity. They are faster, but their swap details are public on-chain.
Swap vs OTC intent
Choose the path that fits the trade: instant AMM liquidity or private intent execution with limit-price control.
| Feature | POST /api/swap (Instant Swap) |
POST /api/intents/trade (OTC Intent) |
|---|---|---|
| Execution | Instant (DEX router) | Async (TEE matching queue) |
| Counterparty | Uniswap V2 liquidity pool | Private OTC peer |
| Privacy | On-chain (public tx) | Private inside TEE |
| Price | Market price (AMM) | Limit price (agent sets) |
| x402 fee | $0.02 USDC | $0.01 USDC |
| Best for | Speed, immediate liquidity | Privacy, large trade blocks |
Swap lifecycle
Submit swap request
The agent sends a swap payload to POST /api/swap with an X-PAYMENT header.
Verify and quote
The backend verifies payment and authorization, then requests a pool routing quote.
Contract execution
Sylphy routes the trade through SylphySettlement.sol to the Uniswap V2 router.
Token transfer and fee
Tokens are exchanged, the swap fee is sent to treasury, and proceeds land in the recipient wallet.
Receipt delivery
The API returns the swapId, Base transaction hash, and output amount.
Example Request
POST /api/swap Content-Type: application/json X-PAYMENT: <base64-encoded-payment-proof> { "agentId": "agent_sylphy_01", "tokenIn": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", // USDC "tokenOut": "0x4200000000000000000000000000000000000006", // WETH "amountIn": "1000000", // 1.00 USDC (6 decimals) "minAmountOut": "300000000000000", // Minimum slippage tolerance "recipient": "0xAgentWallet..." }
Example Response
{
"ok": true,
"swapId": "swap_9f2b...",
"status": "executed",
"txHash": "0xSwapTxHash...",
"tokenIn": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"tokenOut": "0x4200000000000000000000000000000000000006",
"amountIn": "1000000",
"amountOut": "312500000000000",
"feeDeducted": "3000", // 0.3% swap fee
"recipient": "0xAgentWallet..."
}
Private Execution Context
Private execution context is the protected layer around settlement: request details, matching path, policy checks, and proof output.
What is protected
Audit Trail
Sylphy separates payment from permission. Payment funds the request; authorization decides who can read the result.
Access levels
Users can view their own settlement status and public transaction hash.
AI agents can request AI-safe summaries when they are registered and authorized for the relevant resource.
Reviewers can access deeper proof context only through permissioned roles such as auditor or regulator.
Audit summaries can include status, settlement transaction, proof state, risk level, aggregate match result, and receipt ID. They do not expose individual wallets, order amounts, limit prices, or the full audit blob.
Audit summary response
Authorized agents receive a scoped summary object in auditSummary, plus the access receipt at the top level.
{
"ok": true,
"auditSummary": {
"settlement_id": "settle_123",
"status": "settled",
"settlement_tx": "0xabcd...",
"tee_attestation": "valid",
"proof_status": "valid",
"risk_level": "low",
"matched_result": {
"token": "SYLPHY",
"matched_price": "0.0042 USDC",
"matched_amount": "100000 SYLPHY",
"matched_notional": "420 USDC",
"price_type": "clearing_price",
"amount_type": "aggregated_total"
},
"private_fields": {
"submitter_wallet": "hidden",
"individual_trade_amount": "hidden",
"individual_limit_price": "hidden",
"buyer_wallet": "hidden",
"seller_wallet": "hidden",
"full_audit_blob": "requires_regulator_access"
},
"payment_receipt_id": "rcpt_abc123...",
"summary": "Settlement completed on Base. 100000 SYLPHY was matched at 0.0042 USDC. TEE proof is valid and no policy violation was detected."
},
"accessRole": "authorized_agent",
"paymentReceiptId": "rcpt_abc123..."
}
Wallet-based Users
Sylphy uses wallets as the account boundary. The connected address signs intents, pays when needed, and anchors authorization.
Wallet model
There is no email or password flow in the core protocol. A wallet can submit intents, register agents, pay x402 requirements, and request authorized resources.
System Architecture
Sylphy combines protected execution, x402 access, and Base settlement for private DeFi workflows.
End-to-end execution flow
Sylphy separates private execution from public settlement. Each layer protects intent context while keeping the final state change verifiable on Base.
Wallet or agent request
A wallet, app, or agent submits an execution intent.
x402 payment gate
Paid API routes require a valid USDC payment proof. The Sylphy app bypasses API billing.
Authorization and policy
Sylphy checks permissions, slippage bounds, token allowlists, and trade limits.
TEE matching
Matching and clearing run inside a protected execution environment.
Settlement on Base
The verified result is sent to the settlement contract and executed on-chain.
Audit trail
Proof metadata and policy outcomes are stored for authorized review.
TEE execution layer
Orders are processed inside a protected execution environment. This keeps the active matching context away from the public mempool and ordinary application memory.
After an intent is matched or rejected, Sylphy records proof metadata that links the private execution path to the public settlement result.
{
"enclaveId": "sylphy_sec_enclave_8453",
"teeAttestationSignature": "0x9b3a...f78e",
"intentHash": "0xintent_digest...",
"matchingClearingPrice": "cleared_inside_enclave",
"policyVerification": "verified_and_passed"
}
Proofs and commitments
Sylphy records proof metadata so settlement can be checked without exposing the full execution context. Public chain data shows the final result; private proof data remains scoped to authorized review.
Scoped auditing
Sylphy is not an anonymity system. It uses permissioned disclosure so approved reviewers can inspect deeper proof context when required.
Audit access is logged and separated from x402 payment. A paid request can still be denied if the caller is not authorized.
API Reference
Sylphy exposes HTTP endpoints for token data, private intents, market depth, match status, agent access, swaps, and audit summaries.
Endpoint groups
System
Token data
Intent execution
tokenAddress, side, amount, price, and walletAddress; returns a pending private intent.SylphySettlement.Market and status
Agent and audit
Examples
const response = await fetch("https://api.sylphy.xyz/api/intent", { method: "POST", headers: { "Content-Type": "application/json", "X-PAYMENT": paymentProof }, body: JSON.stringify({ tokenAddress: "0xToken...", side: "buy", amount: "100", price: "0.0042", walletAddress: "0xWallet..." }) }); const data = await response.json();
Frequently Asked Questions
What problem does Sylphy solve? +
Why does Sylphy use x402? +
Are browser users charged x402 fees? +
Is Sylphy anonymous? +
What stays private? +
Can payment alone unlock audit data? +
Which network does Sylphy use? +
Can AI agents submit trades? +
/api/intents/trade after payment, authorization, and policy checks pass.