---
tags: devops
---
How to deploy a verifier on testnet?
===
# Steps
1. go on ropsten
2. import testnet key af5e12527ffbb3c9e9b3b3661a5cfcf1be87a2e810fdc0649adc252a2dafca95
3. Init the ABI
```
var c = web3.eth.contract([{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "verifier",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "typeOfVerifier",
"type": "string"
}
],
"name": "VerifierAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "verifier",
"type": "string"
}
],
"name": "VerifierUpdated",
"type": "event"
},
{
"constant": true,
"inputs": [],
"name": "isOwner",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "verifierList",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"name": "verifiers",
"outputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "string",
"name": "typeOfVerifier",
"type": "string"
},
{
"internalType": "string",
"name": "verifierParams",
"type": "string"
},
{
"internalType": "bool",
"name": "isCreated",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "string",
"name": "_verifier",
"type": "string"
},
{
"internalType": "string",
"name": "_typeOfVerifier",
"type": "string"
},
{
"internalType": "string",
"name": "_verifierParams",
"type": "string"
},
{
"internalType": "address",
"name": "_owner",
"type": "address"
}
],
"name": "addVerifier",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "string",
"name": "_verifier",
"type": "string"
},
{
"internalType": "string",
"name": "_verifierParams",
"type": "string"
}
],
"name": "updateVerifier",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}]).at("0xC4c6463988bD5B9B4B633Ff8A295403e4EE166CA")
```
4. create the verifier
```
c.addVerifier("levx-auth0-apple","jwt",'{"jwt_validation_fields":["iss","aud"],"jwt_validation_values":["https://levx.au.auth0.com/","LGuhXZ5fTMjXEg1kyD07DhwBCSw3PLlu"],"jwt_verifier_id_field": "sub","jwk_endpoint":"https://levx.au.auth0.com/.well-known/jwks.json","jwk_keys":""}',"0x58440A3e78B190e5bD07905A08a60e30bb78cB5B", console.log)
```
# Templates
```
c.addVerifier("ava-google","google",'{"client_id":"74915647456-4ctjtqo7rb8kgn9qib30dia79a20pvdb.apps.googleusercontent.com"}',"0x58440A3e78B190e5bD07905A08a60e30bb78cB5B",console.log)
```
```
c.addVerifier("wildcards-auth0-passwordless","jwt",'{"jwt_validation_fields":["iss","email_verified","aud"],"jwt_validation_values":["https://jasoons.auth0.com/",true,"VolHqir3FLzGjvtgtgJJ1H25vHGj9uMq"],"jwt_verifier_id_field": "name","jwk_endpoint":"https://jasoons.auth0.com/.well-known/jwks.json","jwk_keys":""}',"0xc0a9f98DBCA1d1007e3809F3b205161B6D272384",console.log)
```
```
c.addVerifier("sapien-email","single_id_verifier",'{"sub_verifier_details":[{"type_of_verifier":"jwt","verifier_identifier":"sapien-jwt","verifier_params":{"jwt_validation_fields":["iss","clientId"],"jwt_validation_values":["SAPIEN","939cebb6-e57e-4282-a3ea-6dd030771ddd"],"jwt_verifier_id_field": "sub","jwk_endpoint":"https://oauth.sapien.network/torus/.well-known/jwks.json","jwk_keys":"","jwt_verifier_id_case_insensitive":true}}],"threshold":1}',"0x58440A3e78B190e5bD07905A08a60e30bb78cB5B",console.log)
```
```
c.addVerifier("xion-facebook","facebook",'{"app_id":"582996352609190","app_s":"8ef55de137d5a3e8ec199ea41f83916b"}',"0x58440A3e78B190e5bD07905A08a60e30bb78cB5B",console.log)
```
```
c.addVerifier("starkware-reddit","reddit",'{"client_id":"HcmzbDqc21dbzw"}',"0x58440A3e78B190e5bD07905A08a60e30bb78cB5B",console.log)
```