Start here

Demo of hydropower carbon credits on Hedera testnet. The plants are examples. The tokens are not Verra credits and have no money value.

  1. Open Verify. Press healthy, then tampered. The card on the right should change. No wallet.
  2. Open Audit and press Check evidence.
  3. Buying is optional. Connect MetaMask, HashPack, or Keplr. HashPack signs only with an ECDSA account (menu, add account, create new, advanced, ECDSA). An ED25519 account shows “No applicable ECDSA accounts”. If HashPack warns that the site is a malicious dapp, that is the shared WalletConnect id; set NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID to your own Reown project id, or use the HashPack extension, which does not go through that check.

This site runs on Hedera testnet: the credits are real tokens on a test network with no money value, and the two plants are demos. It is a working template of the full system, not a certified carbon registry.

Just looking

5 min, no wallet
  1. 1
    Watch the verifier catch a fraud
    Open Verify. The default healthy day is APPROVED and shows the credits it would earn. Click inflated (the meter claims more power than the water can make) and tampered (numbers changed after the meter signed them): both turn REJECTED, and the table says exactly why. Everything runs in your browser.
  2. 2
    See what each plant has earned
    Plants lists the registered plants. Open one to see its design (size, reservoir, grid emission factor), every verified day, and the credits minted for it.
  3. 3
    Re-check an issuance yourself
    On Audit, press Check evidence on any attestation. Your browser downloads the raw readings from Hedera's public mirror node, re-runs the calculation and compares every number with what the contract minted. “Reproduced” means you did not have to trust this website.
  4. 4
    Read the rules
    Methodology shows every equation (emission reductions = baseline − project emissions − leakage) with the demo plants' numbers.

Buying credits

10 min, testnet wallet
  1. 1
    Get a testnet wallet with test HBAR
    Create an ECDSA account at portal.hedera.com (free test HBAR from its faucet), import its key into MetaMask and connect with the button in the header, on the Hedera Testnet network.
  2. 2
    Buy and retire
    On Market, pick a listing, enter how many tonnes and the name to put on the certificate (for example your company), and choose Buy & retire. Prices are in US dollars per tonne and paid in HBAR at the live Chainlink rate, cross-checked with Supra. The HBAR is swapped on the SaucerSwap pair stored in the market. The buy is not built if that pair is more than 3% from the oracle. Retiring burns the credits so nobody can sell them again.
  3. 3
    Keep the proof
    You receive an NFT certificate. On Portfolio search your wallet or company name to see every tonne retired and download a CSV for a sustainability report. Each row links to a printable certificate.

On this site, a listing appears after an operator lists credits. A local yarn deploy already lists one batch, so you can buy without the VVB steps.

Running a plant

one command locally
  1. 1
    See a decision, with no chain and no key
    yarn verify prints every sample day. healthy is APPROVED. inflated and tampered are REJECTED, and the line says why. The same three buttons are on Verify. Nothing is deployed and nothing is signed.
  2. 2
    Buy the credit a local deploy already issued
    yarn demo starts the local chain if it is down, deploys, runs those three checks, and buys 10 kg. The deploy already registered the plants, recorded one hour, and had the local verifier issue a listing at $15/t. You do not run the VVB commands for that. Then yarn start, open Market, press 100 local HBAR, and Buy & retire.
  3. 3
    On testnet, monitoring and issuance stay separate
    yarn mrv:record quantifies a period and issues nothing. yarn mrv:verify writes the VVB's report and does not sign it. The VVB signs on its own machine with yarn mrv:approve (VVB_PRIVATE_KEY). yarn mrv:submit relays that signature, and only an approval issues credits. This server never holds the VVB key. The contract stores the report hash and a non-zero HCS sequence. It cannot read the message. yarn mrv:reproduce refuses a mismatch. A mirror that stays silent fails that check after 12 seconds. yarn mrv prints this path. It is not yarn verify.

A real project also needs an accredited validation/verification body (VVB) and a carbon standard; this system makes their checks reproducible, it does not replace them. Local demo credits are not Verra credits.

Building on it

yarn verify, then yarn demo

Hydro dMRV is a Scaffold-HBAR template: one command gives you the contracts, this app, the API and the MCP server, ready to change.

yarn verify
# engine only. healthy APPROVED. inflated and tampered REJECTED. No chain, no wallet.

yarn demo
# chain if it is down, deploy, those three checks, buy 10 kg.
# localhost addresses go to gitignored deployedContracts.local.ts. yarn test still passes.

yarn start
# http://localhost:3000 — /verify needs no wallet. /market connects a burner.
# Press "100 local HBAR", then Buy & retire.

A local deploy does not rewrite the committed testnet addresses. yarn reset:local drops the gitignored file if you want a clean checkout. Testnet is yarn deploy --network hederaTestnet, then the four commands in the README (record, verify, the VVB signs, submit). The README walks through every step; AGENTS.md lists where things live and the rules to keep (units, rounding, security) so a coding agent can extend it safely. The whole REST API is described in OpenAPI.

AI agents

1 command

Everything a person can do here, an agent can do through the MCP server, without a browser and without sharing keys: it checks designs, verifies data, reproduces issuances, and buys credits with its own wallet (the server only prepares the unsigned transaction).

claude mcp add --transport http hydro-dmrv https://hydro-dmrv.vercel.app/api/mcp

Things to ask it

  • “Generate the tampered scenario, verify it and explain why it is rejected.”
  • “Reproduce attestation 1 from HCS and tell me whether the credits are justified.”
  • “Would a 12 MW plant with a 1.8 km² reservoir qualify, and what is its reservoir emission rate?”
  • “Show plant HYDRO-DEMO-02's lifetime emission reductions per MWh.”
  • “Prepare a purchase of 1 tonne from listing 0, retired for Acme Corp.”

Other agents and tools can read /llms.txt or the OpenAPI description; every MCP tool has a REST twin with the same name.

Common questions

Is this a real carbon registry?

No. The demo plants are registered as Verra VMR0017 v1.0 with ACM0002 v22.0. CDM AMS-I.D and ACM0002 remain selectable. Credits it mints are testnet tokens, not Verra or Gold Standard units. A real project needs a validated design, an accredited verifier and the standard's approval.

Why is this needed if Guardian already digitizes the policy?

Guardian runs the methodology: forms, roles, an off-chain calculation, and a mint for the number that calculation returns. This template does not replace that. The contract recomputes the tonne and refuses a different integer, two price feeds must agree before a sale, the purchase builder also requires the SaucerSwap pool within 3%, and anyone can rerun the figure from HCS without a Guardian server.

Why should I trust the numbers?

You do not have to. The meter signs the readings, the readings are public on HCS, the contract recomputes the credits, and the Audit page lets your browser redo the whole calculation.

What stops a plant from over-claiming?

Physics checks (energy the water cannot produce is not credited), two meters compared against each other, conservative rounding, a completeness floor, and the contract refusing anything outside the registered design or crediting period.

Can this website mint credits or move my money?

No. This public deployment has no operator keys, so it cannot attest; purchases are signed by your own wallet.

Start here | Hydro dMRV