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

# Manifest and Builders Marketplace submit

> Aligned with @orderly.network/devkit submit, update, and manifest wiring (see the published package for source filenames).

Aligned with **`@orderly.network/devkit`** **`submit`**, **`update`**, and manifest wiring (see the published package for source filenames).

## Resolution order

`submit` loads **`.orderly-manifest.json`** when present; otherwise it derives fields from **`package.json`** and **git `origin`**. You need a valid **`name`** in `package.json` at minimum for resolution to succeed.

* **`repoUrl`**: must be `https://github.com/<owner>/<repo>`; devkit can fill from `git remote get-url origin` (SSH URLs are normalized to HTTPS).
* **`npmName`**: from `package.json` `name` or manifest.
* **`pluginId`**: optional in some flows but required for identity; pattern below.

## Field rules (submit)

| Field              | Rule                                                                                             |
| ------------------ | ------------------------------------------------------------------------------------------------ |
| `npmName`          | Valid npm package name (see devkit `NPM_NAME_REGEX`)                                             |
| `repoUrl`          | Required; must match **GitHub HTTPS** pattern used by the CLI                                    |
| `pluginId`         | If set: **must** match `/^[a-zA-Z][a-zA-Z0-9-]*$/` (starts with letter; letters, digits, hyphen) |
| `tags`             | Optional; max **5**; each from [valid set](#valid-builder-marketplace-tags)                      |
| `coverImages`      | Optional; max **10** URLs                                                                        |
| `usagePrompt`      | Optional; max **8192** chars                                                                     |
| `storybookUrl`     | Optional                                                                                         |
| `storybookTooltip` | Optional                                                                                         |

Invalid tag values passed via `--tags` are **warned and removed**; remaining valid tags are kept.

## `.orderly-manifest.json`

Typical fields (see `generateManifest` / your project’s template):

* `npmName`
* `pluginId`
* `repoUrl`
* `tags`, `storybookUrl`, `storybookTooltip`, `usagePrompt`, `coverImages`
* `createdAt` / `updatedAt` when generated by the CLI

Keep `pluginId` synchronized with `SDK.registerPlugin({ id: "..." })`.

## Valid Builders Marketplace tags

Maximum **5** tags. Allowed values:

`UI`, `Indicator`, `Order Entry`, `Trading`, `Chart`, `Portfolio`, `Analytics`, `Tool`, `Widget`

## Submit HTTP behavior (typical)

| Status | Meaning                                    |
| ------ | ------------------------------------------ |
| `201`  | Created / submitted for review             |
| `400`  | Validation error—check message and details |
| `401`  | Not authenticated—`orderly-devkit login`   |
| Other  | See server message; see devkit output      |

`update` uses PATCH semantics and the same kind of limits for tags, `coverImages`, and `usagePrompt`.

## `view` and `list`

Both use authenticated requests in the devkit. Treat Builders Marketplace responses as the source of truth for listing metadata after submit.

See also: [CLI reference](/build-on-omnichain/builder-marketplace/cli-reference).
