Odel
Palmyr

Palmyr

@0xartexCommunication2TypeScriptMITUpdated Today

Agent infra: email, phone, social, domains, VPS, wallets. Paid per-action via x402, no API key.

Server endpointStreamable HTTPNo authProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Palmyr

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.

npm node typescript license services Solana Base

Quick StartServicesDashboardSkill FileDocs


Stop asking your human for a credit card.

Palmyr CLI demo

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

ServiceStatusCost (USDC)
Phone✅ Live$3/number, $0.05/SMS, $0.10/call
Voice Calls✅ LiveTTS, DTMF, record, transfer, gather
Email✅ 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✅ LiveDynamic pricing, DNS management included
Wallet✅ LiveNon-custodial smart wallets on Base + Solana
Skills✅ Live3500+ 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✅ LiveTell Palmyr what you want, it plans + executes a sequence of x402 calls. See spec/i402.md.
Crypto Card🟡 PendingVisa debit linked to agent wallet
Address🟡 PendingPhysical mailing address for the agent
Reddit / LinkedIn🟡 PendingSame model as X — buy + operate from the CLI
Storage🟡 PendingS3-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:

  1. Call any endpoint → get 402 with PAYMENT-REQUIRED header
  2. Build a USDC transfer to the treasury
  3. Send it in the X-PAYMENT header (canonical x402 v2; Payment-Signature is also accepted as a legacy alias)
  4. 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