Developers Office Hours #79: uplc.link: Don’t Trust, Verify (25 September)

Join Giovanni Gargiulo, Senior Blockchain Architect at the Cardano Foundation, for a closer look at uplc.link and how it helps make smart contract verification on Cardano more transparent and accessible.

In this session, Giovanni will cover:

  • What uplc.link is - and the idea behind “don’t trust, verify”
  • Why smart contract verification matters
  • Live on Cexplorer today
  • What’s new
  • Live demo
  • Future development
  • Q&A

Come see it in action and bring your questions.

:date: Friday, 25 September 2026
:two_o_clock: 08:00 UTC
:link: Developers Office Hours #79 | AddEvent

Missed a session? View the recordings here.

You can subscribe directly to the calendar here: Cardano Developers | AddEvent
Join the discussion below! We’ll update this thread with the recording link as soon as it’s live.

1 Like

Summary: uplc.link – Don’t Trust, Verify with Giovanni Gargiulo

In the 79th edition of the Developers Office Hour, Giovanni Gargiulo, Senior Blockchain Architect at the Cardano Foundation, presents uplc.link, an open-source platform designed to achieve trustless smart contract verification on the Cardano blockchain.

The Verification Gap
In Web3, the foundational ethos is “don’t trust, verify”. However, smart contracts deployed on Cardano’s layer 1 ledger exist as compiled Untyped Plutus Core (UPLC) bytecode. This bytecode reveals no information about its original source code, version, or repository commit. Even when a dApp publishes an audit report claiming a specific source version was deployed, users and auditors previously had no easy, automated way to verify that the on-chain script hash actually matched that declared off-chain source code.

How uplc.link Works & CIP-0071
uplc.link solves this gap by providing an automated verification engine. When a developer registers a contract, uplc.link checks out the source code repository at the exact specified GitHub commit, selects the required compiler version, compiles the code into UPLC bytecode, and computes the resulting script hash. It then compares this newly generated hash against the deployed on-chain script hash.

The underlying protocol utilizes CIP-0071 (metadata label 1984). This on-chain metadata record securely stores the build recipe—including the compiler version, repository URL, commit hash, source path, build environment flags (build --env), and script parameters.

Trustless Architecture vs. Etherscan
Unlike Ethereum’s Etherscan, where contract verification relies on a centralized private database, uplc.link stores the build recipes directly on the Cardano blockchain. Because the verification recipe lives on-chain under CIP-0071, any developer, block explorer, or third party can run their own independent instance of uplc.link and verify smart contracts locally. There is no single point of failure or centralized vendor lock-in.

Workflows, Explorer Integration, and Parameterized Contracts
uplc.link is directly integrated into block explorers like CExplorer. When inspecting a transaction on CExplorer, users can click a “Verify Source” button. This queries uplc.link to display the exact GitHub repository, commit hash, compiler version, module name, and parameter configuration.

The platform seamlessly handles complex parameterized contracts. Through an intuitive UI, developers can input parameter values (such as transaction references, integers, or dependent script hashes), allowing nested or inter-dependent scripts to compile and verify deterministically.

Compiler Ecosystem & Future Roadmap
While uplc.link initially launched with full support for Aiken, the architecture is designed to be multi-compiler. Work is underway to support Scalus (which achieved deterministic compilation), Plutarch (via Nix environment pinning), and Pluts. Furthermore, future roadmap plans include integrating with Blaster (a formal verification tool for Cardano smart contracts), allowing contracts with formal mathematical proofs embedded in their source code to be verified automatically alongside their bytecode.


Top Five Q&A (FAQ) about uplc.link

Question 1: What is the primary problem that uplc.link solves?
Answer: On Cardano, deployed smart contracts exist as compiled UPLC bytecode, which does not reveal the underlying source code. uplc.link eliminates this “verification gap” by automatically compiling off-chain source code from a specified GitHub commit and proving that its script hash deterministically matches the deployed on-chain bytecode.

Question 2: How does uplc.link differ from traditional verification on Etherscan?
Answer: Etherscan performs verification centrally and stores contract source code in its proprietary database, forcing users to trust Etherscan’s infrastructure. In contrast, uplc.link publishes the complete build recipe directly to the Cardano blockchain under CIP-0071, allowing anyone to run their own verification nodes without trusting a third party.

Question 3: What is CIP-0071 and what information does it store on-chain?
Answer: CIP-0071 is the Cardano Improvement Proposal standard (using transaction metadata label 1984) that defines on-chain contract verification. It stores essential build details, including the compiler type and version, repository URL, commit hash, source path, build environment flags, and parameter maps.

Question 4: How does uplc.link handle parameterized smart contracts?
Answer: Many Cardano smart contracts require runtime parameters (like owner keys or UTXO references) before deployment, which alters their final script hash. uplc.link allows developers or auditors to specify these parameters—including linking dependent script hashes—and automatically applies the correct CBOR wrapping to match the expected on-chain hash.

Question 5: Which smart contract languages are supported, and what is planned for the future?
Answer: uplc.link currently supports Aiken smart contracts out of the box. Support for Scalus, Plutarch (using Nix for reproducible dependencies), and Pluts is in progress. Additionally, the team plans to integrate Blaster to display formal verification proofs directly alongside contract source code.

1 Like