ERC3643
GithubWhitepaperERC3643 Association
  • Overview of the Protocol
    • ERC-3643 Permissioned Tokens
    • Built-in Compliance Framework
      • Onchain identities management
      • Modular Compliance add-ons
    • Interoperability & Standards
  • Smart contracts library
    • Permissioned Tokens
      • Tokens Interface
    • Onchain identities
      • ONCHAINID Interface
      • Identity Registry
        • Identity Registry Interface
      • Identity Registry Storage
        • Identity Registry Storage Interface
      • Trusted Issuers Registry
        • Trusted Issuers Registry Interface
      • Claim Topics Registry
        • Claim Topics Registry Interface
    • Compliance management
      • Compliance Interface
    • Tokens Factory
      • T-REX Factory Interface
      • Tokens Gateway
        • T-REX Gateway Interface
      • Official Factories & Gateways
    • Proxies
  • Resources & Community
    • Get Involved
Powered by GitBook
LogoLogo

ERC3643 ASBL - 2024 - contact@erc3643.org

On this page
Export as PDF
  1. Smart contracts library
  2. Onchain identities

ONCHAINID Interface

The ONCHAINID interface defines the set of functions and events used to manage identities and claims on the blockchain. It extends the functionality of two key interfaces: IERC734 and IERC735.

isClaimValid

Source: IIdentity

This function checks if a claim is valid based on the identity contract, claim topic, signature, and data provided.

function isClaimValid(
    IIdentity _identity,
    uint256 claimTopic,
    bytes calldata sig,
    bytes calldata data
) external view returns (bool);

Description: Validates a claim by verifying the signature and data against the specified claim topic and identity contract.


addKey

Source: IERC734

This function adds a key to the identity for a specified purpose and key type.

function addKey(bytes32 _key, uint256 _purpose, uint256 _keyType) external returns (bool success);

Description: Adds a new key to the identity, where _purpose defines the purpose of the key (e.g., management or execution), and _keyType specifies the type of key (e.g., an Ethereum address or a hash of a public key).


approve

Source: IERC734

This function approves an execution request.

function approve(uint256 _id, bool _approve) external returns (bool success);

Description: Approves or rejects an execution request identified by _id. If approved, the execution proceeds; if not, it is cancelled.


removeKey

Source: IERC734

This function removes a key for a specified purpose.

function removeKey(bytes32 _key, uint256 _purpose) external returns (bool success);

Description: Removes a key associated with a particular purpose from the identity, effectively revoking its rights.


execute

Source: IERC734

This function executes an operation on behalf of the identity.

function execute(address _to, uint256 _value, bytes calldata _data) external payable returns (uint256 executionId);

Description: Executes a transaction on behalf of the identity. The _to parameter specifies the recipient address, _value is the amount of Ether to send, and _data contains the call data. Returns an executionId for tracking the operation.


getKey

Source: IERC734

This function retrieves the full data for a specified key.

function getKey(bytes32 _key) external view returns (uint256[] memory purposes, uint256 keyType, bytes32 key);

Description: Returns the purposes, key type, and key value for a specified key. Useful for understanding the roles and permissions associated with a key.


getKeyPurposes

Source: IERC734

This function returns the list of purposes associated with a key.

function getKeyPurposes(bytes32 _key) external view returns (uint256[] memory _purposes);

Description: Retrieves all purposes assigned to a specified key, providing insight into what the key can be used for.


getKeysByPurpose

Source: IERC734

This function returns an array of keys associated with a specific purpose.

function getKeysByPurpose(uint256 _purpose) external view returns (bytes32[] memory keys);

Description: Lists all keys that serve a particular purpose, aiding in the management and audit of keys within the identity.


keyHasPurpose

Source: IERC734

This function checks if a key has a given purpose.

function keyHasPurpose(bytes32 _key, uint256 _purpose) external view returns (bool exists);

Description: Verifies whether a specific key is assigned a particular purpose, returning true if it exists and false otherwise.


addClaim

Source: IERC735

This function adds or updates a claim.

function addClaim(
    uint256 _topic,
    uint256 _scheme,
    address issuer,
    bytes calldata _signature,
    bytes calldata _data,
    string calldata _uri
) external returns (bytes32 claimRequestId);

Description: Adds a new claim or updates an existing claim. The claim is associated with a _topic, uses a _scheme for the signature, and includes the claim's data and URI.


removeClaim

Source: IERC735

This function removes a claim from the identity.

function removeClaim(bytes32 _claimId) external returns (bool success);

Description: Deletes a claim identified by _claimId, revoking the associated attestation.


getClaim

Source: IERC735

This function retrieves a claim by its ID.

function getClaim(bytes32 _claimId)
external view returns(
    uint256 topic,
    uint256 scheme,
    address issuer,
    bytes memory signature,
    bytes memory data,
    string memory uri);

Description: Returns the full details of a claim, including its topic, scheme, issuer, signature, data, and URI.


getClaimIdsByTopic

Source: IERC735

This function returns an array of claim IDs for a given topic.

function getClaimIdsByTopic(uint256 _topic) external view returns (bytes32[] memory claimIds);

Description: Lists all claim IDs associated with a specific topic, facilitating the management and audit of claims.

PreviousOnchain identitiesNextIdentity Registry

Last updated 11 months ago