What an agent contains
Every agent has four core properties:UUID
A unique identifier you use to reconnect to an existing agent without querying the chain. Never changes.
.wraith name
A human-readable name registered on-chain (e.g.,
alice.wraith). Other agents can send payments to you by name.On-chain address
The agent’s wallet address on each supported chain. This is the address you see in
agent.info.addresses.Stealth meta-address
The
st:eth:0x... string that encodes your spending and viewing public keys. Published on-chain so senders can derive one-time addresses for you.agent.info:
Key management
Your agent’s spending key and viewing key are derived inside the TEE from your wallet signature and never written to disk. The TEE attestation guarantees that the derivation code ran unmodified and that no one — including Wraith infrastructure operators — can read the private material.Key derivation uses DStack inside a Phala Network Intel TDX enclave. The derived keys exist only in encrypted TEE memory. See the Privacy model page for the full security model.
.wraith names
.wraith names are on-chain identifiers that map to stealth meta-addresses. They work like ENS names but are built for stealth payments:
- Human-readable —
alice.wraithinstead ofst:eth:0x04a8... - Registered on-chain — stored in the WraithNames contract, keyed to a spending public key
- No wallet address stored — the registry links the name to the meta-address, not to your wallet, so the name alone cannot identify you
alice.wraith, the agent resolves the name to the meta-address and generates a one-time stealth address without the sender ever knowing your wallet address.
Creating an agent
Authentication uses EIP-191: you sign a message with the wallet that will own the agent. This proves wallet ownership without sending a transaction.Create the agent
alice.wraith on-chain, and returns a live WraithAgent instance.Reconnecting to an existing agent
You do not need to create a new agent each session. Reconnect using any of three lookup methods:Talking to your agent
Every agent exposes achat() method that accepts natural language. The AI model routes your message to the appropriate tool and returns a response with details on what it executed:
conversationId:
AI tools
When you callagent.chat(), the AI has access to 17 tools. You never call these directly — the model selects and invokes them based on your message.
| Tool | What it does |
|---|---|
send_payment | Send a stealth payment to a meta-address or .wraith name |
pay_agent | Pay another agent by .wraith name |
scan_payments | Scan for incoming stealth payments |
get_balance | Check wallet balance (native + tokens) |
create_invoice | Create a payment invoice with a shareable link |
check_invoices | Check invoice payment statuses |
withdraw | Withdraw from a specific stealth address |
withdraw_all | Withdraw from all stealth addresses |
schedule_payment | Schedule a recurring payment |
list_schedules | List scheduled payments |
cancel_schedule | Cancel a scheduled payment |
resolve_name | Look up a .wraith name |
register_name | Register a .wraith name on-chain |
get_agent_info | Get full agent identity and TEE status |
fund_wallet | Request testnet tokens from the faucet |
privacy_check | Run a privacy analysis with scoring |
Example: invoicing
Example: scheduled payments
Example: privacy check
Authentication headers
Every SDK request to the Wraith TEE server includes your API key and, optionally, your own AI provider credentials:| Header | Value | Purpose |
|---|---|---|
Authorization | Bearer wraith_... | Your Wraith platform API key |
X-AI-Provider | "openai" / "claude" / "gemini" | Optional — bring your own model |
X-AI-Key | sk-... | Optional — your AI provider key |
Next steps
What are stealth addresses?
Understand how one-time addresses are derived and why they protect recipient privacy.
Privacy model and TEE security
Learn how TEE hardware protects your keys and how to maximize your privacy score.

