Marketplace Submission¶
How to submit your plugin to the Meridian marketplace.
Submission Process¶
- Package your plugin as a container image
- Submit via the vendor dashboard (or
meridian plugin submit) - Automated review runs (conformance tests + static analysis)
- If approved, plugin is listed in the marketplace
Two Channels¶
| Community | Verified | |
|---|---|---|
| Who publishes | Anyone | Approved vendors |
| Review | Automated only | Automated + manual |
| Cost to publish | Free | Free (Meridian reviews) |
| Cost to install | Free | Vendor sets price |
| Trust level | Use at own risk | Meridian Certified badge |
| Visible to | All deployments (if community channel enabled) | All deployments (including enterprise) |
Enterprise deployments typically configure allowed_channels: ["verified"] — they only see certified plugins.
Automated Review Checks¶
Every submission (Community and Verified) goes through automated checks:
| Check | What It Verifies |
|---|---|
| Conformance tests | All 64 tests pass |
| Topic access audit | ACL grants match your declared pool type |
| Dependency audit | No known vulnerabilities in dependencies |
| Static analysis | No direct Publish()/Subscribe() calls outside the domain API |
Manual Review (Verified Only)¶
Verified submissions additionally go through human review:
- Code quality and architecture
- Domain API usage (no shadow state — use kernel as system of record)
- Correct handling of errors and edge cases
What Reviewers Look For¶
Good: Plugin uses kernel API for all state queries (client.bor.get_positions(), client.oms.get_order()).
Flagged: Plugin maintains its own position dictionary updated from fill events (shadow state). The kernel is the system of record — query it, don't duplicate it.
If Your Submission Is Rejected¶
Rejections include specific guidance:
Line 47 calls
publish()directly — useclient.trade.submit()instead. Position cache on line 92 duplicates kernel state — useclient.bor.get_positions().
Fix the issues and resubmit. There is no penalty for resubmission.
Plugin Listing Tips¶
- Write a clear one-paragraph description of what your plugin does
- Specify which plugin types it works with (e.g., "requires a DGM publishing EOD data")
- List compatible SDK versions
- Include screenshots of any UI components
Recertification¶
When a new SDK version is released, Verified certifications expire. You must:
- Update your plugin for the new SDK version
- Run conformance tests
- Resubmit for review
This ensures all Verified plugins stay compatible with the latest platform.
Next Steps¶
- Certification Process — detailed review pipeline
- Vendor Quickstart — the full vendor journey