--- 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) ```