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.
- Open Verify. Press healthy, then tampered. The card on the right should change. No wallet.
- Open Audit and press Check evidence.
- 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_IDto 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- 1Watch the verifier catch a fraudOpen 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.
- 2See what each plant has earnedPlants lists the registered plants. Open one to see its design (size, reservoir, grid emission factor), every verified day, and the credits minted for it.
- 3Re-check an issuance yourselfOn 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.
- 4Read the rulesMethodology shows every equation (emission reductions = baseline − project emissions − leakage) with the demo plants' numbers.
Buying credits
10 min, testnet wallet- 1Get a testnet wallet with test HBARCreate 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.
- 2Buy and retireOn 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.
- 3Keep the proofYou 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- 1See a decision, with no chain and no key
yarn verifyprints 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. - 2Buy the credit a local deploy already issued
yarn demostarts 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. Thenyarn start, open Market, press 100 local HBAR, and Buy & retire. - 3On testnet, monitoring and issuance stay separate
yarn mrv:recordquantifies a period and issues nothing.yarn mrv:verifywrites the VVB's report and does not sign it. The VVB signs on its own machine withyarn mrv:approve(VVB_PRIVATE_KEY).yarn mrv:submitrelays 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:reproducerefuses a mismatch. A mirror that stays silent fails that check after 12 seconds.yarn mrvprints this path. It is notyarn 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 demoHydro 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 commandEverything 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
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.
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.
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.
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.
No. This public deployment has no operator keys, so it cannot attest; purchases are signed by your own wallet.