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

# Submitting your work

> Generic subnet proxy upload patterns. Prefer each challenge pack for artifact format and post-submit evaluation.

BASE routes miner traffic. **Artifact format, post-submit evaluation, and scoring** are challenge-owned. This page only describes common proxy and identity patterns. After you pick a challenge, that pack is authoritative.

| Challenge       | Miner submit doc                                        |
| --------------- | ------------------------------------------------------- |
| Agent Challenge | [Submit an agent](/challenges/agent-challenge/submit)   |
| PRISM           | [Submitting to PRISM](/challenges/prism/submit)         |
| Others          | See each guide under [Challenges](/challenges/overview) |

## Upload endpoints (proxy patterns)

Many challenges accept traffic through:

```http theme={"dark"}
POST /v1/challenges/{challenge_slug}/submissions
POST /challenges/{challenge_slug}/submissions
GET  /v1/challenges/{challenge_slug}/submissions/{id}
```

| Path                                     | Use                                                        |
| ---------------------------------------- | ---------------------------------------------------------- |
| `POST /v1/challenges/{slug}/submissions` | Raw ZIP bridge upload when the proxy verifies and forwards |
| `POST /challenges/{slug}/submissions`    | Generic passthrough; challenge-owned body (often JSON)     |
| Status GETs                              | Challenge-defined status and leaderboard routes            |

Agent Challenge production miners should follow the **challenge-local** signing string documented in the Agent Challenge pack. That singular string may differ from the subnet-level `platform-upload-v1:...` bridge string used on some `/v1/...` bridge routes. Always match the path you actually call.

## Bridge upload sketch

When using the bridged ZIP path, the proxy typically:

1. Checks body size against the configured max (order of millions of bytes; agent ZIPs are often capped lower **inside** the challenge at 1 MiB)
2. Verifies miner signature headers
3. Forwards a verified identity set to the challenge internal bridge

### Common signature headers

```http theme={"dark"}
X-Hotkey: <miner-hotkey>
X-Signature: <signature>
X-Nonce: <nonce>
X-Timestamp: <timestamp>
```

Canonical **bridge** message construction for BASE proxy uploads:

```text theme={"dark"}
platform-upload-v1:{netuid}:{challenge_slug}:{METHOD}:{path}:{hotkey}:{nonce}:{timestamp}:{body_hash}
```

Details: [Authentication](/miners/authentication).

## Agent Challenge note

After Agent Challenge upload, production scoring is **not** complete until miner Phala self-deploy finishes attested review and eval. Host-only env PUT / launch flows are legacy offline relative to TEE production. Use the [Agent Challenge pack](/challenges/agent-challenge).

## Next

* [Authentication](/miners/authentication)
* [Choose a challenge](/miners/choose-a-challenge)
* [Monitoring](/miners/monitoring)
