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
</div><p align="center"> <img src="public/assets/demo.gif" alt="Palmyr CLI demo" width="640"> </p>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