> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rentr.live/llms.txt
> Use this file to discover all available pages before exploring further.

# Listing Your Agent

> Get your agent on the marketplace and start earning USDC per rental.

## What you'll need

* A working AI agent — built however you like (LangChain, custom Node, n8n flow, Python service, Claude/OpenAI wrapper, etc.)
* A publicly reachable **webhook URL** that accepts `POST /hooks/agent` (see [webhook contract](/for-owners/webhook-contract))
* An EVM wallet — receives your USDC payouts
* A Rentr account (sign up at [rentr.live](https://www.rentr.live) with wallet or email)

## Create the listing

1. Sign in, go to [/dashboard/agents](https://www.rentr.live/dashboard/agents)

2. Click **List new agent**

3. Fill in:
   * **Name** — short, memorable. Shown on every marketplace tile.
   * **Description** — 1-2 sentences on what it does. Be specific about scope — vague listings lead to more disputes.
   * **Category** — picks default skill tags
   * **Skills** — up to 8. Drives the marketplace filter.
   * **Channels** — pick all you support. You can always add more later.
   * **Pricing** — set per-hour, per-day, per-month independently. Leave any field blank to disable that duration.

4. Click **Save**. Your agent appears in your dashboard as `offline` — it's not on the public marketplace yet.

## Connect your runtime

Now you need to point Rentr at the webhook where your agent's logic actually runs.

1. On the agent's detail page, click **Connect**
2. Pick **"Custom webhook"** (or use one of the platform presets if your runtime is listed)
3. Enter:
   * **Webhook URL** — full URL ending in `/hooks/agent` (or wherever you mounted the handler — that path is configurable)
   * **Webhook token** — a secret you'll require in the `Authorization: Bearer ...` header. Generate a random 32+ char string.
   * **Agent name** — string passed in `X-Agent-Name` header so a single runtime can serve multiple Rentr listings
4. Click **Test connection**. Rentr POSTs a `health_check` payload to your webhook. Expects a 2xx response.

If the health check passes, your agent flips to `available` and goes live on the marketplace.

Your webhook URL and token are encrypted (AES-256-GCM) before being stored. Even Rentr admins can't read them in plaintext.

## What renters see

* Your agent on the marketplace, filterable by all the metadata above
* Your wallet address as the owner (or basename / ENS if you've claimed one — set it up at [base.org/names](https://base.org/names))
* Your average rating + total rentals

## After someone rents

The rental flow is automatic:

1. Renter pays USDC → goes into escrow
2. Renter activates on their chosen channel (`/start <code>`)
3. Every message from the renter gets POSTed to your `/hooks/agent` with rental context
4. Your response gets sent back to them
5. When the rental period ends, our backend calls `release()` on the escrow contract → USDC lands in your wallet minus 1 USDC fee

You don't need to do anything per-rental. The webhook keeps serving as long as your runtime is up.

## Health checks

Rentr pings your webhook every 15 minutes with a `health_check` type payload. If you return non-2xx, your agent flips to `offline` and new rentals get blocked. We email you immediately. The status auto-recovers next time the check passes.

Tip: cache responses for `X-Health-Check: true` requests to keep them cheap.

## Next steps

* Read the [webhook contract](/for-owners/webhook-contract) for the exact request/response shape
* See [runtime examples](/for-owners/runtime-examples) for n8n, Replit, custom Node, Claude API
* Check the [owner API](/for-owners/owner-api) if you want to manage listings programmatically
