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

ComponentPurposeRecommended Tool
Container orchestrationRun isolated agent instancesKubernetes or Docker Swarm
Secrets managementStore customer API keys securelyHashiCorp Vault or AWS Secrets Manager
Usage meteringTrack per-customer resource usageCustom + Stripe Billing
MonitoringAgent health and performancePrometheus + Grafana
AlertingNotify on errors, drawdowns, outagesPagerDuty or Opsgenie
LoggingCentralized logs across all instancesELK Stack or Loki
DatabaseCustomer config, billing, performancePostgreSQL
API gatewayCustomer-facing API for config and statusKong 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

FeatureBasicProEnterprise
Monthly Price$149/mo$399/mo$999+/mo
Strategies included1Up to 3Unlimited
Platforms supportedPolymarket OR KalshiBothBoth + custom
Max capital managed$25,000$100,000Unlimited
Rebalance frequencyHourly15 minutesReal-time
SupportEmail (48hr)Email (24hr) + DiscordDedicated Slack + phone
Performance reportsMonthlyWeeklyDaily
Custom configurationLimitedFullFull + custom strategies
Uptime SLA95%99%99.5%
Risk controlsStandardAdvancedCustom
OnboardingSelf-serviceGuided setup callWhite-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-OnPriceDescription
Revenue-sharing component10-15% of profitsOn top of base fee, aligns incentives
Custom strategy development$2,000-10,000 one-timeBuild a custom strategy for the customer
Priority execution queue$100/moLower-latency order placement
Historical performance export$50/moDetailed CSV/API data export
Multi-account support$99/mo per additional accountRun 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.

ResourceBasic LimitPro LimitEnterprise Limit
API calls/minute30120500
Active positions1050Unlimited
Data queries/hour1005002,000
Config changes/day520Unlimited
Log retention30 days90 days1 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:

MetricWhy It Matters
Active instancesHow many customers are running
Instance healthCPU, memory, error rates per instance
Aggregate performanceAverage return across all customers
Worst-performing instanceIdentify customers who may churn
Upcoming renewalsRevenue at risk
Support tickets openSupport load indicator
Infrastructure utilizationCapacity 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 CategoryMonthly Cost (estimated)Notes
Compute (container)$15-40Depends on instance size and cloud provider
Data feeds$5-20Market data, news APIs, per-customer allocation
Monitoring and logging$3-8Prometheus, Grafana, log storage
Secrets management$2-5Vault or cloud KMS
Support time$20-100Varies wildly by tier and customer
Payment processing3-5% of revenueStripe fees
Total per customer$50-180

Revenue and Margin by Tier

TierMonthly RevenueEstimated CostGross MarginMargin %
Basic ($149)$149$65$8456%
Pro ($399)$399$100$29975%
Enterprise ($999)$999$160$83984%

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

CustomersMix (B/P/E)MRRVariable CostsFixed CostsNet Profit
53/2/0$1,245$400$1,000-$155
105/4/1$3,340$900$1,000$1,440
2512/10/3$8,775$2,200$1,500$5,075
5025/18/7$17,725$4,500$2,500$10,725
10050/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:

RiskMitigation
Platform API outageMulti-platform support, graceful degradation
Agent software bugAutomated testing, staged rollouts, instant rollback
Security breachEncrypted key storage, access logging, penetration testing
Infrastructure failureMulti-zone deployment, automated failover
Customer API key expirationProactive monitoring, automated notification

Platform Comparison for Hosting

Where you host your rental infrastructure affects cost, reliability, and scalability.

PlatformProsConsCost (10 customers)
AWS (ECS/EKS)Mature, full ecosystem, reliableComplex, expensive at small scale$200-400/mo
Google Cloud (GKE)Good Kubernetes support, competitive pricingSmaller ecosystem than AWS$180-350/mo
DigitalOcean (K8s)Simple, developer-friendly, predictable pricingFewer regions, smaller scale ceiling$120-250/mo
HetznerLowest cost by far, European data centersFewer managed services, EU-focused$60-150/mo
Railway/Fly.ioEasiest deployment, fast iterationLess 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:

  1. Validate your agent — ensure it has a verified track record of at least 90 days with live capital
  2. Build the control plane — customer management, provisioning, monitoring, and billing
  3. Set up infrastructure — containerized deployment with customer isolation and secrets management
  4. Define pricing tiers — start with two tiers (Basic and Pro) and add Enterprise when you have demand
  5. Onboard your first customer — do it manually, learn what breaks, and document everything
  6. Automate what breaks — every manual step you repeat more than five times should be automated
  7. Scale to 10 customers — validate unit economics and refine operations
  8. 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