Practical overview
When it fits
Use it when working with a compiled ink!, ask! or solang contract on a Substrate chain with the FRAME Contracts pallet, and the connected node uses WeightV2.
Who it is for
- Substrate developers deploying or re-instantiating WASM contracts.
- Contract developers who need a web interface to call contract messages and inspect returned results.
- Contributors developing the TypeScript application locally.
Documented uses
- Instantiate new contract code by uploading a compiled .contract bundle.
- Create another instance from an existing on-chain code hash, with metadata supplied when needed.
- Call contract messages after instantiation and review the results log.
- Install dependencies and start the application’s local development server.
Requirements & limits
The README describes a hosted web interface and local development setup. The current interface requires a WeightV2 node; the project directs users of older nodes to a separate WeightV1 deployment.
- Node compatibility is decisive: the current interface supports WeightV2 nodes; older nodes are directed to a separate deployment.
- For new code, the .contract bundle includes metadata and WASM, and the project warns that node, ink! and cargo-contract versions must be up to date.
- For existing code not uploaded through the UI, metadata.json is also required alongside the code hash.
- The repository identifies TypeScript as its primary language and GPL-3.0 as its license.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Instantiate a contract from uploaded code
Add a compiled contract to a compatible Substrate chain using the UI’s new-code path.
Before you start
- A compiled contract and connection to a Substrate node using WeightV2.
- A generated .contract bundle containing contract metadata and WASM code.
- Up-to-date versions of the node, ink! and cargo-contract, as required for bundle validity.
Steps
Connect the UI to the compatible node.
Choose the option to upload new contract code and provide the .contract bundle.
Complete the guided instantiation form generated from the contract metadata.
Expected outcome
The contract is instantiated on-chain; the UI then opens its contract page for message calls and result logs.
Guide limitations
- The current interface is compatible only with WeightV2 nodes.
- The project documents ink!, ask! and solang contracts as supported.
Instantiate from existing on-chain code
Create an instance using code already stored on-chain.
Before you start
- A connection to a Substrate node using WeightV2.
- The on-chain code hash, or a code hash belonging to a bundle previously uploaded through the UI.
- If the code is on-chain but was not uploaded through the UI, its metadata.json file.
Steps
Connect to the compatible node and choose the existing-code instantiation option.
Provide or select the code hash.
Provide metadata.json when the code was not uploaded through the UI, then complete the metadata-guided form.
Expected outcome
The contract is instantiated and its page provides message calls and a result log.
Guide limitations
- The interface’s current node requirement is WeightV2.
- The additional metadata.json requirement applies to code on-chain that was not uploaded through this UI.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 9 October 2026
- Original website title
- use-ink/contracts-ui · Official homepage title · retained in its source language

