Finance (Crypto and exchanges), New listing
A token's listing on a trading terminal: a tag and the headline, the start panel with the symbol and name, the date and time in UTC it trades from in the mono face, its source and when it was announced, the trading pairs (up to six) lit one by one, then what the project promises and what it does not side by side at the same size, then the button and the brand's analyst. The risk warning stays on screen throughout. Ten seconds, and half a second longer per pair.
| Template | Finance (Crypto and exchanges), tpl_20eb67de501a |
|---|---|
| Variant | New listing |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 13 seconds |
Example video
The 1x1 cut of this variant, drawn from its own worked example. Open the video on its own.
What it accepts
A new listing: a tag and the headline, the token's symbol and name and the date and time in UTC it starts trading, its trading pairs (up to six) lit in turn, then what the project promises and what it does not side by side, the button and your analyst. The risk warning stays on screen throughout. Ten seconds, and half a second longer per pair. metaData is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: the tag, the headline, the token and its start time, the source, the trading pairs, what the project promises and does not, the call to action and the risk lines. | |
clipData.tag | text | up to 20 characters | Tag: The kind of post, in the block at the top, such as New listing. | |
clipData.stamp | text | up to 24 characters | Status: A short status beside the light at the top, such as LIVE or 24/7. | |
clipData.headline | text | yes | up to 72 characters | Headline: What is listed, in a few words. |
clipData.symbol | text | yes | up to 10 characters | Symbol: The token's ticker symbol, set on the start panel, such as NOVA. |
clipData.name | text | up to 32 characters | Name: The token's name in words, under the symbol. | |
clipData.startLabel | text | up to 32 characters | Start caption: The caption on the start panel's header strip, such as Trading starts. | |
clipData.tradingFrom | text | yes | up to 40 characters | Trading starts: The date and time trading starts, drawn exactly as sent, with its time zone: always say UTC. |
clipData.source | text | yes | up to 64 characters | Source: Where the information comes from, such as the project's white paper or the listing notice, under the start time. |
clipData.announced | text | up to 40 characters | Announced: When this was announced, with its time zone, under the source. | |
clipData.pairsLabel | text | up to 32 characters | Pairs caption: The caption on the pairs panel's header strip, such as Trading pairs. | |
clipData.pairs | list | up to 6 | Trading pairs: Up to six pairs the token trades against, each shown in a cell and lit in turn, such as NOVA/USDT. Each pair adds half a second. | |
clipData.pairs[] | text | up to 16 characters | Pair | |
clipData.promisesLabel | text | yes | up to 40 characters | Promises caption: The caption on the panel saying what the project promises, such as What the project promises. |
clipData.promises | text | yes | up to 200 characters | What it promises: What the project says it will do, in the project's own terms, from its white paper: one or two sentences. Drawn as large as the next panel. |
clipData.notLabel | text | yes | up to 40 characters | Not-promised caption: The caption on the panel saying what the project does not promise, such as What it does not promise. |
clipData.notPromised | text | yes | up to 200 characters | What it does not promise: What the project does not promise: returns, a price, a listing elsewhere, a delivery date. One or two sentences, drawn as large as the panel before. |
clipData.cta | group | Call to action: The button at the end and the line under it, such as a web address, a handle or a phone number. | ||
clipData.cta.label | text | yes | up to 28 characters | Button: What the button says. |
clipData.cta.detail | text | up to 48 characters | Line under it: An address, a handle, an app, a phone number. | |
clipData.riskWarning | text | yes | up to 400 characters | Risk warning: The risk warning your regulator asks for, shown in the risk panel from the first frame to the last. A long warning is set smaller, never cut. |
clipData.notAdvice | text | up to 160 characters | Not advice: A line saying the listing is not a recommendation, under the risk warning from the first frame to the last. | |
clipData.disclaimer | text | up to 200 characters | Small print: Any other line that must be shown, above your brand's footer line, such as MiCA's statement for a marketing communication. | |
clipData.look | group | Look: How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, square corners, text at the start. | ||
clipData.look.theme | enum | brand, light, dark, bold | Theme: Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page. | |
clipData.look.pace | enum | calm, standard, punchy | Pace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts. | |
clipData.look.corners | enum | square, soft, round | Corners: The shape of cards, pictures and buttons. | |
clipData.look.align | enum | start, centre | Text alignment: Where the text lines up. | |
clipData.look.logo | enum | auto, free | Logo: The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose. | |
clipData.look.logoSize | enum | auto, small, large | Logo size: Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none. | |
metaData | group | Meta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data. | ||
metaData.title | text | up to 100 characters | Title: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes. | |
metaData.captionTiny | text | up to 200 characters | Tiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionShort | text | up to 500 characters | Short description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionMedium | text | up to 1500 characters | Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionLong | text | up to 4000 characters | Long description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.hashtags | list | up to 15 | Hashtags: Written without the #. Up to 15, which every platform takes. | |
metaData.hashtags[] | text | up to 60 characters | Hashtag |
locales carries other languages: under each language code, the parts of clipData and metaData that differ, laid over the default, so a language with no copy still renders.
A picture is always a file from your media library: media:// followed by its id or its name.
Anything the table does not list is refused, and so is anything over its limit, with a 400
schema_validation error that names the field.
Ask Reelwire for the whole JSON Schema, the document your content is checked against, without signing in:
curl "https://app.reelwire.io/v1/formats/template/tpl_20eb67de501a?variant=New%20listing&version=1.0.0"
Delivery JSON
Your own system sends this to one of your streams, POST /v1/stream, and every channel listening to
that stream draws it with its template. data is the document described above; a stream with an
empty field map passes it to the template unchanged. Try it first on POST /v1/stream/validate,
which answers the same without publishing anything. Streams and feeds
explains the rest, including how to map a document of your own shape instead.
{
"streamId": "st_your_stream_id",
"eventId": "01M2SQMKK3G1NVFXV31DCBVB95",
"occurredAt": "2026-09-23T07:00:00Z",
"locale": "en",
"data": {
"clipData": {
"tag": "New listing",
"stamp": "Coming soon",
"headline": "NOVA lists on Halcyon on 24 October",
"symbol": "NOVA",
"name": "Nova Protocol",
"startLabel": "Trading starts",
"tradingFrom": "24 Oct 2026, 12:00 UTC",
"source": "Halcyon listing notice and the NOVA white paper v1.3",
"announced": "Announced 15 Oct 2026, 09:00 UTC",
"pairsLabel": "Trading pairs",
"pairs": [
"NOVA/USDT",
"NOVA/USD",
"NOVA/EUR",
"NOVA/BTC",
"NOVA/ETH",
"NOVA/GBP"
],
"promisesLabel": "What the project promises",
"promises": "A public roadmap with quarterly reports, and a fixed supply of 100 million tokens as set out in the white paper.",
"notLabel": "What it does not promise",
"notPromised": "No return, no future price and no listing on other venues. Delivery dates can slip.",
"cta": {
"label": "Read the listing notice",
"detail": "halcyon.example/nova"
},
"riskWarning": "Don't invest unless you're prepared to lose all the money you invest. This is a high-risk investment and you should not expect to be protected if something goes wrong.",
"notAdvice": "Listing a token is not a recommendation to buy it, and it says nothing about its future price.",
"disclaimer": "This crypto-asset marketing communication has not been reviewed or approved by any competent authority in any Member State of the European Union. The offeror is solely responsible for it.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "square",
"logoSize": "auto"
}
},
"metaData": {
"title": "NOVA lists on Halcyon on 24 October at 12:00 UTC",
"captionTiny": "NOVA, Nova Protocol, starts trading on Halcyon on 24 Oct 2026 at 12:00 UTC. Crypto is high risk: you could lose all you invest.",
"captionShort": "Nova Protocol (NOVA) starts trading on Halcyon on 24 October 2026 at 12:00 UTC against USDT, USD, EUR, BTC, ETH and GBP. The project promises a public roadmap and a fixed supply; it promises no return and no price. Not a recommendation. Don't invest unless you're prepared to lose all the money you invest.",
"captionMedium": "New listing: Nova Protocol (NOVA) starts trading on Halcyon on 24 October 2026 at 12:00 UTC, with pairs against USDT, USD, EUR, BTC, ETH and GBP. What the project promises: a public roadmap with quarterly reports and a fixed supply of 100 million tokens, as set out in its white paper. What it does not promise: any return, any future price, a listing on other venues, or fixed delivery dates. Listing a token is not a recommendation to buy it. Don't invest unless you're prepared to lose all the money you invest. This is a high-risk investment and you should not expect to be protected if something goes wrong.",
"captionLong": "New listing: Nova Protocol (NOVA) starts trading on Halcyon on 24 October 2026 at 12:00 UTC, announced on 15 October at 09:00 UTC. It will trade against USDT, USD, EUR, BTC, ETH and GBP. What the project promises, in its own terms from the NOVA white paper v1.3: a public roadmap with quarterly reports and a fixed supply of 100 million tokens. What it does not promise: any return, any future price, a listing on other venues, or fixed delivery dates, which can slip. Read the full listing notice before you decide anything. Listing a token is not a recommendation to buy it, and it says nothing about its future price. Don't invest unless you're prepared to lose all the money you invest. This is a high-risk investment and you should not expect to be protected if something goes wrong. This crypto-asset marketing communication has not been reviewed or approved by any competent authority in any Member State of the European Union.",
"hashtags": [
"newlisting",
"crypto",
"nova",
"cryptoexchange",
"tokenlisting"
]
}
}
}
The delivery names no version: which build draws it is the channel's choice, the newest of its
variant or the one it is pinned to. eventId is a ULID you make once per event: sending the same
one again changes nothing. occurredAt is when the thing happened, not when you sent it. locale
is the language of the text in data, and data.locales carries other languages beside it.