Selling a prediction market agent is a one-time transaction. Renting one is a business.
The distinction matters. A sale generates revenue once (or monthly with subscriptions, but the buyer owns the software). A rental generates recurring revenue while you retain full control of the agent, push updates without buyer approval, manage infrastructure centrally, and build a customer base with predictable monthly income.
For developers who have built a commercial-quality agent, the rental model is often more lucrative than outright sales — especially when the agent’s edge depends on ongoing strategy updates, data feed maintenance, or infrastructure that individual buyers cannot efficiently run themselves.
This guide covers everything you need to launch and operate an agent rental business: the technical infrastructure, pricing strategy, customer management, financial modeling, scaling, and risk management. It is specific to prediction market agents, not generic SaaS advice.
Disclaimer: Nothing in this guide constitutes financial, legal, or investment advice. Operating an agent rental business may have regulatory implications depending on your jurisdiction. Consult a lawyer before launching a service that involves financial trading software.
The Rental Model Explained
An agent rental business provides customers with access to a running prediction market agent without transferring ownership of the software. The customer pays a recurring fee, connects their platform credentials (Polymarket API key, Kalshi account), configures their risk parameters, and the agent trades on their behalf using their capital.
Why Renting Beats Buying for Many Users
Not everyone who wants an agent should buy one. Renting is the better option when:
- The buyer lacks technical skills to deploy and maintain software. A rental includes managed infrastructure — the customer never touches a terminal.
- The agent requires ongoing updates. Prediction market strategies degrade as markets evolve. A rental includes strategy updates as part of the service.
- Infrastructure costs are prohibitive for individuals. Running a reliable trading agent requires a VPS, monitoring, alerting, and redundancy. Spreading these costs across many customers makes per-customer pricing attractive.
- The buyer wants to try before committing. A monthly rental with no long-term contract is lower risk than a $3,000 software purchase.
The Value Chain
Developer (you) Customer
├── Agent software ├── Capital
├── Infrastructure ├── Platform API keys
├── Strategy updates ├── Risk preferences
├── Monitoring & alerts └── Monthly rental fee
├── Customer support
└── Performance reporting
You own the agent. The customer rents access to a running instance configured for their account. When they stop paying, their instance shuts down. You retain the software, the infrastructure, and the ability to serve the next customer.
Infrastructure Requirements
A rental business is fundamentally a multi-tenant software service. Each customer runs their own isolated instance of the agent with their own configuration, API keys, and risk parameters. The infrastructure must ensure isolation between customers, reliable uptime, and efficient resource utilization.
Multi-Tenant Architecture
┌─────────────────────────────────────────────────────┐
│ CONTROL PLANE │
│ (customer management, billing, monitoring) │
├──────────┬──────────┬──────────┬────────────────────┤
│ Customer │ Customer │ Customer │ Customer N │
│ Instance │ Instance │ Instance │ Instance │
│ A │ B │ C │ ... │
│ │ │ │ │
│ Config A │ Config B │ Config C │ Config N │
│ Keys A │ Keys B │ Keys C │ Keys N │
│ Logs A │ Logs B │ Logs C │ Logs N │
└──────────┴──────────┴──────────┴────────────────────┘
↓ ↓ ↓
Polymarket Kalshi Polymarket
(Customer A) (Customer B) (Customer C)
Each customer instance is an isolated container running your agent with that customer’s specific configuration. The control plane manages provisioning, monitoring, billing, and lifecycle operations across all instances.
Core Infrastructure Components
| Component | Purpose | Recommended Tool |
|---|---|---|
| Container orchestration | Run isolated agent instances | Kubernetes or Docker Swarm |
| Secrets management | Store customer API keys securely | HashiCorp Vault or AWS Secrets Manager |
| Usage metering | Track per-customer resource usage | Custom + Stripe Billing |
| Monitoring | Agent health and performance | Prometheus + Grafana |
| Alerting | Notify on errors, drawdowns, outages | PagerDuty or Opsgenie |
| Logging | Centralized logs across all instances | ELK Stack or Loki |
| Database | Customer config, billing, performance | PostgreSQL |
| API gateway | Customer-facing API for config and status | Kong or Traefik |
Access Control
Every customer’s data and credentials must be strictly isolated. A security breach that exposes one customer’s API keys to another is a business-ending event.
# Customer isolation model
class CustomerInstance:
"""Represents a single customer's agent deployment."""
def __init__(self, customer_id: str, config: dict):
self.customer_id = customer_id
self.container_id = None
self.config = config
self.status = "provisioning"
def provision(self):
"""Create an isolated container for this customer."""
self.container_id = orchestrator.create_container(
image="prediction-agent:latest",
name=f"agent-{self.customer_id}",
environment={
"CUSTOMER_ID": self.customer_id,
"CONFIG_PATH": f"/config/{self.customer_id}.yaml",
},
secrets=[
f"customer-{self.customer_id}-platform-keys",
],
resource_limits={
"cpu": self.config.get("cpu_limit", "0.5"),
"memory": self.config.get("memory_limit", "512Mi"),
},
network_policy="customer-isolated", # No inter-container comms
)
self.status = "running"
def update_config(self, new_config: dict):
"""Update customer's agent configuration without restart."""
validate_config(new_config)
secrets_manager.update(
f"customer-{self.customer_id}-config", new_config
)
orchestrator.signal_reload(self.container_id)
def get_performance(self) -> dict:
"""Retrieve customer's performance metrics."""
return metrics_store.query(
customer_id=self.customer_id,
metrics=["total_return", "sharpe", "drawdown", "trades"],
)
Pricing Rental Tiers
Tiered pricing is standard for agent rental businesses. Each tier bundles a specific combination of features, support level, and infrastructure allocation. The goal is to capture different willingness-to-pay segments without overcomplicating the offering.
Example Pricing Structure
| Feature | Basic | Pro | Enterprise |
|---|---|---|---|
| Monthly Price | $149/mo | $399/mo | $999+/mo |
| Strategies included | 1 | Up to 3 | Unlimited |
| Platforms supported | Polymarket OR Kalshi | Both | Both + custom |
| Max capital managed | $25,000 | $100,000 | Unlimited |
| Rebalance frequency | Hourly | 15 minutes | Real-time |
| Support | Email (48hr) | Email (24hr) + Discord | Dedicated Slack + phone |
| Performance reports | Monthly | Weekly | Daily |
| Custom configuration | Limited | Full | Full + custom strategies |
| Uptime SLA | 95% | 99% | 99.5% |
| Risk controls | Standard | Advanced | Custom |
| Onboarding | Self-service | Guided setup call | White-glove onboarding |
Pricing Rationale
The Basic tier is priced to cover infrastructure costs with a small margin and serves as an entry point. Customers who see positive results upgrade to Pro. The Pro tier is where most revenue comes from — it offers meaningfully more value (multiple strategies, faster rebalancing, better support) at a price that is still accessible. Enterprise is negotiated per-customer and targets funds or serious traders managing significant capital.
For a deeper analysis of pricing strategies, see the pricing guide.
Add-On Revenue
Beyond base subscription fees, consider add-on revenue streams:
| Add-On | Price | Description |
|---|---|---|
| Revenue-sharing component | 10-15% of profits | On top of base fee, aligns incentives |
| Custom strategy development | $2,000-10,000 one-time | Build a custom strategy for the customer |
| Priority execution queue | $100/mo | Lower-latency order placement |
| Historical performance export | $50/mo | Detailed CSV/API data export |
| Multi-account support | $99/mo per additional account | Run on multiple platform accounts |
Technical Setup
Containerized Agent Deployment
Each customer runs in an isolated Docker container. Use Kubernetes for orchestration if you plan to scale beyond 20 customers; Docker Compose or Swarm works fine below that threshold.
# docker-compose template for a single customer instance
version: "3.8"
services:
agent-customer-001:
image: prediction-agent:2.1.0
container_name: agent-customer-001
environment:
- CUSTOMER_ID=customer-001
- CONFIG_PATH=/config/customer-001.yaml
- LOG_LEVEL=INFO
- METRICS_ENDPOINT=http://prometheus:9090
volumes:
- customer-001-config:/config
- customer-001-logs:/logs
secrets:
- customer-001-platform-keys
deploy:
resources:
limits:
cpus: "0.5"
memory: 512M
reservations:
cpus: "0.25"
memory: 256M
restart_policy:
condition: on-failure
delay: 30s
max_attempts: 5
networks:
- customer-isolated
- monitoring
secrets:
customer-001-platform-keys:
external: true
networks:
customer-isolated:
driver: bridge
internal: true # No external access between customer networks
monitoring:
driver: bridge
API Key Management
Customer API keys (Polymarket, Kalshi credentials) are the most sensitive data in your system. They provide direct access to the customer’s trading account and funds.
Requirements:
- Encrypted at rest using AES-256 or equivalent
- Never stored in plaintext in configuration files, databases, or logs
- Rotated on customer request with zero-downtime key swap
- Access logged and auditable
- Deleted immediately when a customer cancels
class SecureKeyManager:
"""Manages customer platform API keys with encryption."""
def __init__(self, vault_client):
self.vault = vault_client
def store_keys(self, customer_id: str, platform: str, keys: dict):
"""Store encrypted platform credentials for a customer."""
path = f"secret/customers/{customer_id}/{platform}"
self.vault.write(path, **keys)
def get_keys(self, customer_id: str, platform: str) -> dict:
"""Retrieve decrypted platform credentials at runtime."""
path = f"secret/customers/{customer_id}/{platform}"
secret = self.vault.read(path)
return secret["data"]
def rotate_keys(self, customer_id: str, platform: str, new_keys: dict):
"""Rotate keys with zero downtime."""
# Store new keys under a versioned path
self.store_keys(customer_id, platform, new_keys)
# Signal the running agent to reload credentials
orchestrator.signal_key_rotation(customer_id)
def delete_keys(self, customer_id: str):
"""Permanently delete all keys for a cancelled customer."""
platforms = ["polymarket", "kalshi"]
for platform in platforms:
path = f"secret/customers/{customer_id}/{platform}"
self.vault.delete(path)
For more on securing agent infrastructure, see the security guide.
Usage Limits and Metering
Each pricing tier has resource limits. Enforce them at the infrastructure level so that one customer’s heavy usage does not degrade service for others.
| Resource | Basic Limit | Pro Limit | Enterprise Limit |
|---|---|---|---|
| API calls/minute | 30 | 120 | 500 |
| Active positions | 10 | 50 | Unlimited |
| Data queries/hour | 100 | 500 | 2,000 |
| Config changes/day | 5 | 20 | Unlimited |
| Log retention | 30 days | 90 days | 1 year |
Customer Onboarding Flow
A smooth onboarding experience reduces churn in the first 30 days — the period when most rental customers decide whether to stay or leave.
The Five-Step Flow
Step 1: Signup Step 2: Configure Step 3: Connect
───────────────── ───────────────── ─────────────────
Create account Select strategy Provide platform
Choose tier Set risk params API credentials
Payment setup Choose platforms Credential validation
Review settings
↓ ↓ ↓
Step 4: Deploy Step 5: Monitor
───────────────── ─────────────────
Provision container Live dashboard
Run validation Performance reports
Start paper trading Alert configuration
Go live (customer Support channel
approval required) access
Step-by-Step Detail
Step 1: Signup (5 minutes). Customer creates an account, selects their tier, and enters payment information. Automate this entirely — no manual intervention required.
Step 2: Configure (10-15 minutes). Customer selects their strategy (or strategies for Pro/Enterprise), sets risk parameters (max position size, daily loss limit, max drawdown), and chooses which platforms to trade on. Provide sensible defaults for every parameter so customers who do not want to customize can skip ahead.
Step 3: Connect (5 minutes). Customer provides their platform API keys. Your system validates the keys by making a read-only API call (check balance, list markets). If validation fails, provide clear error messages and troubleshooting steps.
Step 4: Deploy (automatic, 2-5 minutes). Your system provisions a container, loads the customer’s configuration, and runs a series of validation checks: can the agent connect to the platform? Can it read market data? Can it construct orders? Start with a 24-hour paper trading period so the customer can verify the agent’s behavior before risking capital.
Step 5: Monitor (ongoing). Customer gets access to a dashboard showing live performance, open positions, recent trades, and alerts. Auto-generate weekly performance reports. Provide a direct support channel (email for Basic, Discord for Pro, Slack for Enterprise).
Managing Multiple Customers
As your customer count grows, you need systems for managing operations across all instances without manual per-customer attention.
Operations Dashboard
Build a centralized dashboard that shows:
| Metric | Why It Matters |
|---|---|
| Active instances | How many customers are running |
| Instance health | CPU, memory, error rates per instance |
| Aggregate performance | Average return across all customers |
| Worst-performing instance | Identify customers who may churn |
| Upcoming renewals | Revenue at risk |
| Support tickets open | Support load indicator |
| Infrastructure utilization | Capacity planning |
Automated Alerts
Configure alerts for conditions that require attention:
- Critical: Agent instance crashed, customer API keys expired, daily loss limit hit
- Warning: Agent instance high CPU/memory, customer approaching capital limit, unusual trading pattern
- Informational: Customer upgraded/downgraded tier, new signup completed onboarding, monthly renewal processed
SLA Monitoring
Your pricing tiers promise specific uptime percentages. Track actual uptime per customer and per tier. If you fall below SLA, proactively issue credits before the customer complains. This builds trust and reduces churn.
class SLAMonitor:
"""Track uptime per customer against SLA commitments."""
SLA_TARGETS = {
"basic": 0.95, # 95% uptime
"pro": 0.99, # 99% uptime
"enterprise": 0.995 # 99.5% uptime
}
def check_sla_compliance(self, customer_id: str, period_days: int = 30):
"""Calculate actual uptime and compare to SLA target."""
tier = self.get_customer_tier(customer_id)
target = self.SLA_TARGETS[tier]
total_minutes = period_days * 24 * 60
downtime_minutes = self.get_downtime_minutes(customer_id, period_days)
actual_uptime = (total_minutes - downtime_minutes) / total_minutes
if actual_uptime < target:
credit_pct = self.calculate_credit(target, actual_uptime)
self.issue_credit(customer_id, credit_pct)
self.notify_customer(
customer_id,
f"Your uptime was {actual_uptime:.2%} against our "
f"{target:.2%} SLA. We've applied a {credit_pct}% credit "
f"to your next invoice."
)
return {
"customer_id": customer_id,
"tier": tier,
"target_uptime": target,
"actual_uptime": actual_uptime,
"compliant": actual_uptime >= target,
}
Financial Modeling: Unit Economics
Understanding the unit economics of your rental business determines whether it is viable and how to scale it profitably.
Cost Structure Per Customer
| Cost Category | Monthly Cost (estimated) | Notes |
|---|---|---|
| Compute (container) | $15-40 | Depends on instance size and cloud provider |
| Data feeds | $5-20 | Market data, news APIs, per-customer allocation |
| Monitoring and logging | $3-8 | Prometheus, Grafana, log storage |
| Secrets management | $2-5 | Vault or cloud KMS |
| Support time | $20-100 | Varies wildly by tier and customer |
| Payment processing | 3-5% of revenue | Stripe fees |
| Total per customer | $50-180 |
Revenue and Margin by Tier
| Tier | Monthly Revenue | Estimated Cost | Gross Margin | Margin % |
|---|---|---|---|---|
| Basic ($149) | $149 | $65 | $84 | 56% |
| Pro ($399) | $399 | $100 | $299 | 75% |
| Enterprise ($999) | $999 | $160 | $839 | 84% |
Breakeven Analysis
Fixed costs (your time, infrastructure baseline, tooling subscriptions) run approximately $500-2,000/month depending on complexity. At a blended average revenue of $300/customer and $100/customer variable cost:
- Breakeven: 3-10 customers (depending on fixed costs)
- Comfortable profitability: 15-20 customers
- Scaling point (hire support): 40-50 customers
Monthly Recurring Revenue Projection
| Customers | Mix (B/P/E) | MRR | Variable Costs | Fixed Costs | Net Profit |
|---|---|---|---|---|---|
| 5 | 3/2/0 | $1,245 | $400 | $1,000 | -$155 |
| 10 | 5/4/1 | $3,340 | $900 | $1,000 | $1,440 |
| 25 | 12/10/3 | $8,775 | $2,200 | $1,500 | $5,075 |
| 50 | 25/18/7 | $17,725 | $4,500 | $2,500 | $10,725 |
| 100 | 50/35/15 | $36,300 | $9,000 | $5,000 | $22,300 |
These projections assume no revenue-sharing add-ons. Adding a 10-15% profit-share component on top of base fees can increase revenue per customer by 20-50% in profitable months.
Scaling the Business
From 1 to 10 Customers: Manual Operations
At this stage, you are the entire company. You handle provisioning, support, billing, and operations manually. This is fine — the priority is validating that customers find value in the service and are willing to pay.
Focus on:
- Getting direct feedback from every customer
- Identifying which features matter most
- Refining your onboarding process
- Building the monitoring dashboard you wish you had
From 10 to 50 Customers: Automation Required
Manual operations break down around 10-15 customers. Invest in:
- Automated provisioning: Customer signup triggers automatic container deployment
- Self-service configuration: Customers change settings through a web dashboard, not support tickets
- Automated billing: Stripe or equivalent handles upgrades, downgrades, and renewals
- Automated alerting: You should only be paged for truly critical issues
- Documentation: A comprehensive knowledge base reduces support volume by 40-60%
From 50 to 100+ Customers: Team and Process
At this scale, you need at least one other person — likely a part-time support hire. Your time should be spent on strategy development and infrastructure, not answering customer questions about how to change their risk parameters.
Consider:
- Hiring a part-time customer support person ($2,000-4,000/month)
- Investing in a proper customer portal with self-service capabilities
- Building automated performance reports and dashboards
- Implementing a formal incident response process
Risk Management
Running trading agents on behalf of customers creates risk for both parties. Proactive risk management protects your business and your customers’ capital.
What Happens When the Agent Loses Money
This will happen. No trading strategy wins every period. Your response determines whether the customer stays or churns — and whether they leave a positive or negative review.
Technical safeguards:
- Daily loss limits: automatically pause trading if losses exceed a threshold (e.g., 3% of portfolio in a single day)
- Maximum drawdown circuit breaker: pause the agent if cumulative losses from peak exceed the customer’s configured limit (typically 15-25%)
- Position size limits: no single position exceeds a percentage of the portfolio
- Alert the customer immediately when any safeguard triggers
Communication protocol:
- When the agent has a losing day: no special communication needed (this is normal)
- When the agent hits a daily loss limit: automated email explaining what happened and that safeguards are working
- When the agent hits a max drawdown pause: personal email from you explaining the situation, what the agent did, and options (resume, adjust parameters, pause)
- When a customer loses significant capital: phone call. Do not hide behind email.
Contractual protections:
- Terms of service clearly state that trading involves risk of financial loss
- No guaranteed returns — ever, in any communication
- Customer acknowledges that past performance does not predict future results
- Limitation of liability clause reviewed by a lawyer
Operational Risk
Beyond trading losses, manage:
| Risk | Mitigation |
|---|---|
| Platform API outage | Multi-platform support, graceful degradation |
| Agent software bug | Automated testing, staged rollouts, instant rollback |
| Security breach | Encrypted key storage, access logging, penetration testing |
| Infrastructure failure | Multi-zone deployment, automated failover |
| Customer API key expiration | Proactive monitoring, automated notification |
Platform Comparison for Hosting
Where you host your rental infrastructure affects cost, reliability, and scalability.
| Platform | Pros | Cons | Cost (10 customers) |
|---|---|---|---|
| AWS (ECS/EKS) | Mature, full ecosystem, reliable | Complex, expensive at small scale | $200-400/mo |
| Google Cloud (GKE) | Good Kubernetes support, competitive pricing | Smaller ecosystem than AWS | $180-350/mo |
| DigitalOcean (K8s) | Simple, developer-friendly, predictable pricing | Fewer regions, smaller scale ceiling | $120-250/mo |
| Hetzner | Lowest cost by far, European data centers | Fewer managed services, EU-focused | $60-150/mo |
| Railway/Fly.io | Easiest deployment, fast iteration | Less control, higher per-unit cost at scale | $150-300/mo |
Recommendation: Start with DigitalOcean or Railway for simplicity. Move to AWS/GCP when you exceed 30-40 customers or need multi-region deployment. Hetzner is the cost-optimized choice if your customers are not latency-sensitive (prediction market trading rarely requires sub-millisecond execution).
Getting Started
Launching an agent rental business follows a clear sequence:
- Validate your agent — ensure it has a verified track record of at least 90 days with live capital
- Build the control plane — customer management, provisioning, monitoring, and billing
- Set up infrastructure — containerized deployment with customer isolation and secrets management
- Define pricing tiers — start with two tiers (Basic and Pro) and add Enterprise when you have demand
- Onboard your first customer — do it manually, learn what breaks, and document everything
- Automate what breaks — every manual step you repeat more than five times should be automated
- Scale to 10 customers — validate unit economics and refine operations
- Hire for support — once support load exceeds 10 hours/week, hire help
The rental model is operationally heavier than selling agents outright. You are running a service, not shipping a product. But the revenue characteristics — recurring, predictable, with high margins at scale — make it the most sustainable business model for developers with a proven prediction market agent.
Start small. Validate demand with a handful of customers. Scale infrastructure and process as revenue justifies the investment.
Further Reading
- 5 Prediction Market Bot Pricing Models — detailed pricing strategies including rental pricing
- How to Sell Your Prediction Market Bot — alternative monetization through sales and licensing
- The AgentBets Marketplace — where to list rental agents alongside one-time purchases
- How to Build a Prediction Market Agent People Will Pay For — building the agent itself for commercial viability
- Agent Betting Security Guide — securing agent infrastructure and customer data