{"id":5744,"date":"2026-09-30T06:58:39","date_gmt":"2026-09-30T06:58:39","guid":{"rendered":"https:\/\/www.innblockchain.com\/academy\/?p=5744"},"modified":"2026-09-30T10:19:17","modified_gmt":"2026-09-30T10:19:17","slug":"prospectus-regulation-for-tokenized-securities-smart-contract-architecture","status":"publish","type":"post","link":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture","title":{"rendered":"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The Prospectus Regulation \u2014 Regulation (EU) 2017\/1129 \u2014 governs one moment: the point at which securities are offered to the public in the EU, or admitted to trading on an EU regulated market. That moment does not disappear because the security is a token. It lands on a subscription contract, and several of the duties turn out to be harder to satisfy on-chain than off it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is a deep-dive on one regulation. The architecture around it \u2014 capability set, module inventory, instance counts \u2014 is in the\u00a0<strong><a href=\"https:\/\/www.innblockchain.com\/academy\/eu-compliant-tokenized-securities-smart-contract-architecture\" data-type=\"link\" data-id=\"https:\/\/www.innblockchain.com\/academy\/eu-compliant-tokenized-securities-smart-contract-architecture\" target=\"_blank\" rel=\"noreferrer noopener\">EU-Compliant Tokenized Securities: Smart Contract Architecture<\/a><\/strong>\u00a0pillar. Two modules carry almost all of this Regulation:\u00a0<strong><code><mark style=\"background-color:#abb8c3\" class=\"has-inline-color has-black-color\">DocumentRegistry<\/mark><\/code><\/strong>, which anchors a document hash and URI on-chain, and\u00a0<strong><code><mark style=\"background-color:#abb8c3\" class=\"has-inline-color has-black-color\">SubscriptionEscrow<\/mark><\/code><\/strong>, which holds primary subscriptions while any statutory withdrawal window is open.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Does it apply at all?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Applies if<\/strong>&nbsp;the token is a closed-end fund unit or a direct (non-fund) security \u2014 tokenized equity, plain debt, fractional co-ownership \u2014 offered to the public in the EU or admitted to an EU regulated market above the applicable threshold.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does not apply if<\/strong>&nbsp;the token is a unit issued by a collective investment undertaking other than the closed-end type. Article 1(2)(a) excludes those units from the Regulation altogether, on both the offer and the admission limb. That is an exclusion, not an exemption \u2014 it removes the security from the regime rather than relieving an in-scope offer of one duty.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So fund tokens split three ways.&nbsp;<strong>Open-ended fund tokens<\/strong>&nbsp;never need a prospectus under this Regulation.&nbsp;<strong>Closed-ended fund tokens<\/strong>&nbsp;\u2014 most tokenized illiquid real-world-asset vehicles \u2014 are fully inside it.&nbsp;<strong>Direct securities<\/strong>&nbsp;are inside on their own terms, whatever the redemption design.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two adjacent regimes are easy to over-read out of the first case: a European long-term investment fund runs its own prospectus regime under Regulation (EU) 2015\/760, and any retail investor may still be owed a key information document under PRIIPs. Both are outside this article.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The build consequence is asymmetric, and usually read backwards.<\/strong>\u00a0For an open-ended fund token,\u00a0<code>SubscriptionEscrow<\/code>'s withdrawal windows and validity expiry genuinely drop out.\u00a0<strong><mark style=\"background-color:#abb8c3\" class=\"has-inline-color has-black-color\">DocumentRegistry<\/mark>\u00a0does not<\/strong>\u00a0\u2014 an open-ended retail fund still owes a KID, a long-term fund still owes its own prospectus and annual report, and both anchor through the same registry.\u00a0<code><mark style=\"background-color:#abb8c3\" class=\"has-inline-color has-black-color\"><strong>SubscriptionEscrow<\/strong><\/mark><\/code>\u00a0is prospectus-specific;\u00a0<code><strong><mark style=\"background-color:#abb8c3\" class=\"has-inline-color has-black-color\">DocumentRegistry<\/mark><\/strong><\/code>\u00a0is not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>To know about what DocumentRegistry is, explore >> <a href=\"https:\/\/www.innblockchain.com\/academy\/document-anchoring-for-tokenized-securities-smart-contract-architecture\" data-type=\"link\" data-id=\"https:\/\/www.innblockchain.com\/academy\/document-anchoring-for-tokenized-securities-smart-contract-architecture\" target=\"_blank\" rel=\"noreferrer noopener\">Document anchoring for tokenized securities<\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Everything below assumes the token has cleared that gate.&nbsp;<strong>No issuer owes all of it<\/strong>&nbsp;\u2014 each section opens with the fact that triggers it, because the heaviest duties here fire only on particular offer structures. Read the coverage as a map, not an estimate of the build.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to read the three labels<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Label<\/th><th class=\"has-text-align-left\" data-align=\"left\">What it means<\/th><th class=\"has-text-align-left\" data-align=\"left\">Test<\/th><\/tr><\/thead><tbody><tr><td><strong>On-chain<\/strong><\/td><td>A contract reads the value and blocks something with it<\/td><td>Is there a&nbsp;<code>revert<\/code>&nbsp;that depends on it? The one carve-out is an event emitted so an off-chain watcher can catch what no contract can<\/td><\/tr><tr><td><strong>Partial<\/strong><\/td><td>The decision is on-chain, but something feeds it a value it cannot compute \u2014 a calendar, a national threshold, a publication event<\/td><td>Does the chain have any way to know this by itself?<\/td><\/tr><tr><td><strong>Off-chain<\/strong><\/td><td>Procedural, human, or addressed to the firm rather than the transfer \u2014 a person decides, drafts or files, or a platform system does it with no contract involved<\/td><td>Would a wrong answer be a judgment call rather than a bug?<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The chain does three things in this Regulation and no more<strong>. Count<\/strong>&nbsp;money and persons per jurisdiction,&nbsp;<strong>block<\/strong>&nbsp;on an expired date or an unapproved hash, and&nbsp;<strong>hold<\/strong>&nbsp;cash refundable until every window has run. Everything else is a document, a calendar or a person.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. The threshold that decides whether a prospectus is needed<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Applies to the offer limb only. Admission to trading carries no size exemption, so a listing without a public offer never reaches this test.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 3(2)<\/strong>&nbsp;exempts offers to the public from the prospectus obligation where total consideration across the Union stays under&nbsp;<strong>\u20ac12,000,000<\/strong>&nbsp;per issuer over twelve months. Unified at that figure from 5 June 2026 by the EU Listing Act, Regulation (EU) 2024\/2809. A Member State may instead elect its own ceiling, with&nbsp;<strong>\u20ac5,000,000<\/strong>&nbsp;as the floor. That is a binary national election, not a sliding scale. So a multi-jurisdiction offer can be prospectus-exempt in one Member State and prospectus-triggering in another at identical size, on the same day.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>On-chain.<\/strong>\u00a0One defensible implementation runs\u00a0<code>SubscriptionEscrow<\/code>\u00a0in one of two modes, fixed at deployment, both through\u00a0<code><strong><mark style=\"background-color:#abb8c3\" class=\"has-inline-color has-black-color\">subscribe()<\/mark><\/strong><\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Exempt mode<\/strong>&nbsp;\u2014 counts money raised per offer jurisdiction against that jurisdiction's threshold. The subscription that would cross the line reverts.<\/li>\n\n\n\n<li><strong>Prospectus mode<\/strong>&nbsp;\u2014 the same arithmetic against one offer-wide ceiling.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A jurisdiction nobody configured reverts too, on its own error, rather than falling back to the EU baseline. A permissive default is an uncapped offer that looks configured.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The country is not supplied by the caller.<\/strong>\u00a0<code>subscribe()<\/code>\u00a0takes no jurisdiction argument; it reads\u00a0<code>jurisdictionOf()<\/code>\u00a0off\u00a0<code><strong><mark style=\"background-color:#abb8c3\" class=\"has-inline-color has-black-color\">IdentityRegistry<\/mark><\/strong><\/code>, where a registrar wrote it after KYC. The party being gated does not get to name the gate. An unconfigured jurisdiction is a revert, not a fallback.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>To know about what IdentityRegistry is, explore >> <a href=\"https:\/\/www.innblockchain.com\/academy\/transfer-restrictions-for-tokenized-securities-smart-contract-architecture\" data-type=\"link\" data-id=\"https:\/\/www.innblockchain.com\/academy\/transfer-restrictions-for-tokenized-securities-smart-contract-architecture\" target=\"_blank\" rel=\"noreferrer noopener\">Identity &amp; KYC Registry for tokenized securities<\/a><\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The money limb is not the only limb, and the second one is per person.<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 1(4)(b)<\/strong>&nbsp;takes an offer outside the Regulation where it is addressed to&nbsp;<strong>fewer than 150 natural or legal persons other than qualified investors, per Member State<\/strong>. That is a headcount, and it is countable. So the exempt path spends one unit of a Member State's allowance on a subscriber's&nbsp;<em>first<\/em>&nbsp;subscription and refuses once the allowance is gone. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Three details decide whether the counter means anything. It counts&nbsp;<strong>persons, not subscriptions<\/strong>, so several wallets belonging to one investor consume one unit and a repeat subscription consumes none which only works because the identity layer resolves wallets to a person key. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f&nbsp;<strong>And the person key alone is not enough \u2014 the&nbsp;<em>attributes<\/em>&nbsp;have to hang off it too.<\/strong>&nbsp;If the classification tier and the jurisdiction are stored per wallet, one investor can register wallet A as retail in one Member State and wallet B as professional in another. The counter is then charged to whichever country still has room, or skipped entirely on the professional wallet. Two limbs of this exemption are decided by fields that must therefore be per person, not per address, and a second wallet must either match the person's record or be refused.&nbsp;<strong>Qualified investors do not count at all<\/strong>, per the Article 2(e) read-across to the investor-classification tiers. And an&nbsp;<strong>unclassified<\/strong>&nbsp;subscriber&nbsp;<em>is<\/em>&nbsp;counted: resolving that unknown in the offer's favour is how a headcount exemption quietly stops being one.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>One caveat worth stating rather than glossing.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">What the contract counts is subscription attempts that reached it. The Article counts persons the offer was&nbsp;<em>addressed to<\/em>, which is a larger set including everyone who saw the offer and did not subscribe. The counter is therefore a floor on the real figure, and the marketing-side control in section 8 is where the rest of it lives.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Crossing the threshold does not move the contract into prospectus mode by itself.<\/strong>&nbsp;Approval comes before an offer, not after it. Switching modes is a deliberate off-chain event \u2014 a fresh, approved prospectus.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Partial.<\/strong>&nbsp;Each national threshold as configuration, one per jurisdiction, never a global constant. And which figure binds depends on&nbsp;<strong>when the offer launched<\/strong>, because the Listing Act phased in across three tranches.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Off-chain.<\/strong>&nbsp;Confirming which ceiling each offer jurisdiction elected. No register exists for a contract to read.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. The content standard, and one decision it brings forward<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Applies once a prospectus is required at all. An exempt offer still owes a national disclosure document in most Member States, but not this content standard.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 6(1)<\/strong>&nbsp;requires the information necessary for an informed assessment of the issuer's financial position, the rights attaching to the securities, and the reasons for the issuance. The detailed items sit in the Annexes to Commission Delegated Regulation (EU) 2019\/980.&nbsp;<strong>Article 16(1)<\/strong>&nbsp;requires risk factors to be specific, material, substantiated, organized most-material-first, and prohibits generic risk factors used as disclaimers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neither Article names a token, a chain or an architecture.&nbsp;<strong>There is no tokenization-specific disclosure Article in this Regulation.<\/strong>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The token-specific items like <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the network and whether it is permissioned, <\/li>\n\n\n\n<li>the consensus mechanism, the token standard, <\/li>\n\n\n\n<li>contract addresses and audit history, <\/li>\n\n\n\n<li>the identity and KYC mechanism, <\/li>\n\n\n\n<li>the upgrade mechanism and who can trigger it, <\/li>\n\n\n\n<li>recovery for lost keys and contract bugs, <\/li>\n\n\n\n<li>the custody model and custodian-failure path, <\/li>\n\n\n\n<li>post-issuance transfer mechanics, <\/li>\n\n\n\n<li>tax treatment per jurisdiction, <\/li>\n\n\n\n<li>and contract \/ oracle \/ bridge \/ congestion risk are how those two generic Articles read for this asset class.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This section is drafting work \u2014 nothing here gates a transfer. It produces one hard build constraint anyway.&nbsp;<strong>The token standard and the chain are prospectus content items.<\/strong>&nbsp;Once disclosed they are part of what the prospectus says the security&nbsp;<em>is<\/em>. So changing either afterwards is a material change that pulls in the supplement machinery below, withdrawal window attached. Treat both as&nbsp;<strong>prospectus-blocking decisions<\/strong>. A compliance mapping that stays portable across token standards does not make the&nbsp;<em>disclosed<\/em>&nbsp;standard portable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>And the item is the conformance claim, not just the standard's name.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Saying a token implements a standard discloses that it implements all of it. Where a build conforms on part of a standard's surface and diverges on the rest, a common position, since these standards were not written against this rulebook. The divergence belongs in the same sentence as the claim. An unqualified claim of compliance that turns out to be partial is a defect in a disclosure document. And the cure is the supplement machinery below with its withdrawal window attached, not a patch release.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Off-chain<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contract addresses, verified source, audit history and governance state have to be extracted into the disclosure items which puts the audit report on the prospectus critical path.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. The prospectus has a shelf life \u2014 Article 12<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Bites hardest where a contract accepts subscriptions over an extended period. An offer that fills and closes inside a few weeks barely touches it.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 12<\/strong>&nbsp;sets validity at twelve months from approval, and only while the prospectus remains completed by any supplements. The same cycle applies to a base prospectus and to a universal registration document used as one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a traditional bookbuild this is close to academic. For a tokenized offer on an open subscription contract it is not: nothing in a mint call knows the prospectus behind it expired last month, and there is no ledger-native signal that anything is wrong.&nbsp;<strong>A permanently-open subscription contract is the default failure mode of an on-chain primary offer.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>On-chain.<\/strong>&nbsp;<strong>We build<\/strong>&nbsp;the validity date into&nbsp;<code>prospectusValidUntil<\/code>.&nbsp;<code>subscribe()<\/code>&nbsp;checks it first and reverts past it, however much ceiling headroom is left. Extending it is&nbsp;<code>extendProspectusValidity()<\/code>&nbsp;\u2014 a governance call recording a fresh approval, not a switch to keep the offer open.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The date is only one of three limbs, and the other two are where a naive implementation sells against nothing.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A prospectus is valid for twelve months,&nbsp;<strong>and<\/strong>&nbsp;only while it stays the current anchored document,&nbsp;<strong>and<\/strong>&nbsp;only once the authority has approved the version that is current. So&nbsp;<code>subscribe()<\/code>&nbsp;reads&nbsp;<code>currentVersionHash()<\/code>&nbsp;\u2014 nothing anchored, and it reverts \u2014 and then reads the approval on that hash.&nbsp;<strong>Anchored is not approved.<\/strong>&nbsp;Anchoring writes no approval time; a current-but-unapproved version is a draft, and a contract that accepts it is selling against a document the authority has not seen. Check the clock alone and the contract keeps selling against a prospectus that was withdrawn or superseded, and passes every test while it does it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The twelve months run from the&nbsp;<em>base<\/em>&nbsp;prospectus's approval, not from the latest approval on the slot.<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Article 12's clock starts at approval, and a supplement is approved too. So a validity date anchored to whichever approval happened most recently restarts the clock every time a supplement lands, and an offer that supplements twice a year never expires. The bound is checked against the base approval at every subscription rather than only at deployment. Because the approval is normally recorded after the escrow is live.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Publishing it \u2014 Article 21<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Applies to every approved prospectus. The six-working-day limb attaches only to an initial offer of a class of shares being admitted to a regulated market for the first time.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 21(1)<\/strong>&nbsp;requires the approved prospectus to be available to the public a reasonable time in advance of, and at the latest at the beginning of, the offer or admission. For an initial offer of shares admitted to a regulated market for the first time, it must be available&nbsp;<strong>at least six working days before the end of the offer<\/strong>.&nbsp;<strong>Article 21(2)<\/strong>&nbsp;requires publication on a dedicated, easily identifiable website section, free of charge and downloadable, and filing with the home authority's storage mechanism.&nbsp;<strong>Article 21(7)<\/strong>&nbsp;requires the prospectus and final terms to stay available electronically for&nbsp;<strong>at least ten years<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>On-chain.<\/strong>\u00a0<mark style=\"background-color:#abb8c3\" class=\"has-inline-color has-black-color\"><strong>DocumentRegistry.anchorVersion()<\/strong>\u00a0<\/mark>pushes a\u00a0<code>Version<\/code>\u00a0onto that document's history, on the ERC-1643 pattern. The struct is worth reading because every later check in this article reads one of its fields:<\/p>\n\n\n\n<pre class=\"wp-block-code has-white-color has-black-background-color has-text-color has-background has-link-color wp-elements-1\"><code>struct Version {\n    bytes32 versionHash;  \/\/ the document's own hash\n    bytes32 uriHash;      \/\/ hash of where it is hosted\n    uint64  anchoredAt;\n    uint64  approvedAt;   \/\/ regulator approval; 0 = none recorded\n    ...\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The file stays off-chain \u2014 nothing in Article 21(7) argues for putting it on.&nbsp;<code>currentVersionHash()<\/code>&nbsp;gives the live version.&nbsp;<code>documentStatus()<\/code>&nbsp;gives the two fields most gates want: does this hash exist, and is&nbsp;<code>approvedAt<\/code>&nbsp;non-zero.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The ten-year duty splits cleanly.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Keeping the document reachable is the hosting arrangement's job; proving which document it was is the anchor's. The history is append-only \u2014&nbsp;<strong>there is no delete function<\/strong>&nbsp;\u2014 which is what makes the retention guarantee enforceable rather than recorded.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Partial.<\/strong>&nbsp;An offer-calendar feed for the six-working-day lead-in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Off-chain.<\/strong>&nbsp;Hosting that lasts ten years. Publication and filing. Read with the windows below, the offer runs&nbsp;<strong>three independent clocks<\/strong>. The six-working-day lead-in, up to five working days of supplement approval, and withdrawal windows that may overlap and&nbsp;<strong>none is derivable from the others.<\/strong>&nbsp;Model the timeline explicitly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Keeping it current \u2014 Article 23 supplements<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Applies to a factor arising between approval and the later of offer close or start of trading and to nothing outside that window. This is the section most often read as permanent. It is not.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 23<\/strong>&nbsp;requires a supplement whenever a significant new factor, material mistake or material inaccuracy arises between approval and the closing of the offer period or the start of trading, whichever is later.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then, <strong>Article 23(1)<\/strong>&nbsp;gives the competent authority up to five working days to approve it. and <strong>Article 23(2)<\/strong>&nbsp;gives investors who already agreed to subscribe&nbsp;<em>before<\/em>&nbsp;publication a right to withdraw within a minimum of three working days. Extended from two by the Listing Act, in force since 4 December 2024, and not limited to retail.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 23(3)<\/strong>&nbsp;requires affected investors to be notified electronically by the end of the first working day after publication.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The engineering consequence is heavier than three days suggests. <strong>A primary subscription cannot be atomically final while a supplement window is open.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>On-chain.<\/strong>&nbsp;<code>subscribe()<\/code>&nbsp;takes the cash, records the investor, the amount and an&nbsp;<code>acceptedAt<\/code>&nbsp;timestamp, and holds the cash in escrow.&nbsp;<code>publishSupplement()<\/code>&nbsp;opens a window over every subscription accepted before that publication; inside it,&nbsp;<code>withdrawAcceptance()<\/code>&nbsp;refunds the subscriber in full and marks the record withdrawn. Windows are held as a set of records against the offer, not one nullable window on a token, because the second window below is independent and may overlap.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The escrow issues no units, and that is worth being exact about, because the obvious design does.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The intuitive build mints on acceptance into a pending, non-transferable state and burns on withdrawal \u2014 the pending state is a real capability, and the architecture specifies it.&nbsp;<strong>It is not what this contract does.<\/strong>&nbsp;It holds cash against a subscription record and refunds it; the unit mint happens at settlement, through the token's own gated path, off the escrow entirely. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two consequences follow, and only the first is a simplification. A withdrawal is a refund, with nothing to burn and no partition state to unwind. And&nbsp;<strong>no transfer hook runs on the way in<\/strong>&nbsp;\u2014 so the escrow has to make the eligibility and restriction reads itself rather than inheriting them from a mint.&nbsp;<code>subscribe()<\/code>&nbsp;therefore runs the identity registry's eligibility check and the restriction store's block check on the subscriber directly. Without them the contract accepts and refunds cash from a wallet the token would have refused, which is a payment relationship with a restricted party conducted entirely inside the compliance perimeter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong><code>SubscriptionEscrow<\/code>&nbsp;reads&nbsp;<code>DocumentRegistry<\/code>&nbsp;before it will open the window.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Built as two unrelated transactions, anchoring and window-opening drift apart in both directions: anchor the supplement and forget the escrow call \u2192&nbsp;<strong>no withdrawal window opens<\/strong>, a breach the contract reports as a clean offer; open a window with nothing filed \u2192 a withdrawal period runs against a document no investor was given. So&nbsp;<code>publishSupplement()<\/code>&nbsp;calls&nbsp;<code>documentStatus()<\/code>&nbsp;and reverts unless the hash exists&nbsp;<strong>and<\/strong>&nbsp;carries a non-zero&nbsp;<code>approvedAt<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>That closes one direction only.<\/strong>&nbsp;Nothing on-chain can&nbsp;<em>force<\/em>&nbsp;the escrow call once a supplement is anchored \u2014 both sit behind the same governance key, so this is the system refusing to contradict itself, not a defense against an attacker. The other direction is made visible by an event:&nbsp;<code>publishSupplement()<\/code>&nbsp;emits the hash and approval time, and an indexer joins that against the registry's anchoring events and alarms on a supplement with no window. Caught off-chain or not at all.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Upgrades sit inside this Article too.<\/strong>&nbsp;A material change to contract behavior \u2014 transfer restrictions, fee logic, redemption mechanics \u2014 changes what the prospectus says the security&nbsp;<em>is<\/em>: supplement, approval, publication, window, then the change. Raising the disclosed offer ceiling is the same thing in a smaller package.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>To know about what IdentityRegistry is, explore >> <a href=\"https:\/\/www.innblockchain.com\/academy\/transfer-restrictions-for-tokenized-securities-smart-contract-architecture\" data-type=\"link\" data-id=\"https:\/\/www.innblockchain.com\/academy\/transfer-restrictions-for-tokenized-securities-smart-contract-architecture\" target=\"_blank\" rel=\"noreferrer noopener\">Transfer restrictions for tokenized securities<\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>But note what is being approved.<\/strong>&nbsp;The competent authority approves the&nbsp;<strong>supplement<\/strong>. It never sees the contract; nothing in this Regulation has a regulator approve a deployment.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">What<\/th><th class=\"has-text-align-left\" data-align=\"left\">Who decides<\/th><th class=\"has-text-align-left\" data-align=\"left\">What it covers<\/th><\/tr><\/thead><tbody><tr><td>Article 23(1), five working days<\/td><td>the competent authority<\/td><td><strong>the supplement document<\/strong><\/td><\/tr><tr><td>the multisig signing the upgrade<\/td><td>the issuer<\/td><td><strong>the upgrade<\/strong><\/td><\/tr><tr><td><code>approvedAt<\/code>&nbsp;in&nbsp;<code>DocumentRegistry<\/code><\/td><td>nobody \u2014 it is a record<\/td><td>that the first one happened<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Only the middle row authorizes a code change, and it is not a regulator's.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Nothing on the upgrade path reverts on the document, and that is deliberate.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The gate that suggests itself \u2014 a contract holding the queuing role, reading&nbsp;<code>documentStatus()<\/code>&nbsp;and refusing an unapproved hash \u2014 is the wrong control here. Three reasons, and the second is decisive:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It proves less than it looks.<\/strong>&nbsp;It can verify that&nbsp;<em>some<\/em>&nbsp;approved document exists, never that it describes&nbsp;<em>this<\/em>&nbsp;change \u2014 that link is a human judgment, and a signer in a hurry satisfies the gate with last month's supplement. It defeats forgetting, not rushing.<\/li>\n\n\n\n<li><strong>It can be switched off without anything looking wrong.<\/strong>&nbsp;Grant the queuing role to the multisig as a fallback, or open execution to any address as most timelock tutorials show, and the check is gone with no on-chain symptom.&nbsp;<strong>A control that can be off without appearing off is worse than a documented manual step, because it is believed.<\/strong><\/li>\n\n\n\n<li><strong>The timelock already carries the evidence, for free.<\/strong>&nbsp;OpenZeppelin's&nbsp;<code>TimelockController.schedule()<\/code>&nbsp;takes an arbitrary&nbsp;<code>salt<\/code>&nbsp;and emits it.&nbsp;<strong>The document hash goes there.<\/strong>&nbsp;It is bound into the operation identifier \u2014 unchangeable after scheduling, and a different salt at execution derives an identifier the timelock does not recognize. A purpose-built gate adds a contract to the upgrade path to prove something the stock one already proves.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Evidence, not enforcement \u2014 and that leaves two things easy to leave unowned.<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">So the disclosure link survives as&nbsp;<strong>evidence rather than enforcement<\/strong>, read by an off-chain reconciliation job that alarms when a scheduled operation's salt resolves to nothing approved.&nbsp;<strong>Detective, not preventive. Nothing reverts.<\/strong>&nbsp;Two things are then easy to leave unowned. A reconciliation job with no named owner is a script, not a control; and a document withdrawn during the timelock delay is caught only by a guardian holding the cancel role, because nothing re-reads it. The line between this and the escrow check above is the right one. A publication event either happened or it did not, and a contract can compute that; whether a code change is described by a document, it cannot, a gate that pretends otherwise turns a judgment into a green light.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The window closing does not retire the reconciliation.<\/strong>&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A later upgrade owes no supplement, but the ongoing-disclosure regimes ask the same question of the same upgrades. What changes is which document belongs in the salt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Partial.<\/strong>&nbsp;The publication event starts the clock. Notification runs off the escrow's pending set.&nbsp;<strong>Working-day arithmetic is fed in, not calculated<\/strong>, a contract cannot know a given Thursday is a national holiday.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Off-chain.<\/strong>&nbsp;A materiality assessment on every proposed change, plus the filing. The five working days is a lead time, and it does not overlap an upgrade timelock, approval and publication complete first. The critical path is five working days,&nbsp;<strong>plus<\/strong>&nbsp;the timelock,&nbsp;<strong>plus<\/strong>&nbsp;whichever window publication opens.&nbsp;<strong>Budget upgrade windows in weeks.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>6. The second withdrawal right \u2014 Article 17<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Applies where the prospectus omits the final offer price or the final amount of securities. A fixed price disclosed at filing never triggers it; a valuation-priced or book-built offer does.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is the one most tokenized real-world-asset offers actually trigger, and it is independent of the supplement mechanism.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Where the prospectus omits final price or amount, Article 17 puts two things in play. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a right to withdraw for a minimum period after the final price or amount is filed and published, and <\/li>\n\n\n\n<li>disclosure of the maximum price or the valuation method. <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The filing-and-publication event \u2014 filed with the home authority, published through the Article 21(2) arrangements \u2014 starts the clock.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>This fires on the offer's ordinary path, where the supplement right fires only if a supplement is published.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A tokenized property or private-credit offer priced off an independent valuation struck at close is the ordinary fact pattern \u2014 so a contract built only for the supplement right misses this one entirely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>On-chain.<\/strong>&nbsp;<code>publishFinalPrice()<\/code>&nbsp;opens a second window. Reachable only if&nbsp;<code>finalPriceOmittedAtFiling<\/code>&nbsp;was set true at deployment; otherwise it reverts, because a price fixed at filing can never trigger this right. Unlike Window A, this one covers&nbsp;<strong>every subscription in the offer<\/strong>&nbsp;\u2014 all were accepted against an incomplete price. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Two rules follow<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a subscription is withdrawable if&nbsp;<em>any<\/em>&nbsp;window covering it is open, and<\/li>\n\n\n\n<li>settlement waits for&nbsp;<strong>all<\/strong>&nbsp;applicable windows to close.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>The two durations are separate parameters and must not share a constant.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Different Articles, different triggers; collapsing them is the bug that looks like tidiness. The statutory floor here is&nbsp;<strong>at least two working days<\/strong>, against three for a supplement. This build floors both at three, which is a conservative implementation choice rather than the Regulation's figure, and it is the conservative side to be on. Over-holding escrow costs UX, under-holding it is a statutory breach. Both durations are floors enforced on the window-opening call, and both are configurable, because a minimum is something an operator may extend and because working-day arithmetic is fed in against a real calendar rather than computed from block time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>One question for counsel before you build, because it changes the contract.<\/strong>&nbsp;The Article presents the maximum-price disclosure and the withdrawal right in a structure that reads either as cumulative or as alternatives. On the second reading,&nbsp;<strong>this window disappears for offers priced off a disclosed maximum<\/strong>&nbsp;\u2014 a pricing-structure decision with a direct contract consequence. Get the answer before the first prospectus offer opens.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. Someone signs their name to it \u2014 Article 11<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Applies to every prospectus, with no carve-out. There is nothing here to scope out of and nothing to build.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 11(1)<\/strong>&nbsp;requires a responsibility statement naming the persons responsible \u2014 the issuer or its administrative, management or supervisory bodies, the offeror, the person seeking admission, or the guarantor.&nbsp;<strong>Article 11(2)<\/strong>&nbsp;requires Member States to apply their civil-liability laws to those persons for information that is inaccurate or misleading.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For a tokenized security the prospectus's subject matter is substantially the contract's own behavior.&nbsp;<strong>The people who sign are personally exposed, under national civil-liability law, to any gap between what the prospectus discloses and what the deployed contract does.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>On-chain.<\/strong>&nbsp;Nothing, and that is worth stating rather than leaving blank. Article 11 asks for a statement in a document, not a control in a contract; no contract above discharges any part of it. What it supplies is the reason the disclosure discipline above gets maintained. Personal liability attaching to named individuals is the real enforcement mechanism behind \"the prospectus must match the contract,\" in a Regulation where the authority's approval of a supplement is expressly not an endorsement that the disclosure is correct.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>It also constrains the multisig, and this is easy to miss.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Article 11(1) names specific persons; a multisig is a set of keys. If a threshold reachable&nbsp;<em>without<\/em>&nbsp;any named responsible person can execute an upgrade that moves deployed behavior away from disclosed behavior, those persons carry liability for a change they did not authorize. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It resolves one of two ways.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The threshold cannot be met without a named responsible person, or every named responsible person holds the cancel role directly. A composition rule, not a contract feature.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Off-chain.<\/strong>&nbsp;Drafting the statement and collecting the declarations. The signatories need to understand both the disclosure standard and who holds upgrade authority, because what they are underwriting is the match between the document and the deployed bytecode.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>8. Advertising it \u2014 Article 22<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Applies to every communication about an in-scope offer, whether or not it was meant as advertising.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Article 22(3)<\/strong>&nbsp;requires advertisements to be clearly recognizable as such, to reference the prospectus, and not to be inaccurate, misleading or inconsistent with it.&nbsp;<strong>Article 22(4)<\/strong>&nbsp;extends the consistency duty to information disclosed orally or in writing about the offer, whether or not intended as advertising.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nothing here gates a transfer, so this is a human process. What gets underestimated is the reach: founder social posts, pitch decks and podcast appearances sit inside Article 22(4) alongside the formal materials.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Off-chain.<\/strong>&nbsp;Per-country blocking on offer and marketing pages wherever no public offer is made \u2014 a platform control, not a contract one. A jurisdiction gate stops a subscription; this Article reaches the communication before it. And a marketing sign-off gate against the prospectus, scoped to the informal channels as well as the formal ones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>9. What this costs the settlement design<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Applies wherever either window in sections 5 and 6 can open. An offer that can trigger neither can settle primary issuance atomically.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One consequence compounds across sections 5 and 6 and is easy to discover late. The cash leg for&nbsp;<strong>all<\/strong>&nbsp;primary issuance under a prospectus \u2014 professional as well as retail \u2014 has to stay refundable for every applicable window. An irreversible settlement leg at acceptance cannot satisfy that, which is why&nbsp;<code>settle()<\/code>&nbsp;is the only path that releases cash to the issuer, and why it is gated rather than automatic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>\"No window is open\" is not the same statement as \"no window will open\", and that distinction is the whole gate.&nbsp;<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Both withdrawal rights arise from events that happen&nbsp;<em>after<\/em>&nbsp;acceptance \u2014 a supplement published, a final price filed. So a settlement rule that waits only for windows already opened lets a subscription be released one block after it was accepted, and the right is gone before the event that would have triggered it. On a valuation-priced offer that is every subscriber in the offer. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So settlement waits on three conditions, in the order a reviewer asks them.&nbsp;<strong>Has the offer closed?<\/strong>&nbsp;The supplement duty, and the withdrawal right it opens, run until the offer closes or trading starts \u2014 so nothing accepted during the offer is final before then. The close is fed in by governance and can only ever be extended, and subscriptions are refused after it. So a late subscriber cannot be settled in the same block through another door.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Where the final price was omitted at filing, has it been published?<\/strong>&nbsp;Window B cannot have run if it has not opened.&nbsp;<strong>And is any window covering this subscription still open or still to open?<\/strong>&nbsp;Only after all three does \"no window covers it\" mean what it appears to mean.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The second window compounds it because it covers the&nbsp;<em>whole<\/em>&nbsp;offer, a valuation-priced offer holds&nbsp;<strong>100% of subscribed cash refundable for several working days after pricing.<\/strong>&nbsp;Size the settlement asset and liquidity arrangements for that, not for a partial-withdrawal scenario. It is a primary-issuance constraint only \u2014 secondary trading stays atomic.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you're evaluating a compliance-first architecture like this one for a live issuance, that's the kind of build our&nbsp;<strong><a href=\"https:\/\/www.innblockchain.com\/solutions\/rwa-tokenization\" target=\"_blank\" rel=\"noreferrer noopener\">RWA tokenization development company<\/a><\/strong> takes on end-to-end.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>At a glance<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Article<\/th><th class=\"has-text-align-left\" data-align=\"left\">On-chain<\/th><th class=\"has-text-align-left\" data-align=\"left\">Partial<\/th><th class=\"has-text-align-left\" data-align=\"left\">Off-chain<\/th><\/tr><\/thead><tbody><tr><td><strong>Art 1(2)(a)<\/strong>&nbsp;\u2014 open-ended exclusion<\/td><td><code>SubscriptionEscrow<\/code>&nbsp;windows and validity expiry drop out;&nbsp;<strong><code>DocumentRegistry<\/code>&nbsp;does not<\/strong><\/td><td>\u2014<\/td><td>Settle open- vs closed-ended first<\/td><\/tr><tr><td><strong>Art 3(2)<\/strong>&nbsp;\u2014 \u20ac12m\/12 months, or \u20ac5m where elected<\/td><td><code>subscribe()<\/code>&nbsp;\u2014 per-jurisdiction counter; reverts at the ceiling<\/td><td>National threshold per jurisdiction; tranche by launch date<\/td><td>Confirm which ceiling each jurisdiction elected<\/td><\/tr><tr><td><strong>Art 1(4)(b)<\/strong>&nbsp;\u2014 under 150 non-qualified persons per Member State<\/td><td>Counted&nbsp;<strong>per person<\/strong>, spent on first subscription; qualified investors excluded, unclassified counted; never decremented<\/td><td>Jurisdiction&nbsp;<strong>and tier<\/strong>&nbsp;from the identity record, and both must be stored&nbsp;<strong>per person, not per wallet<\/strong>&nbsp;\u2014 otherwise the counter is charged to whichever Member State still has room<\/td><td>It counts subscription attempts, which is a&nbsp;<strong>floor<\/strong>&nbsp;on \"addressed to\" \u2014 the marketing control carries the rest<\/td><\/tr><tr><td><strong>Art 6 \/ 16(1)<\/strong>&nbsp;\u2014 content and risk factors<\/td><td>\u2014<\/td><td>\u2014<\/td><td>Addresses, verified source, audit history and governance state extracted into the disclosure items; drafting.&nbsp;<strong>Makes token-standard and chain choices prospectus-blocking<\/strong><\/td><\/tr><tr><td><strong>Art 12<\/strong>&nbsp;\u2014 twelve-month validity<\/td><td><code>subscribe()<\/code>&nbsp;reads&nbsp;<code>prospectusValidUntil<\/code>,&nbsp;<code>currentVersionHash()<\/code>&nbsp;<strong>and the approval on it<\/strong>&nbsp;\u2014 anchored is not approved; validity bounded by the&nbsp;<strong>base<\/strong>&nbsp;prospectus's approval so a supplement cannot restart the clock. Eligibility and restriction checks run on the subscriber<\/td><td>\u2014<\/td><td>Track the approval date; re-approve before any continuation<\/td><\/tr><tr><td><strong>Art 21(1), (2), (7)<\/strong>&nbsp;\u2014 publication, \u226510 years<\/td><td><code>anchorVersion()<\/code>&nbsp;\u2014 hash, URI hash,&nbsp;<code>approvedAt<\/code>; append-only,&nbsp;<strong>no delete function<\/strong><\/td><td>Offer-calendar feed for the six-working-day lead-in<\/td><td>Hosting; publication and filing.&nbsp;<strong>Three independent clocks<\/strong><\/td><\/tr><tr><td><strong>Art 23<\/strong>&nbsp;\u2014 supplement, 5 WD approval, 3 WD withdrawal, next-day notice.&nbsp;<strong>Binds only until the later of offer close \/ start of trading<\/strong><\/td><td><code>publishSupplement()<\/code>&nbsp;opens Window A;&nbsp;<code>withdrawAcceptance()<\/code>&nbsp;<strong>refunds the cash \u2014 no token is minted or burned<\/strong>;&nbsp;<strong><code>documentStatus()<\/code>&nbsp;refuses an unapproved hash<\/strong>; the window has an enforced minimum duration. Upgrade path:&nbsp;<strong>nothing reverts<\/strong>&nbsp;\u2014 hash rides as the timelock salt<\/td><td>Publication event as clock start; working-day calendar; notification off the pending set.&nbsp;<strong>Salt reconciliation needs a named owner<\/strong><\/td><td>Materiality per change; filing.&nbsp;<strong>Timelock does not run concurrently<\/strong><\/td><\/tr><tr><td><strong>Art 17<\/strong>&nbsp;\u2014 second, independent withdrawal right<\/td><td><code>publishFinalPrice()<\/code>&nbsp;opens Window B over the&nbsp;<strong>whole<\/strong>&nbsp;offer; separate duration floor \u2014 statutory \u22652 WD, built at 3<\/td><td>Final price\/amount filing as clock start<\/td><td>Counsel: cumulative or alternative \u2014&nbsp;<strong>decides whether Window B exists<\/strong><\/td><\/tr><tr><td><strong>Settlement<\/strong>&nbsp;\u2014 the release gate the two rights imply<\/td><td>Waits on a governance-fed,&nbsp;<strong>extend-only offer close<\/strong>, on the final price where one was omitted, and on every window open or pending.&nbsp;<code>subscribe()<\/code>&nbsp;refuses after the close<\/td><td>Offer close and final-price publication as fed events<\/td><td>Nothing settles the day it is accepted, and the offer close is a real date somebody owns<\/td><\/tr><tr><td><strong>Art 11<\/strong>&nbsp;\u2014 responsibility statement, personal liability<\/td><td>\u2014&nbsp;<strong>no contract discharges any part of it<\/strong><\/td><td>\u2014<\/td><td>Drafting and declarations.&nbsp;<strong>A multisig threshold reachable without any named person is an unowned liability<\/strong><\/td><\/tr><tr><td><strong>Art 22<\/strong>&nbsp;\u2014 advertising, extended to oral statements<\/td><td>\u2014<\/td><td>\u2014<\/td><td>Per-country blocking on offer and marketing pages; sign-off gate covering founder posts, decks and podcasts<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>This is engineering commentary on regulatory requirements, not legal advice. Whether and how these obligations apply to a specific offer structure needs sign-off from counsel.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Prospectus Regulation for Tokenized Securities Smart Contract Architecture explained: what EU issuers must build before launch.<\/p>\n","protected":false},"author":5,"featured_media":5771,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[177],"tags":[175,191],"class_list":["post-5744","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rwatokenization","tag-prospectus-regulation","tag-smart-contract-design"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Prospectus Regulation for Tokenized Securities: Smart Contract Architecture<\/title>\n<meta name=\"description\" content=\"Prospectus Regulation for Tokenized Securities Smart Contract Architecture explained: what EU issuers must build before launch.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture\" \/>\n<meta property=\"og:description\" content=\"Prospectus Regulation for Tokenized Securities Smart Contract Architecture explained: what EU issuers must build before launch.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture\" \/>\n<meta property=\"og:site_name\" content=\"InnBlockchain\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/people\/Innblockchain\/100083044795160\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-30T06:58:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-30T10:19:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/09\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1774\" \/>\n\t<meta property=\"og:image:height\" content=\"887\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Gayathri\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Innblockchain1\" \/>\n<meta name=\"twitter:site\" content=\"@Innblockchain1\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gayathri\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"24 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture\"},\"author\":{\"name\":\"Gayathri\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#\\\/schema\\\/person\\\/a1a1bc5885fb26b80e6cd52fa4e6e081\"},\"headline\":\"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture\",\"datePublished\":\"2026-09-30T06:58:39+00:00\",\"dateModified\":\"2026-09-30T10:19:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture\"},\"wordCount\":5436,\"publisher\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp\",\"keywords\":[\"Prospectus Regulation\",\"smart contract design\"],\"articleSection\":[\"RWA Tokenization\"],\"inLanguage\":\"en-US\"},{\"@type\":[\"WebPage\",\"SearchResultsPage\"],\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture\",\"url\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture\",\"name\":\"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp\",\"datePublished\":\"2026-09-30T06:58:39+00:00\",\"dateModified\":\"2026-09-30T10:19:17+00:00\",\"description\":\"Prospectus Regulation for Tokenized Securities Smart Contract Architecture explained: what EU issuers must build before launch.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#primaryimage\",\"url\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp\",\"contentUrl\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp\",\"width\":1774,\"height\":887,\"caption\":\"Prospectus Regulation smart contract architecture\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tokenization\",\"item\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/category\\\/tokenization\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RWA Tokenization\",\"item\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/category\\\/tokenization\\\/rwatokenization\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#website\",\"url\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/\",\"name\":\"InnBlockchain Academy\",\"description\":\"Latest Blog &amp; News About Blockchain And Crypto\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#organization\",\"name\":\"InnBlockchain\",\"url\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/test.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/InnBlockChain_Acadamy.png\",\"contentUrl\":\"https:\\\/\\\/test.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/InnBlockChain_Acadamy.png\",\"width\":960,\"height\":320,\"caption\":\"InnBlockchain\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/people\\\/Innblockchain\\\/100083044795160\\\/\",\"https:\\\/\\\/x.com\\\/Innblockchain1\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/#\\\/schema\\\/person\\\/a1a1bc5885fb26b80e6cd52fa4e6e081\",\"name\":\"Gayathri\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/17787870143092-96x96.jpg\",\"url\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/17787870143092-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/17787870143092-96x96.jpg\",\"caption\":\"Gayathri\"},\"description\":\"With a dedication to delivering organic content by simplifying complex concepts of Blockchain, and love to connect with your hearts and minds.\",\"url\":\"https:\\\/\\\/www.innblockchain.com\\\/academy\\\/author\\\/gayathri\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture","description":"Prospectus Regulation for Tokenized Securities Smart Contract Architecture explained: what EU issuers must build before launch.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture","og_locale":"en_US","og_type":"article","og_title":"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture","og_description":"Prospectus Regulation for Tokenized Securities Smart Contract Architecture explained: what EU issuers must build before launch.","og_url":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture","og_site_name":"InnBlockchain","article_publisher":"https:\/\/www.facebook.com\/people\/Innblockchain\/100083044795160\/","article_published_time":"2026-09-30T06:58:39+00:00","article_modified_time":"2026-09-30T10:19:17+00:00","og_image":[{"width":1774,"height":887,"url":"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/09\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp","type":"image\/webp"}],"author":"Gayathri","twitter_card":"summary_large_image","twitter_creator":"@Innblockchain1","twitter_site":"@Innblockchain1","twitter_misc":{"Written by":"Gayathri","Est. reading time":"24 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#article","isPartOf":{"@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture"},"author":{"name":"Gayathri","@id":"https:\/\/www.innblockchain.com\/academy\/#\/schema\/person\/a1a1bc5885fb26b80e6cd52fa4e6e081"},"headline":"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture","datePublished":"2026-09-30T06:58:39+00:00","dateModified":"2026-09-30T10:19:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture"},"wordCount":5436,"publisher":{"@id":"https:\/\/www.innblockchain.com\/academy\/#organization"},"image":{"@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#primaryimage"},"thumbnailUrl":"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/09\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp","keywords":["Prospectus Regulation","smart contract design"],"articleSection":["RWA Tokenization"],"inLanguage":"en-US"},{"@type":["WebPage","SearchResultsPage"],"@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture","url":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture","name":"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture","isPartOf":{"@id":"https:\/\/www.innblockchain.com\/academy\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#primaryimage"},"image":{"@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#primaryimage"},"thumbnailUrl":"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/09\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp","datePublished":"2026-09-30T06:58:39+00:00","dateModified":"2026-09-30T10:19:17+00:00","description":"Prospectus Regulation for Tokenized Securities Smart Contract Architecture explained: what EU issuers must build before launch.","breadcrumb":{"@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#primaryimage","url":"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/09\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp","contentUrl":"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/09\/Prospectus-Regulation-smart-contract-architecture_1774x887.webp","width":1774,"height":887,"caption":"Prospectus Regulation smart contract architecture"},{"@type":"BreadcrumbList","@id":"https:\/\/www.innblockchain.com\/academy\/prospectus-regulation-for-tokenized-securities-smart-contract-architecture#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innblockchain.com\/academy"},{"@type":"ListItem","position":2,"name":"Tokenization","item":"https:\/\/www.innblockchain.com\/academy\/category\/tokenization"},{"@type":"ListItem","position":3,"name":"RWA Tokenization","item":"https:\/\/www.innblockchain.com\/academy\/category\/tokenization\/rwatokenization"},{"@type":"ListItem","position":4,"name":"Prospectus Regulation for Tokenized Securities: Smart Contract Architecture"}]},{"@type":"WebSite","@id":"https:\/\/www.innblockchain.com\/academy\/#website","url":"https:\/\/www.innblockchain.com\/academy\/","name":"InnBlockchain Academy","description":"Latest Blog &amp; News About Blockchain And Crypto","publisher":{"@id":"https:\/\/www.innblockchain.com\/academy\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innblockchain.com\/academy\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.innblockchain.com\/academy\/#organization","name":"InnBlockchain","url":"https:\/\/www.innblockchain.com\/academy\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innblockchain.com\/academy\/#\/schema\/logo\/image\/","url":"https:\/\/test.innblockchain.com\/academy\/wp-content\/uploads\/2023\/03\/InnBlockChain_Acadamy.png","contentUrl":"https:\/\/test.innblockchain.com\/academy\/wp-content\/uploads\/2023\/03\/InnBlockChain_Acadamy.png","width":960,"height":320,"caption":"InnBlockchain"},"image":{"@id":"https:\/\/www.innblockchain.com\/academy\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/people\/Innblockchain\/100083044795160\/","https:\/\/x.com\/Innblockchain1"]},{"@type":"Person","@id":"https:\/\/www.innblockchain.com\/academy\/#\/schema\/person\/a1a1bc5885fb26b80e6cd52fa4e6e081","name":"Gayathri","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/05\/17787870143092-96x96.jpg","url":"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/05\/17787870143092-96x96.jpg","contentUrl":"https:\/\/www.innblockchain.com\/academy\/wp-content\/uploads\/2026\/05\/17787870143092-96x96.jpg","caption":"Gayathri"},"description":"With a dedication to delivering organic content by simplifying complex concepts of Blockchain, and love to connect with your hearts and minds.","url":"https:\/\/www.innblockchain.com\/academy\/author\/gayathri"}]}},"_links":{"self":[{"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/posts\/5744","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/comments?post=5744"}],"version-history":[{"count":27,"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/posts\/5744\/revisions"}],"predecessor-version":[{"id":5796,"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/posts\/5744\/revisions\/5796"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/media\/5771"}],"wp:attachment":[{"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/media?parent=5744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/categories?post=5744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innblockchain.com\/academy\/wp-json\/wp\/v2\/tags?post=5744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}