Step 1 - VASP Onboarding

Let’s assume two VASPs - VASP US and VASP EUR, operating in the United States and Europe respectively.

The console commands below can be referenced in the "vs-sdk.js" section.

Run this function in your terminal console to create a new Trust Anchor Account.

$ node -e 'require("./vs-sdk").trustAnchorCreateAccount()'
module.exports.trustAnchorCreateAccount = function () {
trustAnchorCreateAccount();
};

The above function call of trustAnchorCreateAccount executes the following code:

function trustAnchorCreateAccount() {
var result = web3.eth.accounts.create();
console.log(result);
}

You should receive a JSON response:

{
address: '0x719bb7FE970d9Ee375149a156dB93aD128ce0b07',
privateKey: '0xbfe59369762717a2639925d83fbd842fa55768ddf5ebe53bfe405f3a468fe484',
signTransaction: [Function: signTransaction],
sign: [Function: sign],
encrypt: [Function: encrypt]
}

NOTE: Save this address and private key. The private key should be stored in your .env file as a comma separated string. For example, PKS="pk1,pk2,...,pkn". Ensure you store the private key string in the .env without the prefix '0x'.

Now that we have successfully created a Trust Anchor account, the TA needs to be onboarded and verified by a process that is managed by the Governance Team Key Signers that administer the Trust Anchor onboarding.

Note: You will need to provide your new TA account to the Shyft Onboarding Team so that they onboard and verify your new account. Without the account verified, you will not be able to continue.

Once your TA account has been onboarded and verified, you can confirm the verification with the following:

$ node -e 'require("./vs-sdk").getIsTrustAnchorVerified(account)'
module.exports.getIsTrustAnchorVerified = function (account) {
getIsTrustAnchorVerified(account);
};

The above function call of getIsTrustAnchorVerified executes the following code:

function getIsTrustAnchorVerified(account) {
(async () => {
var tam = await TrustAnchorManager.deployed();
result = await tam.isTrustAnchorVerified.call(account)
console.log('isTrustAnchorVerified result');
console.log(result);
})();
}

Below is the desired response:

isTrustAnchorVerified result
true

After your TA account has been onboarded, Shyft will transfer tokens to your account. These tokens are neccessary to transact with the Smart Contract functions as described in the following sections. Transactions costs are similar to spending Ether on the Ethereum network; i.e. gas costs.

You can confirm you account balance with the following:

node -e 'require("./vs-sdk").getBalance(account)'
module.exports.getBalance = function (account) {
getBalance(account);
};

The above function call of getIsTrustAnchorVerified executes the following code:

function getBalance(account) {
web3.eth.getBalance(account).then(console.log);
}

Below is the desired response:

10000000000000000000

Note: the TA has been verified and has a balance of 10 SHFT (or 10000000000000000000 WEI).