The Access Control Level Contract is an on-chain component which can be used to manage user permissions based on compliance status. It enables your application to determine whether a user has passed specific verification steps, by checking against the on-chain access levels assigned through the Forte Compliance widget flow.

This contract is especially useful for enforcing compliance logic directly within your dApp or smart contracts—such as allowing verified users to access payment flows.

Deployment Details

Network: Base Sepolia

Contract Address: 0x0ccd02cA20Ff53A16697c3eF40c3CD88Df8b509a | Link

Status: Verified & Published

Who can set Access Levels?

Only the Forte Compliance widget is authorized to set or remove access levels. When a user completes a required compliance check, the system updates their access level on-chain using this contract. This creates a transparent, verifiable source of truth that can be queried by any smart contract or application.

Retrieving a User’s Access Level

To check a user’s access level, call the getAccessLevel function, passing in their wallet address. This is a read-only function that can be queried on-chain or from your dApp’s frontend.

function getAccessLevel(address _account) public view returns (uint256)

Expected Output

This function will return a uint8 value:

  • 0: Indicates that the user has not been verified.
  • 1-3: Indicates the Access Level the user has reached through the Forte Compliance widget.

You can integrate this function into your dApp frontend using ethers.js, or web3.js  to dynamically allow/disallow actions based on access level.

ABI Definition

{
  "type": "function",
  "name": "getAccessLevel",
  "inputs": [
    {
      "name": "_account",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}