Family summary
| Surface | Protocol | Visibility | Authoritative artifact |
|---|
| Copy Trading REST | REST / OpenAPI | Product-specific | rust-packages/copy-trading/backend/src/api/rest-api-docs.yml |
| Copy Trading Realtime | WebSocket / AsyncAPI | Product-specific | rust-packages/copy-trading/backend/src/api/async-api-docs.yml |
Contract highlights
| Surface | Concrete contract points from source specs |
|---|
| REST | POST /strategy/register, POST /strategy/unregister, GET /encryption-key, GET /status |
| Realtime | One WebSocket channel at /ws with LogonRequest, LogonResponse, and StrategyEventWithId messages |
| Shared auth model | Signature-bearing payload fields are used; no OpenAPI bearer-token scheme is declared |
Protocol behavior snapshot
| Surface | Source-backed behavior that matters |
|---|
| REST request model | Strategy registration and unregistration are signed request flows; registration also carries encrypted auth material and can optionally include sessionDelegatedPayload |
| REST status model | The source artifact publishes 200, 400, and 500 status handling for the strategy-management endpoints, plus dedicated encryption-key and health/status reads |
| Realtime session model | The logon request must be the first message after the WebSocket connection is established, and one Ethereum address can have only one active channel at a time |
| Realtime event model | The current AsyncAPI contract publishes StrategyEventWithId, LogonRequest, and LogonResponse as the public message shapes in the source artifact |
| Environment note | The source artifacts list local development servers (http://localhost:8080, ws://localhost:3000/ws); those values are development carriers, not public production host guarantees |
Boundaries and caveats
- Copy-trading contracts are product-specific and should not be treated as interchangeable with core exchange REST/realtime contracts.
- The source artifacts list local development servers (
http://localhost:8080, ws://localhost:3000/ws), which are not a production-host contract.
- The REST and AsyncAPI specs do not declare global quota values or protocol-level numeric error enums.
Public-doc publication rule
Public Mintlify keeps copy-trading at the boundary-summary level. Product-specific source artifacts are named here, but their generated spec bundles are not published as part of the primary public contract.
Historical public copy-trading detail links resolve back to this boundary summary rather than to separate public REST or realtime contract pages.
The retired copy-trading spec-mirror URLs follow the same boundary-summary continuity rule instead of publishing separate public generated bundles.
Public boundary behavior
| Public route behavior | Meaning |
|---|
| Family route | This page is the canonical public entrypoint for copy-trading visibility and source ownership |
| Historical deep links | Older route paths for copy-trading REST and realtime detail collapse back to this summary rather than preserving a deeper public subtree |
| Spec-mirror URLs | /api-specs/copy-trading-rest.yml and /api-specs/copy-trading-realtime.yml route here instead of publishing generated product-specific bundles |
| Integration warning | Use this page to confirm that a copy-trading contract is product-specific before assuming it behaves like the public core exchange APIs |
Last modified on April 13, 2026