---
title: "స్మార్ట్ కాంట్రాక్ట్‌లను ధృవీకరించడం"
description: "ఎథీరియం స్మార్ట్ కాంట్రాక్ట్‌ల కోసం సోర్స్ కోడ్ ధృవీకరణ యొక్క అవలోకనం"
lang: te
---

[స్మార్ట్ కాంట్రాక్ట్‌లు](/developers/docs/smart-contracts/) "విశ్వాస రహిత" (trustless) గా ఉండేలా రూపొందించబడ్డాయి, అంటే కాంట్రాక్ట్‌తో ఇంటరాక్ట్ అయ్యే ముందు వినియోగదారులు మూడవ పక్షాలను (ఉదా., డెవలపర్‌లు మరియు కంపెనీలు) విశ్వసించాల్సిన అవసరం లేదు. విశ్వాసరహితత్వం కోసం ఒక ఆవశ్యకతగా, వినియోగదారులు మరియు ఇతర డెవలపర్‌లు స్మార్ట్ కాంట్రాక్ట్ యొక్క సోర్స్ కోడ్‌ను ధృవీకరించగలగాలి. ప్రచురించబడిన కాంట్రాక్ట్ కోడ్ మరియు ఎథీరియం బ్లాక్‌చైన్‌లోని కాంట్రాక్ట్ చిరునామా వద్ద రన్ అవుతున్న కోడ్ రెండూ ఒకటేనని సోర్స్ కోడ్ ధృవీకరణ వినియోగదారులకు మరియు డెవలపర్‌లకు భరోసా ఇస్తుంది.

"సోర్స్ కోడ్ ధృవీకరణ" మరియు "[నియత ధృవీకరణ](/developers/docs/smart-contracts/formal-verification/)" మధ్య వ్యత్యాసాన్ని గుర్తించడం ముఖ్యం. సోర్స్ కోడ్ ధృవీకరణ (దీని గురించి క్రింద వివరంగా వివరించబడుతుంది) అనేది, ఉన్నత-స్థాయి భాషలో (ఉదా., Solidity) ఉన్న స్మార్ట్ కాంట్రాక్ట్ యొక్క సోర్స్ కోడ్, కాంట్రాక్ట్ చిరునామా వద్ద అమలు చేయబడే అదే బైట్‌కోడ్‌కు కంపైల్ అవుతుందని ధృవీకరించడాన్ని సూచిస్తుంది. అయితే, నియత ధృవీకరణ అనేది స్మార్ట్ కాంట్రాక్ట్ యొక్క ఖచ్చితత్వాన్ని ధృవీకరించడాన్ని వివరిస్తుంది, అంటే కాంట్రాక్ట్ ఆశించిన విధంగా ప్రవర్తిస్తుందని నిర్ధారించడం. సందర్భాన్ని బట్టి మారినప్పటికీ, కాంట్రాక్ట్ ధృవీకరణ అనేది సాధారణంగా సోర్స్ కోడ్ ధృవీకరణను సూచిస్తుంది.

## సోర్స్ కోడ్ ధృవీకరణ అంటే ఏమిటి? {#what-is-source-code-verification}

[ఎథీరియం వర్చువల్ మెషిన్ (EVM)](/developers/docs/evm/) లో స్మార్ట్ కాంట్రాక్ట్‌ను డిప్లాయ్ చేయడానికి ముందు, డెవలపర్‌లు కాంట్రాక్ట్ యొక్క సోర్స్ కోడ్‌ను—అంటే [Solidity](/developers/docs/smart-contracts/languages/) లేదా మరొక ఉన్నత-స్థాయి ప్రోగ్రామింగ్ భాషలో వ్రాయబడిన సూచనలను—బైట్‌కోడ్‌గా [కంపైల్](/developers/docs/smart-contracts/compiling/) చేస్తారు. EVM ఉన్నత-స్థాయి సూచనలను అర్థం చేసుకోలేదు కాబట్టి, EVM లో కాంట్రాక్ట్ లాజిక్‌ను అమలు చేయడానికి సోర్స్ కోడ్‌ను బైట్‌కోడ్‌గా (అంటే, తక్కువ-స్థాయి, మెషిన్ సూచనలుగా) కంపైలింగ్ చేయడం అవసరం.

సోర్స్ కోడ్ ధృవీకరణ అనేది స్మార్ట్ కాంట్రాక్ట్ యొక్క సోర్స్ కోడ్ మరియు కాంట్రాక్ట్ సృష్టి సమయంలో ఉపయోగించిన కంపైల్ చేయబడిన బైట్‌కోడ్‌ను పోల్చి ఏవైనా వ్యత్యాసాలను గుర్తించడం. ప్రకటించబడిన కాంట్రాక్ట్ కోడ్, బ్లాక్‌చైన్‌లో రన్ అవుతున్న కోడ్‌కి భిన్నంగా ఉండవచ్చు కాబట్టి స్మార్ట్ కాంట్రాక్ట్‌లను ధృవీకరించడం ముఖ్యం.

స్మార్ట్ కాంట్రాక్ట్ ధృవీకరణ అనేది మెషిన్ కోడ్‌ను చదవాల్సిన అవసరం లేకుండా, కాంట్రాక్ట్ వ్రాయబడిన ఉన్నత-స్థాయి భాష ద్వారా అది ఏమి చేస్తుందో పరిశోధించడానికి వీలు కల్పిస్తుంది. ఫంక్షన్‌లు, విలువలు మరియు సాధారణంగా వేరియబుల్ పేర్లు మరియు వ్యాఖ్యలు కంపైల్ చేయబడి, డిప్లాయ్ చేయబడిన అసలు సోర్స్ కోడ్‌తో సమానంగా ఉంటాయి. ఇది కోడ్‌ను చదవడం చాలా సులభతరం చేస్తుంది. సోర్స్ ధృవీకరణ కోడ్ డాక్యుమెంటేషన్‌కు కూడా అవకాశం కల్పిస్తుంది, తద్వారా స్మార్ట్ కాంట్రాక్ట్ దేని కోసం రూపొందించబడిందో తుది-వినియోగదారులకు తెలుస్తుంది.

### పూర్తి ధృవీకరణ అంటే ఏమిటి? {#full-verification}

వ్యాఖ్యలు లేదా వేరియబుల్ పేర్లు వంటి సోర్స్ కోడ్‌లోని కొన్ని భాగాలు కంపైల్ చేయబడిన బైట్‌కోడ్‌ను ప్రభావితం చేయవు. అంటే వేర్వేరు వేరియబుల్ పేర్లు మరియు వేర్వేరు వ్యాఖ్యలతో ఉన్న రెండు సోర్స్ కోడ్‌లు ఒకే కాంట్రాక్ట్‌ను ధృవీకరించగలవు. దీనితో, ఒక హానికరమైన వ్యక్తి సోర్స్ కోడ్ లోపల మోసపూరిత వ్యాఖ్యలను జోడించవచ్చు లేదా తప్పుదారి పట్టించే వేరియబుల్ పేర్లను ఇవ్వవచ్చు మరియు అసలు సోర్స్ కోడ్ కంటే భిన్నమైన సోర్స్ కోడ్‌తో కాంట్రాక్ట్‌ను ధృవీకరించవచ్చు.

సోర్స్ కోడ్ యొక్క ఖచ్చితత్వానికి _క్రిప్టోగ్రాఫిక్ గ్యారెంటీ_ గా మరియు కంపైలేషన్ సమాచారం యొక్క _ఫింగర్‌ప్రింట్_ గా పనిచేయడానికి బైట్‌కోడ్‌కు అదనపు డేటాను జోడించడం ద్వారా దీనిని నివారించడం సాధ్యమవుతుంది. అవసరమైన సమాచారం [Solidity యొక్క కాంట్రాక్ట్ మెటాడేటా](https://docs.soliditylang.org/en/v0.8.15/metadata.html)లో కనుగొనబడుతుంది మరియు ఈ ఫైల్ యొక్క హాష్ కాంట్రాక్ట్ యొక్క బైట్‌కోడ్‌కు జోడించబడుతుంది. మీరు దీనిని [మెటాడేటా ప్లేగ్రౌండ్](https://playground.sourcify.dev)లో ఆచరణలో చూడవచ్చు

మెటాడేటా ఫైల్ సోర్స్ ఫైల్‌లు మరియు వాటి హాష్‌లతో సహా కాంట్రాక్ట్ యొక్క కంపైలేషన్ గురించి సమాచారాన్ని కలిగి ఉంటుంది. అంటే, కంపైలేషన్ సెట్టింగ్‌లలో ఏదైనా లేదా సోర్స్ ఫైల్‌లలో ఒక బైట్ మారినా, మెటాడేటా ఫైల్ మారుతుంది. పర్యవసానంగా బైట్‌కోడ్‌కు జోడించబడిన మెటాడేటా ఫైల్ యొక్క హాష్ కూడా మారుతుంది. అంటే కాంట్రాక్ట్ యొక్క బైట్‌కోడ్ + జోడించబడిన మెటాడేటా హాష్ ఇచ్చిన సోర్స్ కోడ్ మరియు కంపైలేషన్ సెట్టింగ్‌లతో సరిపోలితే, అసలు కంపైలేషన్‌లో ఉపయోగించిన సోర్స్ కోడ్ ఖచ్చితంగా ఇదేనని, ఒక్క బైట్ కూడా భిన్నంగా లేదని మనం నిర్ధారించుకోవచ్చు.

మెటాడేటా హాష్‌ను ఉపయోగించుకునే ఈ రకమైన ధృవీకరణను **"[పూర్తి ధృవీకరణ](https://docs.sourcify.dev/docs/full-vs-partial-match/)"** (దీనిని "పరిపూర్ణ ధృవీకరణ" అని కూడా అంటారు) అని పిలుస్తారు. మెటాడేటా హాష్‌లు సరిపోలకపోతే లేదా ధృవీకరణలో పరిగణించబడకపోతే అది "పాక్షిక సరిపోలిక" అవుతుంది, ఇది ప్రస్తుతం కాంట్రాక్ట్‌లను ధృవీకరించడానికి అత్యంత సాధారణ మార్గం. పూర్తి ధృవీకరణ లేకుండా ధృవీకరించబడిన సోర్స్ కోడ్‌లో ప్రతిబింబించని [హానికరమైన కోడ్‌ను చొప్పించడం](https://samczsun.com/hiding-in-plain-sight/) సాధ్యమవుతుంది. చాలా మంది డెవలపర్‌లకు పూర్తి ధృవీకరణ గురించి తెలియదు మరియు వారి కంపైలేషన్ యొక్క మెటాడేటా ఫైల్‌ను ఉంచుకోరు, కాబట్టి ఇప్పటివరకు కాంట్రాక్ట్‌లను ధృవీకరించడానికి పాక్షిక ధృవీకరణే వాస్తవ పద్ధతిగా ఉంది.

## సోర్స్ కోడ్ ధృవీకరణ ఎందుకు ముఖ్యం? {#importance-of-source-code-verification}

### విశ్వాసరహితత్వం {#trustlessness}

స్మార్ట్ కాంట్రాక్ట్‌లు మరియు [వికేంద్రీకృత అప్లికేషన్ (dapp)ల](/developers/docs/dapps/)కు విశ్వాసరహితత్వం అనేది నిస్సందేహంగా అతిపెద్ద ప్రాతిపదిక. స్మార్ట్ కాంట్రాక్ట్‌లు "మార్చలేనివి" మరియు వాటిని మార్చలేము; డిప్లాయ్‌మెంట్ సమయంలో కోడ్‌లో నిర్వచించబడిన వ్యాపార లాజిక్‌ను మాత్రమే కాంట్రాక్ట్ అమలు చేస్తుంది. అంటే ఎథీరియంలో డిప్లాయ్ చేసిన తర్వాత డెవలపర్‌లు మరియు సంస్థలు కాంట్రాక్ట్ కోడ్‌ను ట్యాంపర్ చేయలేరు.

స్మార్ట్ కాంట్రాక్ట్ విశ్వాస రహితంగా ఉండాలంటే, కాంట్రాక్ట్ కోడ్ స్వతంత్ర ధృవీకరణ కోసం అందుబాటులో ఉండాలి. ప్రతి స్మార్ట్ కాంట్రాక్ట్ కోసం కంపైల్ చేయబడిన బైట్‌కోడ్ బ్లాక్‌చైన్‌లో పబ్లిక్‌గా అందుబాటులో ఉన్నప్పటికీ, తక్కువ-స్థాయి భాషను అర్థం చేసుకోవడం కష్టం—డెవలపర్‌లు మరియు వినియోగదారులకు ఇద్దరికీ.

ప్రాజెక్ట్‌లు తమ కాంట్రాక్ట్‌ల సోర్స్ కోడ్‌ను ప్రచురించడం ద్వారా విశ్వాస ఉపకల్పనలను తగ్గిస్తాయి. కానీ ఇది మరొక సమస్యకు దారి తీస్తుంది: ప్రచురించబడిన సోర్స్ కోడ్ కాంట్రాక్ట్ బైట్‌కోడ్‌తో సరిపోలుతుందని ధృవీకరించడం కష్టం. ఈ దృష్టాంతంలో, విశ్వాసరహితత్వం యొక్క విలువ కోల్పోతుంది ఎందుకంటే బ్లాక్‌చైన్‌లో డిప్లాయ్ చేయడానికి ముందు కాంట్రాక్ట్ యొక్క వ్యాపార లాజిక్‌ను (అంటే, బైట్‌కోడ్‌ను మార్చడం ద్వారా) మార్చరని వినియోగదారులు డెవలపర్‌లను విశ్వసించాల్సి ఉంటుంది.

స్మార్ట్ కాంట్రాక్ట్ యొక్క సోర్స్ కోడ్ ఫైల్‌లు అసెంబ్లీ కోడ్‌తో సరిపోలుతాయని సోర్స్ కోడ్ ధృవీకరణ సాధనాలు హామీ ఇస్తాయి. దీని ఫలితంగా విశ్వాస రహిత పర్యావరణ వ్యవస్థ ఏర్పడుతుంది, ఇక్కడ వినియోగదారులు మూడవ పక్షాలను గుడ్డిగా విశ్వసించరు మరియు దానికి బదులుగా కాంట్రాక్ట్‌లోకి నిధులను డిపాజిట్ చేయడానికి ముందు కోడ్‌ను ధృవీకరిస్తారు.

### వినియోగదారు భద్రత {#user-safety}

స్మార్ట్ కాంట్రాక్ట్‌లతో, సాధారణంగా చాలా డబ్బు స్టేక్ చేయబడి ఉంటుంది. దీనిని ఉపయోగించే ముందు స్మార్ట్ కాంట్రాక్ట్ యొక్క లాజిక్‌ను ధృవీకరించడం మరియు అధిక భద్రతా హామీలు అవసరం. సమస్య ఏమిటంటే, నిజాయితీ లేని డెవలపర్‌లు స్మార్ట్ కాంట్రాక్ట్‌లో హానికరమైన కోడ్‌ను చొప్పించడం ద్వారా వినియోగదారులను మోసగించవచ్చు. ధృవీకరణ లేకుండా, హానికరమైన స్మార్ట్ కాంట్రాక్ట్‌లు [బ్యాక్‌డోర్‌లు](https://www.trustnodes.com/2018/11/10/concerns-rise-over-backdoored-smart-contracts), వివాదాస్పద యాక్సెస్ నియంత్రణ యంత్రాంగాలు, దోపిడీకి గురయ్యే దుర్బలత్వాలు మరియు వినియోగదారు భద్రతకు ముప్పు కలిగించే ఇతర విషయాలను కలిగి ఉండవచ్చు, ఇవి గుర్తించబడవు.

స్మార్ట్ కాంట్రాక్ట్ యొక్క సోర్స్ కోడ్ ఫైల్‌లను ప్రచురించడం వల్ల ఆడిటర్‌ల వంటి ఆసక్తి ఉన్నవారు సంభావ్య దాడి వెక్టర్‌ల కోసం కాంట్రాక్ట్‌ను అంచనా వేయడం సులభతరం చేస్తుంది. బహుళ పక్షాలు స్వతంత్రంగా స్మార్ట్ కాంట్రాక్ట్‌ను ధృవీకరించడంతో, వినియోగదారులకు దాని భద్రతపై బలమైన హామీలు ఉంటాయి.

## ఎథీరియం స్మార్ట్ కాంట్రాక్ట్‌ల కోసం సోర్స్ కోడ్‌ను ఎలా ధృవీకరించాలి {#source-code-verification-for-ethereum-smart-contracts}

[ఎథీరియంలో స్మార్ట్ కాంట్రాక్ట్‌ను డిప్లాయ్ చేయడానికి](/developers/docs/smart-contracts/deploying/) ఒక ప్రత్యేక చిరునామాకు డేటా పేలోడ్ (కంపైల్ చేయబడిన బైట్‌కోడ్) తో లావాదేవీని పంపడం అవసరం. సోర్స్ కోడ్‌ను కంపైలింగ్ చేయడం ద్వారా డేటా పేలోడ్ రూపొందించబడుతుంది, దానికి తోడు లావాదేవీలోని డేటా పేలోడ్‌కు జోడించబడిన కాంట్రాక్ట్ ఇన్‌స్టాన్స్ యొక్క [కన్స్ట్రక్టర్ ఆర్గ్యుమెంట్‌లు](https://docs.soliditylang.org/en/v0.8.14/contracts.html#constructor) ఉంటాయి. కంపైలేషన్ అనేది డిటర్మినిస్టిక్, అంటే ఒకే సోర్స్ ఫైల్‌లు మరియు కంపైలేషన్ సెట్టింగ్‌లు (ఉదా., కంపైలర్ వెర్షన్, ఆప్టిమైజర్) ఉపయోగించినట్లయితే అది ఎల్లప్పుడూ ఒకే అవుట్‌పుట్‌ను (అంటే, కాంట్రాక్ట్ బైట్‌కోడ్) ఉత్పత్తి చేస్తుంది.

![A diagram showing showing smart contract source code verification](./source-code-verification.png)

స్మార్ట్ కాంట్రాక్ట్‌ను ధృవీకరించడం ప్రాథమికంగా క్రింది దశలను కలిగి ఉంటుంది:

1. కంపైలర్‌కు సోర్స్ ఫైల్‌లు మరియు కంపైలేషన్ సెట్టింగ్‌లను ఇన్‌పుట్ చేయండి.

2. కంపైలర్ కాంట్రాక్ట్ యొక్క బైట్‌కోడ్‌ను అవుట్‌పుట్ చేస్తుంది

3. ఇచ్చిన చిరునామా వద్ద డిప్లాయ్ చేయబడిన కాంట్రాక్ట్ యొక్క బైట్‌కోడ్‌ను పొందండి

4. డిప్లాయ్ చేయబడిన బైట్‌కోడ్‌ను రీకంపైల్ చేయబడిన బైట్‌కోడ్‌తో పోల్చండి. కోడ్‌లు సరిపోలితే, ఇచ్చిన సోర్స్ కోడ్ మరియు కంపైలేషన్ సెట్టింగ్‌లతో కాంట్రాక్ట్ ధృవీకరించబడుతుంది.

5. అదనంగా, బైట్‌కోడ్ చివర ఉన్న మెటాడేటా హాష్‌లు సరిపోలితే, అది పూర్తి సరిపోలిక అవుతుంది.

ఇది ధృవీకరణ యొక్క సరళమైన వివరణ అని గమనించండి మరియు [మార్చలేని వేరియబుల్స్](https://docs.sourcify.dev/docs/immutables/) కలిగి ఉండటం వంటి దీనితో పని చేయని అనేక మినహాయింపులు ఉన్నాయి.

## సోర్స్ కోడ్ ధృవీకరణ సాధనాలు {#source-code-verification-tools}

కాంట్రాక్ట్‌లను ధృవీకరించే సాంప్రదాయ ప్రక్రియ సంక్లిష్టంగా ఉంటుంది. అందుకే ఎథీరియంలో డిప్లాయ్ చేయబడిన స్మార్ట్ కాంట్రాక్ట్‌ల కోసం సోర్స్ కోడ్‌ను ధృవీకరించడానికి మా వద్ద సాధనాలు ఉన్నాయి. ఈ సాధనాలు సోర్స్ కోడ్ ధృవీకరణలోని పెద్ద భాగాలను ఆటోమేట్ చేస్తాయి మరియు వినియోగదారుల ప్రయోజనాల కోసం ధృవీకరించబడిన కాంట్రాక్ట్‌లను కూడా క్యూరేట్ చేస్తాయి.

### Etherscan {#etherscan}

ఎక్కువగా [ఎథీరియం బ్లాక్ ఎక్స్‌ప్లోరర్](/developers/docs/data-and-analytics/block-explorers/) గా పిలువబడినప్పటికీ, Etherscan స్మార్ట్ కాంట్రాక్ట్ డెవలపర్‌లు మరియు వినియోగదారుల కోసం [సోర్స్ కోడ్ ధృవీకరణ సేవ](https://etherscan.io/verifyContract)ను కూడా అందిస్తుంది.

అసలు డేటా పేలోడ్ (సోర్స్ కోడ్, లైబ్రరీ చిరునామా, కంపైలర్ సెట్టింగ్‌లు, కాంట్రాక్ట్ చిరునామా మొదలైనవి) నుండి కాంట్రాక్ట్ బైట్‌కోడ్‌ను రీకంపైల్ చేయడానికి Etherscan మిమ్మల్ని అనుమతిస్తుంది. రీకంపైల్ చేయబడిన బైట్‌కోడ్ ఆన్‌చైన్ కాంట్రాక్ట్ యొక్క బైట్‌కోడ్ (మరియు కన్స్ట్రక్టర్ పారామితులు) తో అనుబంధించబడి ఉంటే, అప్పుడు [కాంట్రాక్ట్ ధృవీకరించబడుతుంది](https://info.etherscan.com/types-of-contract-verification/).

ధృవీకరించబడిన తర్వాత, మీ కాంట్రాక్ట్ యొక్క సోర్స్ కోడ్ "Verified" లేబుల్‌ను పొందుతుంది మరియు ఇతరులు ఆడిట్ చేయడానికి Etherscan లో ప్రచురించబడుతుంది. ఇది [ధృవీకరించబడిన కాంట్రాక్ట్‌ల](https://etherscan.io/contractsVerified/) విభాగానికి కూడా జోడించబడుతుంది—ఇది ధృవీకరించబడిన సోర్స్ కోడ్‌లతో కూడిన స్మార్ట్ కాంట్రాక్ట్‌ల రిపోజిటరీ.

కాంట్రాక్ట్‌లను ధృవీకరించడానికి Etherscan అత్యంత ఎక్కువగా ఉపయోగించే సాధనం. అయినప్పటికీ, Etherscan యొక్క కాంట్రాక్ట్ ధృవీకరణకు ఒక లోపం ఉంది: ఇది ఆన్‌చైన్ బైట్‌కోడ్ మరియు రీకంపైల్ చేయబడిన బైట్‌కోడ్ యొక్క **మెటాడేటా హాష్** ను పోల్చడంలో విఫలమవుతుంది. అందువల్ల Etherscan లోని సరిపోలికలు పాక్షిక సరిపోలికలు.

[Etherscan లో కాంట్రాక్ట్‌లను ధృవీకరించడం గురించి మరింత](https://medium.com/etherscan-blog/verifying-contracts-on-etherscan-f995ab772327).

### Blockscout {#blockscout}

[Blockscout](https://blockscout.com/) అనేది ఓపెన్-సోర్స్ బ్లాక్ ఎక్స్‌ప్లోరర్, ఇది స్మార్ట్ కాంట్రాక్ట్ డెవలపర్‌లు మరియు వినియోగదారుల కోసం [కాంట్రాక్ట్ ధృవీకరణ సేవ](https://eth.blockscout.com/contract-verification)ను కూడా అందిస్తుంది. ఓపెన్-సోర్స్ ప్రత్యామ్నాయంగా, Blockscout ధృవీకరణ ఎలా నిర్వహించబడుతుందనే దానిలో పారదర్శకతను అందిస్తుంది మరియు ధృవీకరణ ప్రక్రియను మెరుగుపరచడానికి కమ్యూనిటీ సహకారాలను అనుమతిస్తుంది.

ఇతర ధృవీకరణ సేవల మాదిరిగానే, బైట్‌కోడ్‌ను రీకంపైల్ చేయడం మరియు డిప్లాయ్ చేయబడిన కాంట్రాక్ట్‌తో పోల్చడం ద్వారా మీ కాంట్రాక్ట్ యొక్క సోర్స్ కోడ్‌ను ధృవీకరించడానికి Blockscout మిమ్మల్ని అనుమతిస్తుంది. ధృవీకరించబడిన తర్వాత, మీ కాంట్రాక్ట్ ధృవీకరణ స్థితిని పొందుతుంది మరియు సోర్స్ కోడ్ ఆడిటింగ్ మరియు ఇంటరాక్షన్ కోసం పబ్లిక్‌గా అందుబాటులో ఉంటుంది. సులభమైన బ్రౌజింగ్ మరియు అన్వేషణ కోసం ధృవీకరించబడిన కాంట్రాక్ట్‌లు Blockscout యొక్క [ధృవీకరించబడిన కాంట్రాక్ట్‌ల రిపోజిటరీ](https://eth.blockscout.com/verified-contracts)లో కూడా జాబితా చేయబడతాయి.

### Sourcify {#sourcify}

[Sourcify](https://sourcify.dev/#/verifier) అనేది కాంట్రాక్ట్‌లను ధృవీకరించడానికి మరొక సాధనం, ఇది ఓపెన్-సోర్స్ మరియు వికేంద్రీకృతమైనది. ఇది బ్లాక్ ఎక్స్‌ప్లోరర్ కాదు మరియు [వివిధ EVM ఆధారిత నెట్‌వర్క్‌ల](https://docs.sourcify.dev/docs/chains)లో మాత్రమే కాంట్రాక్ట్‌లను ధృవీకరిస్తుంది. ఇది ఇతర సాధనాలు దీని పైన నిర్మించడానికి పబ్లిక్ ఇన్‌ఫ్రాస్ట్రక్చర్‌గా పనిచేస్తుంది మరియు మెటాడేటా ఫైల్‌లో కనిపించే [ABI](/developers/docs/smart-contracts/compiling/#web-applications) మరియు [NatSpec](https://docs.soliditylang.org/en/v0.8.15/natspec-format.html) వ్యాఖ్యలను ఉపయోగించి మరింత మానవ-స్నేహపూర్వక కాంట్రాక్ట్ ఇంటరాక్షన్‌లను ప్రారంభించడం లక్ష్యంగా పెట్టుకుంది.

Etherscan వలె కాకుండా, Sourcify మెటాడేటా హాష్‌తో పూర్తి సరిపోలికలకు మద్దతు ఇస్తుంది. ధృవీకరించబడిన కాంట్రాక్ట్‌లు HTTP మరియు [IPFS](https://docs.ipfs.io/concepts/what-is-ipfs/#what-is-ipfs) లోని దాని [పబ్లిక్ రిపోజిటరీ](https://docs.sourcify.dev/docs/repository/)లో అందించబడతాయి, ఇది వికేంద్రీకృత, [కంటెంట్-అడ్రెస్డ్](https://docs.storacha.network/concepts/content-addressing/) నిల్వ. జోడించబడిన మెటాడేటా హాష్ IPFS హాష్ అయినందున, IPFS ద్వారా కాంట్రాక్ట్ యొక్క మెటాడేటా ఫైల్‌ను పొందడానికి ఇది అనుమతిస్తుంది.

అదనంగా, ఈ ఫైల్‌ల యొక్క IPFS హాష్‌లు కూడా మెటాడేటాలో కనుగొనబడినందున, IPFS ద్వారా సోర్స్ కోడ్ ఫైల్‌లను కూడా తిరిగి పొందవచ్చు. దాని API లేదా [UI](https://sourcify.dev/#/verifier) ద్వారా మెటాడేటా ఫైల్ మరియు సోర్స్ ఫైల్‌లను అందించడం ద్వారా లేదా ప్లగిన్‌లను ఉపయోగించడం ద్వారా కాంట్రాక్ట్‌ను ధృవీకరించవచ్చు. Sourcify పర్యవేక్షణ సాధనం కొత్త బ్లాక్‌లలో కాంట్రాక్ట్ సృష్టిని కూడా వింటుంది మరియు వాటి మెటాడేటా మరియు సోర్స్ ఫైల్‌లు IPFS లో ప్రచురించబడితే కాంట్రాక్ట్‌లను ధృవీకరించడానికి ప్రయత్నిస్తుంది.

[Sourcify లో కాంట్రాక్ట్‌లను ధృవీకరించడం గురించి మరింత](https://soliditylang.org/blog/2020/06/25/sourcify-faq/).

### Tenderly {#tenderly}

[Tenderly ప్లాట్‌ఫారమ్](https://tenderly.co/) Web3 డెవలపర్‌లను స్మార్ట్ కాంట్రాక్ట్‌లను నిర్మించడానికి, పరీక్షించడానికి, పర్యవేక్షించడానికి మరియు ఆపరేట్ చేయడానికి అనుమతిస్తుంది. డీబగ్గింగ్ సాధనాలను అబ్జర్వబిలిటీ మరియు ఇన్‌ఫ్రాస్ట్రక్చర్ బిల్డింగ్ బ్లాక్‌లతో కలపడం ద్వారా, స్మార్ట్ కాంట్రాక్ట్ అభివృద్ధిని వేగవంతం చేయడంలో Tenderly డెవలపర్‌లకు సహాయపడుతుంది. Tenderly ఫీచర్‌లను పూర్తిగా ప్రారంభించడానికి, డెవలపర్‌లు అనేక పద్ధతులను ఉపయోగించి [సోర్స్ కోడ్ ధృవీకరణను నిర్వహించాలి](https://docs.tenderly.co/monitoring/contract-verification).

కాంట్రాక్ట్‌ను ప్రైవేట్‌గా లేదా పబ్లిక్‌గా ధృవీకరించడం సాధ్యమవుతుంది. ప్రైవేట్‌గా ధృవీకరించబడితే, స్మార్ట్ కాంట్రాక్ట్ మీకు (మరియు మీ ప్రాజెక్ట్‌లోని ఇతర సభ్యులకు) మాత్రమే కనిపిస్తుంది. కాంట్రాక్ట్‌ను పబ్లిక్‌గా ధృవీకరించడం వల్ల Tenderly ప్లాట్‌ఫారమ్‌ను ఉపయోగించే ప్రతి ఒక్కరికీ అది కనిపిస్తుంది.

మీరు [డ్యాష్‌బోర్డ్](https://docs.tenderly.co/contract-verification), [Tenderly Hardhat ప్లగిన్](https://docs.tenderly.co/contract-verification/hardhat) లేదా [CLI](https://docs.tenderly.co/monitoring/smart-contract-verification/verifying-contracts-using-cli) ని ఉపయోగించి మీ కాంట్రాక్ట్‌లను ధృవీకరించవచ్చు.

డ్యాష్‌బోర్డ్ ద్వారా కాంట్రాక్ట్‌లను ధృవీకరిస్తున్నప్పుడు, మీరు Solidity కంపైలర్ ద్వారా రూపొందించబడిన సోర్స్ ఫైల్ లేదా మెటాడేటా ఫైల్, చిరునామా/నెట్‌వర్క్ మరియు కంపైలర్ సెట్టింగ్‌లను దిగుమతి చేసుకోవాలి.

Tenderly Hardhat ప్లగిన్‌ను ఉపయోగించడం వల్ల తక్కువ కృషితో ధృవీకరణ ప్రక్రియపై మరింత నియంత్రణ లభిస్తుంది, ఆటోమేటిక్ (నో-కోడ్) మరియు మాన్యువల్ (కోడ్-ఆధారిత) ధృవీకరణ మధ్య ఎంచుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది.

## మరింత చదవడానికి {#further-reading}

- [కాంట్రాక్ట్ సోర్స్ కోడ్‌ను ధృవీకరించడం](https://programtheblockchain.com/posts/2018/01/16/verifying-contract-source-code/)