# Ledger Common App - Parachains Integrations
The Ledger Common App is very close to being released to the public, and with this every Polkadot-SDK chain will be able to leverage the app. This app will also be resilient to runtime upgrades as it leverages on-chain metadata to function.
The main requirements from the parachain teams to be able to have this functionality avaiable, are:
- Add the `frame_metadata_hash_extension::CheckMetadataHash<Runtime>` SignedExtension to the parachain runtime.
- Be compatible with Metadata V15. Below you can find a list of the status per each parachain team, as can be queried from their runtimes.
- Be on at least [Polkadot-SDK v1.1.0](https://github.com/paritytech/polkadot-sdk/tree/polkadot-v1.1.0).
The above changes are included already on the relaychain runtimes, as well as on AH on Rococo and Westend as detailed on [#4274](https://github.com/paritytech/polkadot-sdk/pull/4274/). Although detailed below, we also recommend following this PR to follow the needed changes.
## Adding the SignedExtension
Three things need to be done to add the new SignedExtension to your runtime:
1. Add dependencies to the Cargo.toml file.
2. Add the new `frame_metadata_hash_extension` to `SignedExtra`. [Example on Rococo AH](https://github.com/paritytech/polkadot-sdk/blob/78e36290e0c33fc69fd2b7669cfca5134e79906d/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/lib.rs#L969).
```rust=
mod add_metadata_hash_extension {
frame_support::construct_runtime! {
pub enum Runtime {
System: frame_system,
}
}
/// The `SignedExtension` to the basic transaction logic.
pub type SignedExtra = (
frame_system::CheckNonZeroSender<Runtime>,
frame_system::CheckSpecVersion<Runtime>,
frame_system::CheckTxVersion<Runtime>,
frame_system::CheckGenesis<Runtime>,
frame_system::CheckMortality<Runtime>,
frame_system::CheckNonce<Runtime>,
frame_system::CheckWeight<Runtime>,
// Add the `CheckMetadataHash` extension.
// The position in this list is not important, so we could also add it to beginning.
frame_metadata_hash_extension::CheckMetadataHash<Runtime>,
);
/// In your runtime this will be your real address type.
type Address = ();
/// In your runtime this will be your real signature type.
type Signature = ();
/// Unchecked extrinsic type as expected by this runtime.
pub type UncheckedExtrinsic =
sp_runtime::generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>;
}
```
3. As this SignedExtension requires the `RUNTIME_METADATA_HASH` variable to be present at compile time, this requires a change in the build process to allow the `substrate-wasm-builder` to make it available. [Example on Rococo AH](https://github.com/paritytech/polkadot-sdk/blob/78e36290e0c33fc69fd2b7669cfca5134e79906d/cumulus/parachains/runtimes/assets/asset-hub-rococo/build.rs#L21).
> ⚠️ As generating the metadata hash requires to compile the runtime twice, it is recommended to only enable the metadata hash generation when doing a build for a release or when you want to test this feature.
```rust=
fn enable_metadata_hash_in_wasm_builder() {
substrate_wasm_builder::WasmBuilder::init_with_defaults()
// Requires the `metadata-hash` feature to be activated.
// You need to pass the main token symbol and its number of decimals.
.enable_metadata_hash("TOKEN", 12)
// The runtime will be build twice and the second time the `RUNTIME_METADATA_HASH`
// environment variable will be set for the `CheckMetadataHash` extension.
.build()
}
```
## Metadata V15 compatibility - Status
The Ledger Common App leverages a metadata shortening protocol to function. This is compatible with only MetadataV15, so parachain teams need to update to this Metadata version in order to use the app.
The status of each team is as follows.
| Parachain | Relaychain | Current version |
|:------------------:|:----------:|:---------------:|
| Asset Hub | Polkadot | V15 |
| Bridge Hub | Polkadot | V15 |
| Collectives | Polkadot | V15 |
| Acala | Polkadot | V15 |
| Ajuna | Polkadot | V15 |
| Astar | Polkadot | V15 |
| Aventus | Polkadot | V15 |
| Bifrost | Polkadot | V15 |
| Bitgreen | Polkadot | V15 |
| Centriuge | Polkadot | V14 |
| Composable Finance | Polkadot | V14 |
| Continuum | Polkadot | V14 |
| Crust | Polkadot | V15 |
| Darwinia | Polkadot | V15 |
| Energy Web X | Polkadot | N/A |
| Frequency | Polkadot | V15 |
| Hashed Network | Polkadot | V15 |
| HydraDX | Polkadot | V15 |
| Hyperbridge | Polkadot | V15 |
| Integritee | Polkadot | V15 |
| Interlay | Polkadot | V14 |
| InvArch | Polkadot | V14 |
| KILT | Polkadot | V15 |
| Litentry | Polkadot | V14 |
| Logion | Polkadot | V15 |
| Manta | Polkadot | V14 |
| Moonbeam | Polkadot | V15 |
| Mythos | Polkadot | V15 |
| Neuroweb | Polkadot | N/A |
| Nodle | Polkadot | V14 |
| Parallel | Polkadot | N/A |
| Pendulum | Polkadot | V14 |
| Phala | Polkadot | V15 |
| Polimec | Polkadot | V15 |
| Polkadex | Polkadot | V15 |
| SORA | Polkadot | N/A |
| Subsocial | Polkadot | N/A |
| T3rn | Polkadot | N/A |
| Unique Network | Polkadot | V15 |
| Watr | Polkadot | V15 |
| Zeitgeist | Polkadot | N/A |
| Asset Hub | Kusama | V15 |
| Bridge Hub | Kusama | V15 |
| Coretime | Kusama | V15 |
| Encointer | Kusama | V15 |
| Acurast | Kusama | V15 |
| Altair | Kusama | V14 |
| Amplitude | Kusama | V14 |
| Bajun | Kusama | V15 |
| Basilisk | Kusama | V15 |
| Bifrost | Kusama | V15 |
| Calamari | Kusama | V14 |
| Crab | Kusama | V15 |
| Crust | Kusama | V15 |
| Curio | Kusama | V15 |
| DAO IPCI | Kusama | N/A |
| GM | Kusama | N/A |
| Hyperbridge | Kusama | N/A |
| Imbue | Kusama | V15 |
| Integritee | Kusama | V15 |
| InvArch | Kusama | V14 |
| K-Laos | Kusama | V15 |
| Kabocha | Kusama | N/A |
| Karura | Kusama | V15 |
| Khala | Kusama | V15 |
| Kintsugi | Kusama | V14 |
| Kreivo | Kusama | V15 |
| Krest | Kusama | V14 |
| Litmus | Kusama | N/A |
| Mangata | Kusama | V15 |
| Moonriver | Kusama | V15 |
| Parallel Heiko | Kusama | N/A |
| Picasso | Kusama | V14 |
| Pioneer | Kusama | N/A |
| Quartz | Kusama | V15 |
| Robonomics | Kusama | N/A |
| Shiden | Kusama | V15 |
| SORA | Kusama | N/A |
| SubZero | Kusama | N/A |
| Turing | Kusama | V14 |
| Xode | Kusama | V14 |