Palmyr
Agent infra: email, phone, social, domains, VPS, wallets. Paid per-action via x402, no API key.
Links
README
From the repo.
Palmyr
Everything your AI agent needs — one CLI.
Phone, email, compute, domains, wallets, X accounts, and more. Pay with USDC. Your wallet is your identity.
Quick Start • Services • Dashboard • Skill File • Docs
Stop asking your human for a credit card.
Quick Start
CLI
npm i -g @palmyr/cli
palmyr wallet create # local HD wallet, both Solana + Base, ready to pay
palmyr phone search --country US
palmyr email create --name my-agent --wallet SOL_PUBKEY
palmyr compute deploy --type cx23 --json # auto-key, auto-wait, verified ssh — JSON out
palmyr compute ssh my-vps # drop into the new box
palmyr domain buy --name myagent.dev
palmyr twitter buy # $5 USDC → ready X account from the pool
palmyr twitter post @handle --body "gm" # post immediately, no setup
Agents: pipe stdout into jq, branch on $? against the exit code table. Force JSON on a TTY with --json or PALMYR_JSON=1.
Or run without installing: npx @palmyr/cli phone search --country US
Skill File
Add to your OpenClaw / Claude Code agent: palmyr.ai/skill.md
Dashboard
Visual node-based agent deployment: palmyr.ai/dashboard.html
Services
| Service | Status | Cost (USDC) |
|---|---|---|
| Phone | ✅ Live | $3/number, $0.05/SMS, $0.10/call |
| Voice Calls | ✅ Live | TTS, DTMF, record, transfer, gather |
| ✅ Live | $2/inbox. E2E (NaCl box) when owned by a Solana key; otherwise AES-256-GCM encrypted at rest | |
| Compute | ✅ Live | $5–64/mo VPS + $6 one-time deploy fee. SSH hardened, choice of agent install recipe (--install hermes, --install openclaw, ...), location selection across 6 Hetzner datacenters. |
| Domains | ✅ Live | Dynamic pricing, DNS management included |
| Wallet | ✅ Live | Non-custodial smart wallets on Base + Solana |
| Skills | ✅ Live | 3500+ from ClawHub, one-click install |
| Social Media Accounts | ✅ Live (X + TikTok) | X: buy ready accounts ($5), post / reply / like / follow / update bio, name, pfp, banner, username. TikTok: connect your own via a one-shot real-browser / QR login, then post / schedule / follow / like / delete / update bio, name, avatar. Sticky residential IP per account. |
| i402 orchestrator | ✅ Live | Tell Palmyr what you want, it plans + executes a sequence of x402 calls. See spec/i402.md. |
| Crypto Card | 🟡 Pending | Visa debit linked to agent wallet |
| Address | 🟡 Pending | Physical mailing address for the agent |
| Reddit / LinkedIn | 🟡 Pending | Same model as X — buy + operate from the CLI |
| Storage | 🟡 Pending | S3-compatible object storage |
How It Works
Agent calls API → gets 402 → pays USDC (Solana or Base) → service provisioned
Your wallet is your identity. Pay with USDC, your wallet address owns the resource. No API keys. No signup.
Three ways to use Palmyr
1. Call any endpoint → get 402 → pay with USDC → done
# Provision a phone number ($3 USDC)
curl -X POST https://palmyr.ai/phone/numbers \
-H "Content-Type: application/json" \
-d '{"country": "US"}'
# → 402 Payment Required (tells you exactly how to pay)
# Pay via x402 — your wallet address becomes the owner
curl -X POST https://palmyr.ai/phone/numbers \
-H "X-PAYMENT: <base64-encoded x402 payment payload>" \
-H "Content-Type: application/json" \
-d '{"country": "US"}'
# → phone number provisioned, owned by your wallet
Same wallet that provisions a resource is the only wallet that can access it. No API keys or tokens. Your agent wallet = your identity.
2. Or ask for an outcome with i402 — plan + execute client-side
# Tell Palmyr what you want, not how. It returns a plan of x402 calls;
# your wallet signs and executes each one itself.
palmyr chat run "Launch a sneaker resale brand for US teens" --budget 60 --execute
# What you get back:
# Plan: 5 steps $45.09 total
# s1 register_domain → palmyr.register_domain $9.99
# s2 deploy_vps → palmyr.deploy_vps $6.00
# s3 provision_email_inbox → palmyr.provision_email_inbox $1.00
# s4 social_account_provision → palmyr.x_account $15.00
# s5 social_post → palmyr.x_post $0.50
# orchestration fee (15%): $3.75
# Executing plan (client-side, one x402 tx per step)...
# → s1 register_domain via palmyr.register_domain ($9.99)
# ✓ s1 done in 18400ms
# → s2 deploy_vps via palmyr.deploy_vps ($6.00)
# ✓ s2 done in 62000ms
# ...
# done: completed spent=$45.09
Multi-turn follow-ups are wallet-keyed: the server extracts your wallet from the x402 signature, finds your last active session, and (if the Haiku classifier decides the new intent continues it) extends that session — "now post 3 TikTok videos about launch week" references the brand you just launched without re-provisioning. Full spec at spec/i402.md.
Architecture note: i402 v0.1 is agent-side-execution-only. The server returns a plan of x402 endpoints; your wallet signs every step's payment directly. No custodial escrow, no server-held USDC.
3. Or use the dashboard
palmyr.ai/dashboard — visual node-based agent management.
x402 Payment
All paid endpoints accept USDC via the x402 protocol:
- Call any endpoint → get
402withPAYMENT-REQUIREDheader - Build a USDC transfer to the treasury
- Send it in the
X-PAYMENTheader (canonical x402 v2;Payment-Signatureis also accepted as a legacy alias) - Server verifies onchain → returns the response
Networks: Solana mainnet + Base (EVM)
Treasury (SOL): B1YEboAH3ZDscqni7cyVnGkcDroB2kqLXCwLs3Ez8oX3
Treasury (EVM): 0x7fA8aC4b42fd0C97ca983Bc73135EdbeA5bD6ab2
AgentWallet
Non-custodial smart wallets with onchain spending limits, secured by passkey (FaceID/fingerprint).
npx @agntos/agentwallet create # Deploy on Base + Solana
npx @agntos/agentwallet status 0xABC # Check balances & limits
npx @agntos/agentwallet send \
--wallet 0xW --to 0xR --amount 10 --key 0xK
- On-chain daily + per-tx + per-token limits
- Passkey (biometric) is the owner key — can't be phished
- Agent can't change its own limits
- Source: github.com/0xArtex/agentwallet-aos
Dashboard
Visual node-based dashboard at palmyr.ai/dashboard.html:
- Agent node → spawns Model, Channel, VPS nodes
- AI Model → configure Anthropic/OpenRouter/OpenAI, pushes to VPS
- Channel → Telegram/Discord with pairing code auth
- VPS → one-click deploy with OpenClaw pre-installed
- Skills → browse 3500+ from ClawHub, bulk install
- Wallet → non-custodial smart wallet with on-chain limits
All nodes push config independently to the VPS. Delete a node → removes config from VPS.
Tech Stack
- Runtime: Node.js + TypeScript + Express
- Payments: x402 (USDC on Solana + Base)
- Phone/Voice: Telnyx (150+ countries)
- Email: Mailgun (send + inbound routing). E2E (NaCl box) when the inbox is keyed to a Solana wallet; otherwise AES-256-GCM encrypted at rest
- Compute: Hetzner Cloud + cloud-init hardening
- Domains: Namecheap API
- Wallet: Solidity (Base) + Anchor (Solana)
- Database: SQLite (better-sqlite3)
Self-Host
git clone https://github.com/0xArtex/Palmyr
cd Palmyr
cp .env.example .env # configure keys
npm install
npm run build
npm start
Required env vars: TELNYX_API_KEY, HCLOUD_TOKEN, NAMECHEAP_API_KEY, NAMECHEAP_API_USER
License
MIT
Config for your environment
Use the endpoint URL below in your config. No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "https://palmyr.ai/mcp"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.