For SDI Issuers
Terms
SDI - Swisstronik Digital Identity.
Issuer - An organization, business, or government entity that conducts user and business checks and issues verifications based on those checks.
Verifier - Generally, an organization that requires verification of certain conditions for the user to engage, transact, or provide services. Currently, for simplicity, we consider this a smart contract on the Swisstronik blockchain network that interacts with the x/compliance module.
Operator - An entity that can verify that the Issuer is legitimate and trustworthy.
Main Operator - The first and only operator authorized to create other operators. Cannot be deleted.
Regular Operators - All operators except the Main Operator.
x/compliance module - A part of SDI integrated into the Swisstronik Blockchain. It is a decentralized storage of verifications made by Issuers and provides this data to Verifiers for user verification.
Verification - An entry in the Swisstronik blockchain, created and verified by the Issuer, which is the result of a specific user verification.
User - An individual or a company that has a blockchain address and needs to use services or products.
Interaction Steps
Deploy Smart Contract - The issuer deploys a smart contract that will interact with the x/compliance module;
Create an Issuer - The Issuer is registered in the x/compliance module. This operation is available to anyone;
Verify Your Issuer - The Operator verifies the registered Issuer by interacting with the x/compliance module, marking the address of the smart contract created by the Issuer as verified, ensuring that the address is associated with the company and that the company is legitimate;
Issue Verifications for Your Users - The authorized Issuer uploads verifications to the Swisstronik Blockchain via its designated smart contract.
You can create the necessary SDI entities using CLI transaction commands.
Additionally, you can always get information regarding the SDI entities by running CLI query commands.
Deploy a Smart Contract
The issuer must deploy a smart contract to interact with the x/compliance module.
An example of such a smart contract is shown below:
Create an Issuer
There are a few CLI commands intended to manage issuers. You can create, modify, or delete an issuer.
Verify your issuer
After you have deployed a smart contract and created an issuer using the CLI, the issuer needs to be verified. To do this, please contact us through the validators, on Discord, or by emailing contact@swisstronik.com. Authorized operators will verify your issuer. You can check the status of your issuer by using the get-issuer-details
CLI command.
Issue Verifications for Your Users
After verification of the issuer by an authorized operator, the issuer can start uploading verifications using its designated smart contract.
CLI Commands Access Table
Here is a list of CLI commands with access permissions for different entities:
Command | Main Operator | Regular Operator | Issuer | All the rest |
---|---|---|---|---|
Any query command | Yes | Yes | Yes | Yes |
add-operator | Yes | Yes | No | No |
remove-operator | Yes, except removing Main Operator | Yes, except removing itself and Main Operator | No | No |
create-issuer | Yes | Yes | Yes | Yes |
update-issuer-details | Yes | Yes | Issuer creator only | Issuer creator only |
remove-issuer | Yes | Yes | Issuer creator only | Issuer creator only |
set-issuer-status | Yes | Yes | No | No |
CLI transaction commands
Creating Issuer
To create an issuer, you need to use the create-issuer
command:
Where:
issuer-address
: Issuer address in the Swisstronik Network.name
: Name of the issuer.description
: Short description of the issuer.url
: Issuer's website link.logo-url
: Issuer's logo link.legal-entity
: Legal entity of the issuer.flags
: Additional flags. You need to specify at least--from
and--fees
flags for the command.
Modifying Issuer's data
To modify the data for the issuer, use the following command:
Parameters:
issuer-address
: Issuer address in the Swisstronik Network.name
: Name of the issuer.description
: Short description of the issuer.url
: Issuer's website link.logo-url
: Issuer's logo link.legal-entity
: Legal entity of the issuer.flags
: Additional flags. You need to specify at least--from
and--fees
flags for the command.
Deleting Issuer
To remove an issuer, use the following command:
Where:
issuer-address
: Issuer address in the Swisstronik Network.flags
: Additional flags. You need to specify at least--from
and--fees
flags for the command.
Please note that only Operators are able to delete Issuers. See the Access Table for reference.
Setting Issuer's verification status
To set issuer's verification status, use the following command:
Where:
issuer-address
: Issuer address in the Swisstronik Network.verification-status
: Boolean indicator of whether the Issuer associated with the address was verified by the Operator. Possible values: true/false.flags
: Additional flags. You need to specify at least--from
and--fees
flags for the command.
Creating Operator
To create an operator, you should use the following command:
operator-address
: The operator's address in the Swisstronik Network in bech32 or hex format;flags
: Additional flags. You need to specify at least the--from
and--fees
flags for the command.
Please note that to add the operator, the transaction must be signed with the operator's private key, see the Access Table for reference.
Deleting Operator
To delete an operator, you should use the following command:
operator-address
: The operator's address in the Swisstronik Network.flags
: Additional flags. You need to specify at least the--from
and--fees
flags for the command.
Please note that to delete the operator, just as with creating an operator, the transaction must be signed with the operator's private key. See the Access Table for reference.
CLI query commands
Getting Operator Details
To get information about an operator, use the following command:
Where:
operator-address
: The operator's address in the Swisstronik Network in Bech32 or hex format.flags
: Additional flags.
You will receive output like this:
Possible values for the operator_type
:
OT_INITIAL
: The main operator, cannot be deleted;OT_REGULAR
: Regular operator;OT_UNSPECIFIED
: The address is not associated with any operator.
Getting Issuer Details
To get information about an issuer, use the following command:
Where:
issuer-address
: The issuer's address in the Swisstronik Network in Bech32 or hex format.flags
: Additional flags.
You will receive output like this:
Getting All Issuers Details
To get information about all the issuers, use the following:
flags
: Additional optional flags.
You will receive output like this:
Getting Verification Details
To get information about a Verification, use the following command:
Where:
verification-id
: The issuer's address in the Swisstronik Network in Bech32 or hex format.flags
: Additional flags.
You will receive output like this:
expiration_timestamp
- The validity period for the Verification in UNIX time format. 0 means the validity period is forever.issuance_timestamp
- The time when the Verification was created, in UNIX time format.issuer_address
- The address of the Issuer that issued the verification.issuer_verification_id
- The internal ID of the Verification on the Issuer's side.origin_chain
- The blockchain network on which the Verification was issued.original_data
- The field that contains all the data related to the Verification.schema
- The method describing how to parse theoriginal_data
field.verificationID
- The Verification ID of the x/compliance module.
Possible values for the type
:
VT_UNSPECIFIED
- Defines an invalid/undefined verification type.VT_KYC
- Know Your CustomerVT_KYB
- Know Your BusinessVT_KYW
- Know Your WalletVT_HUMANITY
- Check humanityVT_AML
- Anti Money Laundering (check transactions)VT_ADDRESS
- Verification of AddressVT_CUSTOM
- Custom VerificationVT_CREDIT_SCORE
- Verification of Credit Score
Getting Verifications Details
To get information about all Verifications, use the command:
Where [flags]
are optional.
The command returns the sequence of Verifications in the same format as for the get-verification-details command. You can apply pagination by using the --limit
, --offset
, --page
, and --page-key
flags."
Getting Address details
To get information associated with the provided address use the command:
Where [flags]
are optional.
Getting Addresses details
To get information about all the Addresses, use the command:
You will receive output like this:
is_revoked
- Boolean indicating if the address was revoked.is_verified
- Boolean indicator of whether the Issuer associated with the address was verified by the Operator.verifications
- Array of Verifications associated with the address. Please see the "Getting Verification Details" section for the description of the fields.
Last updated