Verify Proxy Contract
curl --request POST \
--url 'https://api.etherscan.io/v2/api?apikey=' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data address=0xdAC17F958D2ee523a2206206994597C13D831ec7 \
--data expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8Cimport requests
url = "https://api.etherscan.io/v2/api?apikey="
payload = {
"address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"expectedimplementation": "0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams({
address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
expectedimplementation: '0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C'
})
};
fetch('https://api.etherscan.io/v2/api?apikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.etherscan.io/v2/api?apikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "address=0xdAC17F958D2ee523a2206206994597C13D831ec7&expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.etherscan.io/v2/api?apikey="
payload := strings.NewReader("address=0xdAC17F958D2ee523a2206206994597C13D831ec7&expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.etherscan.io/v2/api?apikey=")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("address=0xdAC17F958D2ee523a2206206994597C13D831ec7&expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.etherscan.io/v2/api?apikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "address=0xdAC17F958D2ee523a2206206994597C13D831ec7&expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C"
response = http.request(request)
puts response.read_body{
"status": "1",
"message": "OK",
"result": "a7lpxkm9kpcpicx7daftmjifrfhiuhf5vqqnawhkfhzfrcpnxj"
}
Contract Verification
Verify Proxy Contract
Submit a proxy contract for verification.
POST
/
v2
/
api
Verify Proxy Contract
curl --request POST \
--url 'https://api.etherscan.io/v2/api?apikey=' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data address=0xdAC17F958D2ee523a2206206994597C13D831ec7 \
--data expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8Cimport requests
url = "https://api.etherscan.io/v2/api?apikey="
payload = {
"address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
"expectedimplementation": "0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams({
address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
expectedimplementation: '0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C'
})
};
fetch('https://api.etherscan.io/v2/api?apikey=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.etherscan.io/v2/api?apikey=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "address=0xdAC17F958D2ee523a2206206994597C13D831ec7&expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.etherscan.io/v2/api?apikey="
payload := strings.NewReader("address=0xdAC17F958D2ee523a2206206994597C13D831ec7&expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.etherscan.io/v2/api?apikey=")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("address=0xdAC17F958D2ee523a2206206994597C13D831ec7&expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.etherscan.io/v2/api?apikey=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "address=0xdAC17F958D2ee523a2206206994597C13D831ec7&expectedimplementation=0xB0F24CEB2616F6Bb608B00875Db306167c0f2E8C"
response = http.request(request)
puts response.read_body{
"status": "1",
"message": "OK",
"result": "a7lpxkm9kpcpicx7daftmjifrfhiuhf5vqqnawhkfhzfrcpnxj"
}
{
"status": "1",
"message": "OK",
"result": "a7lpxkm9kpcpicx7daftmjifrfhiuhf5vqqnawhkfhzfrcpnxj"
}
Authorizations
Enter your Etherscan API key, or set one up if you don't have one.
Query Parameters
Chain ID to query, eg 1 for Ethereum, 42161 for Arbitrum from our supported chains.
Set to contract for this endpoint.
Set to verifyproxycontract for this endpoint.
Body
application/x-www-form-urlencoded
Response
200 - application/json
Successful response
1 if the request returned data, 0 otherwise. A status of 0 can indicate an error or a valid request that returned no records.
OK on success, otherwise an error description such as NOTOK. See common error messages.
GUID for the proxy verification submission. Use it with checkproxyverification to poll the result.