Verification
Verification is currently in a public test phase. Some functionalities may change based on user behavior.
This contract retrieves the human verification status for addresses.
Each successful verification indicates that the following has been checked:
- Legal identity documents
- Age of 18 or older
- Verified only once
On the blockchain, the following information is available:
- Yes/no status indicating whether the verification has passed
- A random hash identifying the verification process
The processing is fully handled by a third party specializing in identity verification. Sumsub manages the process, and only the results for addresses are processed on vet.domains to store the decisions on the blockchain. A verification process can be purchased using VET or B3TR at https://vet.domains/verify (opens in a new tab), or alternatively, through a payment contract.
Verified Contract
Contract Address: 0xbd7832FdacCB89FAB522e5B4Afb415A999b8a201
(verified.energy.vet (opens in a new tab))
Interface
interface IVNSVerified {
// returns if a given address has passed human verification
function isVerified(address user) external view returns (bool);
// returns a unique id
// if the user removes their identity and verifies on another address, the id will be different
function getPersonIdHash(address user) external view returns (bytes32);
// returns if the user has bought a verification process
function canVerify(address user) external view returns (bool);
// emitted events
event UserVerified(address indexed user, bytes32 personIdHash);
event VerificationRevoked(address indexed user);
event CanVerifyStatusChanged(address indexed user, bool status);
}
ABI
[
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "isVerified",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getPersonIdHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "canVerify",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"name": "CanVerifyStatusChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "personIdHash",
"type": "bytes32"
}
],
"name": "UserVerified",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "VerificationRevoked",
"type": "event"
}
]
Payment Contract
Contract Address: 0x61656d5E04c2903326aC8C151De546e056DF91FF
Interface
Payments are supported in VET and B3TR tokens.
interface IVNSVerificationPayment {
// returns the price in US Dollar cent
function usdPrice() external view returns (uint256);
// returns the price in VET
function getRequiredPayment() external view returns (uint256);
// returns price for a given token
// for B3TR use: 0x5ef79995FE8a89e0812330E4378eB2660ceDe699
function getRequiredPayment(address token) public view returns (uint256);
// A VET payment towards the contract will automatically unlock a new verification process for the msg.sender.
// Excess amounts are automatically refunded.
receive() external payable;
// pay for another address
function payWithVET(address beneficiary) external payable
// pay with a token for another address
// for B3TR use: 0x5ef79995FE8a89e0812330E4378eB2660ceDe699
function payWithToken(address token, address beneficiary) external;
}