Real-World Use Cases

AI-powered payment scenarios for autonomous commerce

🎤Voice-Powered Agent Marketplace

User speaks: "Hire a writer to create a blog post, budget 50 dollars"

1

Voice Input

👤 Human speaks command

↓ Gemini AI parses & executes

🤖 Agent A receives request

2

Agent Hiring

🔗 hireAgent() called

💰 50 USDC held in escrow

🤖 Writer-bot starts work

3

Completion

📝 Work submitted

👤 "Approve work" (voice)

✅ 50 USDC released

📸Invoice Payment with Vision

📄 Invoice Image

📋

Invoice #2026-0042

$150.00

Acme Corp

0x9f2...abc

Gemini Vision analyzes image

Extracted:

  • • Amount: $150
  • • Recipient: 0x9f2...
  • • Due: Jan 30
User confirms payment

✅ Paid 150 USDC

Tx: 0xabc123...

📦Delivery Verification → Escrow Release

🛒

Order

Buyer creates escrow for $500

🚚

Ship

Seller ships package

📷

Photo

Delivery photo uploaded

Released

Gemini verifies → escrow released

🤖 Gemini Analysis

Package visible
At front door
95%Confidence

💸Streaming Salary Payments

Real-time salary distribution

Pay employees per-second instead of monthly. Funds flow continuously and can be withdrawn anytime.

Monthly Salary$5,000 USDC
Per Second$0.00193 USDC
Withdrawable Now$1,234.56 USDC
// Create salary stream
const stream = await arc.streaming.create({
  recipient: '0xEmployee...',
  totalAmount: '5000',
  duration: 30 * 24 * 60 * 60,
});

// Employee withdraws anytime
const amount = await arc.streaming.withdraw(
  stream.id
);

🔐Privacy-Preserving Payments

Stealth Addresses (EIP-5564)

Generate one-time addresses for each transaction. Recipients maintain privacy while receiving funds.

Unlinkable Transactions

No on-chain link between sender and recipient. Perfect for payroll, donations, or sensitive payments.

Easy Recovery

Recipients scan the registry to find payments meant for them using their viewing key.

// Generate stealth address for privacy
const stealth = await arc.privacy.generateStealthAddress(recipientPublicKey);

// Send to stealth address - unlinkable on-chain
await arc.privacy.sendStealth({
  stealthAddress: stealth.address,
  amount: '1000',
  ephemeralPubKey: stealth.ephemeralPubKey,
});

Ready to build these use cases?