Skip to content

Identity ‐ Documentation

3videnZ edited this page Nov 25, 2024 · 8 revisions

Prometheus-X Work Packages 1.4 & 1.5 Documentation

Context

This documentation summarizes the locations and operating modes of the deliverables of the Identity module, whose specifications are here.

List of delivered Open Source components

Reminder of the expected Open Source components:

  • Catalog_directory contract

    • EVM-compatible smart contract & ABI
    • Documentation (including call methods)
    • Client code for Web integration of the catalog directory
  • Catalog_administration contract

    • EVM-compatible Smart contract & ABI
    • Documentation (including call methods)
    • Client code for Web integration of the credentials & descriptions directory
  • Authentication Component via did:ethr: Allows authentication via DID and verification of credentials. Integrated with catalog_app, it enables the appropriate rights for catalog users.

  • Signature Component via did:ethr: Incorporated into the catalog_app code, it particularly allows the signing of self-descriptions.

  • Component for Publishing Descriptions on IPFS

Deliverables

Catalog_directory Contract

Catalog_administration contract

Authentication Component via did:ethr

Signature Component via did:ethr

Component for Publishing Descriptions on IPFS

  • Summary: Incorporated into the catalog_app code, it particularly allows the recording of self-descriptions in a decentralized storage environment (IPFS).
  • Deliverable location and documentation

Appendix: Production Deployment Procedure

Steps for Deploying to Production

  1. Deployment of the 3videnz-RevealableConsensualSBT Catalog on Mainnet (Visions)
  2. Deployment of the PrometheusXCatalogsDirectory Contract on Mainnet (Prometheus)
    • (Optional) If the deployment address is not the contract owner, transfer ownership of the contract.
    • (Optional) Add administrators to the PrometheusXCatalogsDirectory contract to manage the added catalogs.
    • Add the Visions catalog 3videnz-RevealableConsensualSBT to the PrometheusXCatalogsDirectory.
  3. Configuration of 3videnz-siwed-react in siwed.config.js of the Client Application (Visions)
    • Define the mainnet being used.
    • (Optional) Configure mywallet in production.
    • Configure the PrometheusXCatalogsDirectory.

Example Configuration of 3videnz-siwed-react for Production Deployment

export default defineConfig({
    // ...
    chains: [{
        chainId: 43114,
        name: 'Avalanche C-Chain',
        currency: 'AVAX',
        explorerUrl: 'https://snowtrace.io/',
        rpcUrl: 'https://avalanche-c-chain-rpc.publicnode.com'
    }],
    customWallets: [{
        id: 'mywallet.cloud',
        name: 'mywallet.cloud',
        webapp_link: 'https://app.mywallet.cloud/',
        image_url: '/mywallet-icon-512.png'
    }],
    identityRegistries: [{
        type: 'PrometheusXCatalogsDirectory',
        chainId: '0xa86a', // Hexadecimal format of Avalanche C-Chain 43114
        address: '0x...' // Address of the PrometheusXCatalogsDirectory (see Production Deployment Steps 1.)
    }]
    // ...
});

Appendix: Production Environment

Introduction

A production environment has been deployed by the 3videnZ team and made available to Prometheus-X. As part of this deployment:

  • The 3videnz-RevealableConsensualSBT catalog has been deployed and made available to Visions in a production environment;
  • The PrometheusXCatalogsDirectory contract has been deployed and made available to Prometheus-X in a production environment;
  • A configuration of 3videnz-siwed-react in siwed.config.js for the Client Application has been provided to Visions for integration into their tools.

This documentation details the key elements, configurations, and nuances of this production deployment.

Deployment of the 3videnz-RevealableConsensualSBT Catalog Contract

The 3videnz-RevealableConsensualSBT catalog has been deployed and made available to Visions in a production environment, specifically on the Gnosis blockchain mainnet.

The address of the 3videnz-RevealableConsensualSBT catalog deployed in production is 0x738E040fF8Bbf2a2E79573323B1Cdc0107f17EBd. This address is used to locate the contract on the blockchain. The deployed code is directly accessible via a Gnosis-compatible blockchain explorer:
https://gnosisscan.io/address/0x738E040fF8Bbf2a2E79573323B1Cdc0107f17EBd#code

The smart contract was deployed using the 3videnZ protocol's data encoding. As such, the management of this smart contract is performed using tools provided by 3videnZ, which are accessible through user-specific documentation. This documentation has been shared with the Visions team.

Deployment of the PrometheusXCatalogsDirectory Contract

The PrometheusXCatalogsDirectory catalog has been deployed and made available to Prometheus-X in a production environment, specifically on the Gnosis blockchain mainnet.

The address of the PrometheusXCatalogsDirectory contract deployed in production is 0x1C6e94a83858c01e83830B92066f00d5380Df19a. The deployed code is directly accessible via a Gnosis-compatible blockchain explorer:
https://gnosisscan.io/address/0x1c6e94a83858c01e83830b92066f00d5380df19a#code

At the request of the Prometheus-X association, the administration of this contract is currently being handled by the 3videnZ team. For any addition of catalogs to the production PrometheusXCatalogsDirectory contract, please send your request to the Prometheus-X association. It should be noted that the 3videnz-RevealableConsensualSBT contract deployed for Visions in production has already been added to the production PrometheusXCatalogsDirectory.

Configuration of 3videnz-siwed-react in Production

Below is the configuration to be used in production for the siwed.config.js file of the Client Application when utilizing a 3videnz-RevealableConsensualSBT catalog contract.

The example configuration provided below is specific to the 3videnz-RevealableConsensualSBT instance deployed for Visions and must be adapted for other deployments.

export default defineConfig({
  // ...
  chains: [{
    chainId: 100,
    name: 'Gnosis',
    currency: 'xDAI',
    explorerUrl: 'https://gnosisscan.com/',
    rpcUrl: 'https://rpc.gnosischain.com'
  }],
  customWallets: [{
    id: 'mywallet.cloud',
    name: 'mywallet.cloud',
    webapp_link: 'https://app.mywallet.cloud/',
    image_url: '/mywallet-icon-512.png'
  }],
  identityRegistries: [{
    type: 'PrometheusXCatalogsDirectory',
    chainId: '0x64', // hexadecimal format of Gnosis chain (100)
    address: '0x1C6e94a83858c01e83830B92066f00d5380Df19a' // PrometheusXCatalogsDirectory address in production
  }]
  // ...
})

Clone this wiki locally