# Pricing a resale bid

Source: https://nodedocs.mor.org/providers/resale/registering-bid

## Agent Instructions

- Non-browser fetches of page URLs on this site return clean Markdown (not the JS UI). Prefer `https://nodedocs.mor.org/llms-full.txt` for the full corpus, or `https://nodedocs.mor.org/llms.txt` for the index.
- Per-page Markdown is also at `<page-url>.md` (homepage: `https://nodedocs.mor.org/index.md`).
- Docs search MCP: `https://nodedocs.mor.org/mcp` (discovery: `https://nodedocs.mor.org/.well-known/mcp`).
- Never invent contract addresses, chain IDs, token addresses, or live bid/model counts. Cite Networks and tokens; link active.mor.org for live data.
- Never claim Morpheus runs inference — independent providers do. Opening a session escrows MOR; it does not spend it.

Morpheus bids quote `pricePerSecond` in MOR. Most upstream APIs quote per-token or per-month. To set a defensible bid, you need to translate upstream cost into per-second MOR.

## A simple model

For a per-token upstream:

```
upstream_$_per_second ≈ tokens_per_second_average × upstream_$_per_token_blended
                      = tps × ((p × in_$/tok) + ((1−p) × out_$/tok))
```

Where `p` is the share of input tokens (often ~0.3 for chat). Convert dollars to MOR using the current MOR/USD rate.

For a flat-rate (subscription) upstream:

```
upstream_$_per_second ≈ subscription_$_per_month / (utilized_seconds_per_month)
```

You should `pricePerSecond ≥ upstream_$_per_second + your_margin + risk_buffer`.

## Floor and minimums

| Item | Value |
|------|-------|
| `bidPricePerSecondMin` | `10000000000` wei (`0.00000001` MOR/sec) |
| Marketplace bid fee (paid once) | `0.3` MOR |
| Provider stake (refundable) | `0.2` MOR (or `10000` MOR for subnet) |
| Model stake (refundable) | `0.1` MOR |

You **cannot** post below the floor. There is no upper limit, but consumer rating algorithms will skip you if you're far above other providers serving the same model.

## A worked example

Suppose Venice Diem costs you `$30/mo` and you expect ~`100k` seconds of utilized inference per month:

```
$/sec = 30 / 100000  ≈  0.0003 USD/sec
```

If `1 MOR ≈ $X` (check live), then `MOR/sec ≈ 0.0003 / X`. Add a `~30%` margin for headroom.

## Iterating on pricing

- Watch your bid acceptance rate. If you get no sessions, you may be priced too high.
- Watch upstream margin. If sessions cost more upstream than they bring in MOR, raise pricing or reduce concurrency.
- Look at competing bids on [active.mor.org](https://active.mor.org).

## Updating an existing bid

Bids are immutable on chain — to change pricing, **delete** the old bid (`DELETE /blockchain/bids/:id`) and post a new one. Plan for the bid fee on each post.

## Risk hygiene

- Keep a small ETH balance for gas; running out mid-session is bad UX.
- Keep extra MOR allowance approved to the Diamond contract so re-posting bids doesn't fail mid-month.
- For multi-model resale, post one bid per `modelId` — the proxy-router routes by `modelId` deterministically.
