Why the V3_0 channel capability needs its own planning step
Enabling the V3_0 channel capability is a channel-level change, and it should be made only after every orderer and peer in the network runs the 3.x binaries. Installing new binaries and turning on the capability are separate events, so a team can finish the binary work and still have channels that behave as they did under 2.x. The supported path has four stages: back up the ledger and MSPs, upgrade orderer binaries in a rolling fashion, upgrade peer binaries in a rolling fashion, and then update the capability level on each application channel. Because the capability is set per channel, each channel needs its own readiness check and its own change record. That is why the change needs its own planning step, separate from the binary upgrade ticket.
Release timing shapes that plan. The Fabric documentation states that v2.5 remains the long-term support release for production users, so many production networks will stay on that line for now. The Fabric releases page lists v3.1.5 and v2.5.16, both published on June 18, 2026, which shows that the 3.x and 2.5 lines receive patch releases in parallel. Before scheduling, confirm which patch level each organization will install and confirm that every member is on the same release line when the capability is enabled. Record the target version in the change plan, and check the releases page again on the day of the rollout, because a newer patch may have been published since this page was written.
Client applications can move on a different schedule. The Fabric Gateway client API supports both v2.5 and v3.0, so application teams do not have to wait for the network change to finish before they upgrade their clients, and the network does not have to wait for every application. That separation shortens the list of items that must land on the same day. The planning step should still name an owner for each application's compatibility testing and confirm which application versions run in production against which channels. Application teams that depend on a channel should know the date when its capability changes, so their test environments can reflect the new behavior before it reaches production.
The planning step also has to address the endpoint prerequisite. According to the Fabric docs, OrdererEndpoints must be defined at the organization level before V3_0 is enabled. Once any organization defines them, orderers and peers ignore channel-level endpoints, so a channel that depends on channel-level endpoints can change behavior at the point of the update. Organization-level endpoints are also required for service discovery with ordering nodes from multiple organizations. Before scheduling, audit each channel configuration for channel-level endpoints, confirm that every organization has published its organization-level entries, and agree on the order in which those config updates go through the consortium approval process.
What changes in Fabric 3.x and what each change asks of you
This table lists the changes that matter when enabling the V3_0 channel capability on an existing network, and what each one asks of your team. Some changes must be finished before the capability is enabled, while others affect client applications and certificate tooling. Treat the release notes for your target 3.x patch as the final reference for exact behavior.
| Change | Impact | Action needed |
|---|---|---|
| V3_0 capability enables SmartBFT consensus | Enabling V3_0 turns on SmartBFT ordering and affects both orderer and peer behavior | Upgrade all orderer and peer binaries first. Confirm exact behavior in the 3.x release notes for your patch. |
| Ed25519 added alongside ECDSA for MSP signing | Enabling V3_0 also enables Ed25519 in MSP credentials across the network | Review client certificate and signing tooling for Ed25519 support. Confirm the details in the 3.x release notes. |
| OrdererEndpoints required at the organization level | Must be defined before enabling V3_0; once one organization defines them, channel-level endpoints are ignored | Add organization-level endpoints through a channel config update, then verify service discovery across organizations. |
| Removal of Solo and Kafka consensus | Networks still using Solo or Kafka ordering cannot continue on 3.x ordering as configured today | Confirm Kafka networks have migrated to Raft and no Solo orderers remain. Check the 3.x release notes for your patch. |
| Removal of the v1.x legacy chaincode lifecycle | Channels still on the legacy lifecycle must move before the upgrade can proceed | Confirm all channels use the v2.x lifecycle and chaincode definitions are committed. Verify against the release notes. |
| Gateway client API compatibility with v2.5 and v3.0 | Client applications can be upgraded separately from the network | Schedule client upgrades on their own timeline. Confirm which Gateway version each application uses and test it. |
Why organization-level orderer endpoints must exist before V3_0
Organization-level OrdererEndpoints must be defined before a channel enables the V3_0 capability. Their job is service discovery: they tell peers and orderers, for each member organization's MSP, which ordering nodes to contact and where they are reachable. Without them, a channel has no authoritative list of ordering addresses tied to each organization, and the multi-organization ordering set cannot be reached consistently. The Fabric docs make this a hard prerequisite, so the first decision is not when to flip the capability but whether every participating organization already publishes its endpoints in its channel configuration.
The consequence that most often causes trouble is precedence. Once any organization defines organization-level endpoints, orderers and peers ignore channel-level endpoints entirely. That rule applies across the whole channel, not per organization. A channel that has carried routing in channel-level endpoints for years can therefore change behavior the moment one member adds organization-level entries, even if the values look identical on paper. If the entries are incomplete, stale or point at a load balancer or hostname that a peer cannot resolve, traffic can route differently with no error at the point of change. A partial rollout is the risk to plan for, not a hypothetical one.
Service discovery matters most when ordering nodes belong to several organizations. Each organization operates its own consenter or ordering nodes, and every peer and orderer needs a correct address for each of them. Organization-level endpoints carry that information per MSP, so a node added or moved by one member is visible to the others through a single, consistent mechanism. Treat the endpoint list as shared configuration that all members must agree on, with each organization accountable for the entries describing its own nodes. Confirm with each member which hostnames, ports and TLS certificates it will publish, and who approves changes to them.
Before any config update starts, inventory every channel's current endpoint definitions. For each channel, record whether channel-level endpoints exist, whether any organization already defines organization-level endpoints, the addresses and TLS settings in use, and which peers and orderers depend on them. Compare that inventory with the orderer and peer addresses actually reachable from each network segment, including any proxies, DNS aliases and container networks. Channels that were created with different tooling or by different teams often diverge, so do not assume a single pattern. The inventory becomes the baseline for the channel config update and for the rollback comparison if routing changes unexpectedly.
Plan the endpoint change as a coordinated, channel-by-channel exercise rather than a single administrative step. Schedule it only after every orderer and peer binary has been upgraded, because the V3_0 capability affects both node types. Have each organization confirm its endpoint entries in a test or staging channel, verify connectivity from every peer and orderer, and agree on the order of config updates and the owner of each signature. Record the verified state so the team can show what routing looked like before and after the change.
What to prepare before the first binary is replaced
Four preparation areas come before any orderer or peer binary is replaced. Each one gives you a known starting point, a way to recover, and a way to confirm health after every step, so the change proceeds as a verified sequence.
Back up the ledger and MSPs
The Fabric upgrade guide makes backup the first of its four steps, and it applies to every peer and orderer in the network. Take ledger snapshots and copy each MSP directory, including signing keys and TLS material, from every node, then store the copies outside the node that produced them. Confirm that your team has restored at least one node from these backups in the test network before production work begins, and record who owns the restore procedure.
Inventory channels, chaincode and organizations
Record every channel, its current application capability level, each chaincode definition with its approved organizations, and the organization definitions in each channel configuration. Fabric 3.0 removed the v1.x legacy chaincode lifecycle and Kafka ordering, so confirm that every channel already runs on the v2.x lifecycle and that ordering has moved to Raft. This inventory becomes the baseline you compare against after each channel config update.
Mirror production in a test network
Build a test network with the same organizations, peer and orderer counts, TLS settings and Raft consenter set as production, running the versions you plan to deploy. Rehearse the binary upgrades, the organization-level OrdererEndpoints update and the V3_0 capability change there first. A five node Raft cluster tolerates the loss of two nodes, so use the same node count in the test network to observe how a single node outage behaves during the rolling upgrade.
Check health with operations endpoints
Use the operations service on every peer and orderer to confirm health before and after each step: /healthz for health checks, /version to confirm the binary level, and /metrics for Prometheus scraping. The operations service requires mutual TLS, so issue client certificates to the people and monitoring systems that will call it, and test them in advance. Record the output at each checkpoint so a failing node is identified before the next one is upgraded.
Plan custom images for HSM-backed keys
If peer or orderer MSP keys sit in an HSM through PKCS#11, plan custom images now. The prebuilt Docker images do not include PKCS#11, so the upgraded binaries need a build that does, with the vendor's library available inside the image. Keep TLS keys file-based, as the Fabric HSM documentation requires, and confirm with your HSM vendor that the library supports the target Fabric version. Schedule the image build and its test as part of the rollout plan.
The upgrade sequence from backup to enabled capability
The sequence moves a Fabric network from a verified backup through binary upgrades on every orderer and peer, then organization-level orderer endpoints, and finally the V3_0 channel capability. Each step closes with a check that tells the operators the network is ready for the next one.
Back up ledgers and MSPs before any change
Before any binary changes, each organization backs up the ledger on its peers and orderers and the MSP material it holds, including signing and TLS key material stored in the expected locations. Operators restore one backup into a non-production environment to confirm it is readable and complete. This backup is the rollback point for the binary upgrade and for the capability change, so it is labeled with the channel names and current binary versions. The step is done when every organization confirms in writing that its backup has been restored once in a test environment.
Confirm prerequisites on every channel
Before upgrading, the consortium confirms that every ordering service uses Raft, because Fabric v3.0 removed Kafka and Solo ordering, and that every channel uses the v2.x chaincode lifecycle, because the v1.x legacy lifecycle was removed. Each member organization reports its channel list, ordering type, and lifecycle status. Any channel that still needs migration is fixed and rechecked before work continues. The step is done when a single inventory lists every channel with Raft ordering and the v2.x lifecycle, signed off by each organization.
Upgrade orderer binaries one node at a time
Each orderer node is upgraded to the target 3.x binary one at a time, so the Raft cluster keeps a quorum throughout. After each node restarts, operators call its operations service health endpoint, confirm the reported version, and check that the node has rejoined consensus and is receiving blocks. The next node is upgraded only after these checks pass. If a node fails its checks, it is rolled back to the previous binary using the backup from the first step. The step is done when every orderer node reports the target version and a healthy consensus state.
Upgrade peer binaries in a rolling sequence
Peers are upgraded one at a time across all member organizations, with the ledger on each peer kept in sync before the next peer is changed. After each peer restarts, operators check the health endpoint, the reported version, and the peer's block height against a healthy peer on the same channel. They also run a read query and a test transaction against the chaincode to confirm endorsement still works. A peer that fails any check is rolled back to its previous binary. The step is done when every peer reports the target version and endorses transactions normally on each channel.
Add organization-level orderer endpoints by config update
Each organization adds its OrdererEndpoints at the organization level through a channel config update on every affected channel. The Fabric docs state that once any organization defines these endpoints, orderers and peers ignore channel-level endpoints, so operators first list any channel-level endpoints and plan their removal with the other members. The update is proposed, signed by the required administrators, and committed in the order agreed by the consortium. Operators then confirm that clients and peers discover all ordering nodes from each organization. The step is done when the channel config shows the endpoints for every organization and service discovery returns the expected ordering nodes.
Enable the V3_0 application channel capability
After all binaries and endpoints are in place, the consortium updates the application channel capability to V3_0 through a channel config update, coordinated across member organizations on a date they agree in advance. Before submitting, operators record the current channel config and the state of every node so they can compare afterward. After the update commits, operators confirm the capability in the channel config, check that the orderers and peers still produce blocks and endorse transactions, and confirm that SmartBFT and Ed25519 MSP behavior is active where the design expects it. Confirm the exact config update commands against the current Fabric documentation for the target version before running them. The step is done when every channel reports V3_0, all nodes are healthy, and the pre-change backup is retained as the recovery point.
How member organizations coordinate the capability change
Channel operators own the channel configuration and are responsible for building and submitting the config update that adds organization-level orderer endpoints and enables the V3_0 capability. They decide the update sequence, confirm which organizations sign, and coordinate the signature collection before anything is committed.
The artifacts they must share include:
- Current channel config and proposed diff, reviewed by every signing organization before signing starts
- Organization-level OrdererEndpoints definitions for each ordering node operator
- Signing policy approvals from each member organization, tied to the policy the channel's modification rules require
- Confirmation that all orderer and peer binaries are upgraded before the capability is enabled
Sign-off comes from the signing organizations named in the channel's policies. Every organization whose signature the update requires must be on the change schedule, with a named contact who can sign within the window. Check whether your channel policy requires a majority, a specific set of organizations, or all members, and confirm the policy with the channel's documented configuration before you plan the signing order.
Orderer operators run the ordering nodes and own the verification that every node is on a Fabric 3.x binary before the capability is enabled. They also supply the endpoint details that go into the organization-level definitions, since those addresses must be reachable by peers and clients across member organizations.
The artifacts they must share include:
- Binary version reports for each ordering node, confirmed after the rolling upgrade
- Endpoint definitions (host and port for each ordering node) as they will appear in the organization definition
- TLS certificate details showing which names and addresses the endpoints must match
- Health check results from the operations service for each node, collected before and after the change
Sign-off is usually given after the upgrade is complete on every ordering node and the endpoint definitions have been checked for reachability. Ask the channel operators to confirm the exact endpoint strings, because a mismatch between the definition and the live address is a common cause of failed service discovery after the change. Confirm your consensus type and ordering setup with your own documentation before scheduling.
Peer operators in each member organization own the upgrade of their peer binaries and their own signature on the channel config update. They decide the order of peer upgrades within their organization and verify that each peer is healthy before the channel capability is switched on.
The artifacts they must share include:
- Peer binary versions for every peer, recorded after the rolling upgrade
- Ledger and MSP backup confirmation taken before the upgrade started
- Signing key and certificate details for the admin identity that will sign the config update
- Operations service results such as health checks and version reports, including any failing peers
Sign-off is given by each organization's peer operator once their peers are upgraded and their signing identity is ready. A peer that is still on an older binary can cause the capability change to fail or leave that organization unable to process blocks, so make peer readiness a gate in the schedule. Confirm with your own team whether any HSM-backed MSP keys need a custom image before the upgrade window opens.
Application teams use the Fabric Gateway client to submit transactions and read the ledger. They do not sign the channel config update, but they need a clear view of when the network will change and whether their client builds remain compatible during the transition.
The artifacts they must share include:
- Gateway client version and the Fabric release line it was built against
- Connection profile or endpoint configuration that the client uses to reach peers and orderers
- Transaction test results from a non-production channel that was upgraded first
- Maintenance window confirmation showing when submissions may pause or need retries
Sign-off comes from the application owner once the client has been tested against the upgraded network. The Fabric docs state that the Gateway client API is compatible with both v2.5 and v3.0, so client applications can be upgraded separately from the network. Confirm this compatibility for your exact client version, and make sure the team knows which endpoint definitions the client depends on, since those may change with the organization-level endpoints.
How to test the change and what rollback can and cannot do
The staging test should repeat the full change sequence, in the same order, on a copy of the production channel configuration before anyone touches production. Start from a copy of the current channel config block, the orderer and peer binaries at the versions production will run, and the MSP material production uses. Run the steps exactly as the production runbook lists them: upgrade orderers, upgrade peers in a rolling fashion, add organization-level OrdererEndpoints through a channel config update, and then enable the V3_0 capability. Record the exact commands, operator names and wait points so the production window follows the same script. Any step that needed improvisation in staging should be rewritten before the window.
Include a mixed-version period in the test. Hold the network in a state where some orderers and peers run 3.x and others still run the prior line, and exercise transactions, block delivery and client submissions across that boundary. Confirm which binary each node runs at every step, using the operations service version endpoint rather than assumptions from deployment records. Also test the state where all binaries are upgraded but the V3_0 capability is still disabled, because production may need to pause there while coordinating with member organizations. Note which operations succeed in each state so the team knows what is safe to do while the network is partially upgraded.
Test transactions across organizations. Submit proposals from a client in each member organization, endorse them on peers in other organizations, and confirm that endorsement policies are satisfied and that every organization's peers commit the same blocks. Then verify endpoint discovery from each organization: from each organization's client and peers, confirm that ordering endpoints resolve from the organization-level definitions. Once any organization defines OrdererEndpoints, orderers and peers ignore channel-level endpoints, so a missing or stale organization definition can break discovery for members who did not make the change. A gap found in staging is a configuration fix. The same gap found in production blocks other members.
Rollback after the capability is enabled depends on what the Fabric documentation says about reverting capability levels and reverting binaries. Read the upgrade documentation for the exact release pair you are moving between and confirm which steps can be reversed, which cannot, and what state the ledger and channel configuration are left in. Get that answer in writing from your Fabric support contact if you have one, before the production window is approved. Do not promise stakeholders a rollback duration. The time depends on ledger size, the number of nodes and the reverse steps the documentation allows, and none of those are known until your environment is measured. Keep a backup of the ledger and MSPs taken before the upgrade, a snapshot of each channel config block before each update, and a record of the binary version each node ran. These artifacts define the known state you would restore to. Test that restore in staging before you rely on it.
What makes a V3_0 enablement take longer
This table lists the factors that change how much work a V3_0 enablement involves, why each one adds effort, and what to request in a written quote. Treat each row as a question to answer about your network before scoping, because every answer moves the plan. The main takeaway is that the capability change is one step among several, and the prerequisites and verification around it tend to set the scope.
| Driver | Why it adds effort | What to ask for in a quote |
|---|---|---|
| Organizations and signing policies | Each organization must confirm its binaries, MSP setup and organization-level endpoints before the change, and each signing policy needs re-checking afterward. | Confirmed list of member organizations, the endpoint and signing policy for each, and who approves the channel config update. |
| Channels and shared ordering nodes | Every channel's configuration must be updated, and shared orderers mean one change can affect several channels at once. | Channel inventory, which orderers serve each channel, and the coordination plan for changes across channels. |
| Outstanding Kafka or legacy lifecycle migrations | Fabric v3.0 removed Kafka ordering and the v1.x lifecycle, so these migrations must finish first and sit outside the capability step. | Whether these migrations are already complete or in scope, and a separate estimate for any that remain open. |
| HSM-backed MSP keys | Keys in an HSM use the PKCS#11 standard, and prebuilt Docker images do not include it, so custom images must be built, tested and rolled out. | Named HSM model and client library, the custom image build and test plan, and who maintains the images after handover. |
| Peer state database and chaincode as a service | These setups depend on components outside the default container path, so upgraded peers need extra verification against their own configuration. | Inventory of state database and chaincode deployment for each peer, and the verification scope for each. |
| Ledger size | Backup before the upgrade and restore planning grow with ledger and MSP data volume, and a restore rehearsal needs that time too. | Ledger and MSP sizes per peer and orderer, backup storage capacity, and the scope of a restore test. |
| Client applications needing regression tests | Gateway client APIs are compatible with v2.5 and v3.0, but each application still needs regression testing against the upgraded network. | List of client applications, their owners, and whether regression testing is included or handled by your team. |
| Environments repeating the sequence | Test, staging and production each repeat the backup, binary upgrade and capability steps, so effort grows with each environment added. | Number of environments, whether test and staging match production, and the sign-off steps required for each. |
Questions buyers ask before enabling V3_0
Can our team enable the Fabric V3_0 channel capability without outside help?
Yes, if the team has the access, a test environment and a signing process that covers every member organization. Whether it should depends on its Fabric experience and its change control. The capability changes orderer and peer behavior across the network, so the people running the change need to understand SmartBFT consensus, Ed25519 credentials and the channel config update that adds organization-level orderer endpoints. Teams with a documented change process, a rehearsed rollback from backups and an engineer who has already run a channel config update often manage this internally. Teams that have not yet done a rolling binary upgrade on a live network often bring in a partner for the first channel, then take over the runbook.
What does enabling V3_0 cost, and what drives the price?
Cost depends on scope. DeployOpen does not publish a price list, and a quote follows from a written scope that is normally fixed. The main drivers are the number of channels, the number of organizations that must sign each config update, outstanding prerequisites such as Kafka ordering still in place, channels still on the v1.x lifecycle or endpoints not yet defined at the organization level, and how deep testing goes. Ask the quote to separate one-time work (readiness review, endpoint definition, rehearsal, the change run and evidence) from recurring work such as patch upgrades or ongoing support, which DeployOpen offers as a retainer. Also ask which organization pays for which tasks and how a missing prerequisite found during work is priced.
How long does a V3_0 enablement take?
The duration depends on the same drivers that set the cost, plus the signing schedule of each member organization. DeployOpen does not state a timeline before the scope is written. Schedules usually move more with approvals than with technical work. Each organization must review the config update, sign it under its own policy and agree a change window. Outstanding prerequisites, such as migrating Kafka ordering to Raft or moving channels to the v2.x lifecycle, add work before the capability can be enabled at all. Ask for the planned sequence in writing: readiness checks, upgrade windows for orderers and peers, the rehearsal, the config update and the signing dates each organization has committed to. Those signing dates often decide when the capability goes live.
What does our organization need to provide for a V3_0 enablement?
The work needs access, identities and named people, and most delays come from one of these being missing. Expect to provide access to orderer and peer nodes, including hosts, container runtimes or Kubernetes contexts, and the operations endpoints. The channel config update requires MSP admin and channel admin identities for each organization that signs. Each organization should name a signer who can approve the update under its own governance. Agree change windows for the rolling upgrade of orderers and then peers, along with a rollback window if an upgrade fails. Make sure ledger and MSP backups are in place before work starts, since the upgrade guide begins with that step. Name a technical owner who can answer questions during each window.
Should we stay on Fabric v2.5 LTS for production?
Stay on v2.5 for production if your network needs the stability of the LTS line and does not yet depend on features that only the 3.x line provides. The Fabric documentation names v2.5 as the long-term support release for production users. The GitHub releases page lists v2.5.16 and v3.1.5, both published on June 18, 2026, so the 3.x and 2.5 lines receive patch releases in parallel. The 3.x line adds SmartBFT ordering, Ed25519 MSP credentials and the V3_0 capability. Base the decision on your support obligations, whether you need BFT ordering or Ed25519, how member organizations plan their own upgrades and how long you can run one network on one line. Confirm the patch and support terms with your vendor agreements and your risk owners.
What must be true before we enable V3_0 on a channel?
Every orderer and peer binary must be upgraded, and OrdererEndpoints must be defined at the organization level before the capability is enabled. The Fabric docs state that once any organization defines organization-level endpoints, orderers and peers ignore channel-level endpoints, so the channel config must be prepared before the switch. Confirm that no channel still uses the v1.x legacy lifecycle and that Kafka ordering has moved to Raft, since v3.0 removed both. Follow the four-step upgrade guide: back up the ledger and MSPs, upgrade orderers in a rolling fashion, upgrade peers in a rolling fashion, then update the channel capability levels. Check node health through the operations service, including the /healthz endpoint and version reporting, and confirm that every member's nodes run the same binary level.
Why do organization-level orderer endpoints matter before enabling V3_0?
Organization-level endpoints are required for service discovery when ordering nodes come from multiple organizations. The Fabric docs say they must be defined before V3_0 is enabled. Once any organization defines them, orderers and peers stop reading channel-level endpoints, so a channel that still relies on channel-level entries can fail discovery after the change. Plan the update as one coordinated change: list every ordering node and its address for each organization, compare them with the existing channel-level values, add the organization-level entries and have each organization sign under its own policy. Test discovery from a client before enabling the capability, and keep the previous config block so the change can be reviewed and reversed through the agreed process.
Does enabling V3_0 change how our client applications connect?
No, client applications do not have to change at the same time as the network. The Fabric upgrade docs state that the Fabric Gateway client API is compatible with both v2.5 and v3.0, so client applications can be upgraded separately from the network. That separation helps teams sequence changes but does not remove the need for testing. Confirm the client SDK and Gateway client versions, along with any custom code that calls peers or orderers directly, since those calls depend on endpoint discovery. Test client connections after the organization-level endpoints are in place and again after the capability is enabled. Record which client version runs against which network level so the team can tell what it is dealing with during a change window.
How DeployOpen scopes and delivers the V3_0 change
DeployOpen scopes the V3_0 change as a fixed-scope engagement with a written plan covering binary upgrades, the channel config update and coordination with each member organization. The work runs inside your own infrastructure and ends with documented steps your operators can repeat. Ongoing support is available as a retainer.
How we scope
- Written scope that names every orderer and peer binary, channel and member organization in the change.
- Inventory of each channel's current capability levels, ordering nodes and organization-level OrdererEndpoints before any work starts.
- Confirmation of Kafka-to-Raft migration and v2.x lifecycle status, since V3_0 networks must already meet those prerequisites.
How we build
- Backup of ledgers and MSPs taken and verified before any binary changes on orderers or peers.
- Rolling upgrade of orderer binaries first, then peer binaries, with health checks through the operations service after each node.
- Organization-level OrdererEndpoints added through a channel config update, then the V3_0 capability enabled once all nodes run the new binaries.
How we hand over
- Runbook listing each step, the confirmation each organization returns, and the order in which changes happen.
- Verification evidence from the change: node versions, channel config history and endpoint discovery results.
- Knowledge transfer to your operators on how SmartBFT ordering and Ed25519 MSP signing change day-two operations.
How we support
- Coordination support across member organizations for their binary upgrades, endpoint updates and change approvals.
- Post-change checks of orderer and peer operations endpoints, logs and metrics, as written in the agreed scope.
- Ongoing support and upgrades for 3.x and 2.5 LTS lines available as a retainer after handover.

