# Introduction

## Purpose

The Polymesh SDK walk-through focuses primarily on the implementation of Polymath's Token Studio on Polymesh. Token Studio is a Polymath dApp that allows users to create and manage security tokens using the Polymesh blockchain's architecture.&#x20;

The goal of the SDK is to abstract away from the rust-based development of Polymesh and allow external developers to use a typescript-based SDK to build and integrate Token Studio functionality without the burden of searching through a technical document.

## Before continuing

This document assumes you are already familiar with [Security Tokens](https://thesecuritytokenstandard.org/) in general and [Polymath](https://www.polymath.network/) as well as [Polymesh](https://polymath.network/polymesh) in particular.

### Technical Pre-requisites

In order to use the Polymath SDK, you must install [node](https://nodejs.org/) (version 10) and [npm](https://www.npmjs.com/). The library is written in [typescript](https://www.typescriptlang.org/), but can also be used in plain javascript. This document will assume you are using typescript, but the translation to javascript is very simple.

## Get Started

### **Installation**

`npm i @polymathnetwork/polymesh-sdk --save`

Or, if you're using yarn

`yarn add @polymathnetwork/polymesh-sdk`

### **Initializing the client**

Before you can start registering Tickers and creating Security Tokens, you have to connect the Polymesh SDK client to a Polymesh node. This is a pretty straightforward process:

```
import { Polymesh } from '@polymathnetwork/polymesh-sdk';

async function run() {
  const polyClient = await Polymesh.connect({
    nodeUrl: 'https://some-node-url.com',
    accountSeed: 'YOUWISH',
  });

  // do stuff with the client
}
```

Here is an overview of the parameters passed to the `connect` function:

* `nodeUrl` is a URL that points to a running Polymesh node
* `accountSeed` is the seed (akin to a private key) of the account that will be performing transactions

**NOTE:** if using the SDK on a browser environment (i.e. with the [Polymesh wallet browser extension](https://chrome.google.com/webstore/detail/aldebaran-testing-wallet/ghekbobokhengdmiaohbepalehjknbeh?utm_source=chrome-ntp-icon)), there is no need to provide the account seed. Instead, you pass a Keyring object that contains the address, and a signer for that address (which you would typically get from the wallet extension)

```
import { Polymesh, Keyring } from '@polymathnetwork/polymesh-sdk';

async function run() {
  const keyring = new Keyring();
  keyring.addFromAddress(accountAddress);
  const signer = getSignerFromExtension(); // this is not an existing function, how you get this depends on the extension

  const polyClient = await Polymesh.connect({
    nodeUrl: 'https://some-node-url.com',
    keyring,
    signer,
  });

  // do stuff with the client
}
```

### Obtaining POLYX

POLYX is the Polymesh network's protocol token that can be used to [pay network fees and protocol fees](https://blog.polymath.network/polyx-the-token-that-fuels-polymesh-ffd99175496b). As Polymesh is only available on the Alcyone testnet, POLYX can only be acquired via the [POLY Upgrade bridge](https://polybridge.polymesh.live/). Please follow the instructions throughout the POLY Upgrade bridge to successfully upgrade your POLY from Kovan to POLYX on Polymesh.&#x20;

A few notes on obtaining POLYX:

* You will need the [Metamask browser extension](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?utm_source=chrome-ntp-icon) and an account with some KETH (Kovan ETH). You can request KETH from a faucet [here](https://faucet.kovan.network/).
* You will need a Polymesh-compatible wallet and ID. The easiest way to set this up is to download the [Polymesh Testing Wallet extension](https://chrome.google.com/webstore/detail/aldebaran-testing-wallet/ghekbobokhengdmiaohbepalehjknbeh?utm_source=chrome-ntp-icon). Remember to store your mnemonic seed as you will need it when testing your project.
* POLYX can only be sent between Polymesh addresses assigned to verified IDs. When you go through the Upgrade Bridge, you will be directed to a page to verify your Polymesh ID. During this process you will be assigned a DID (Decentralized Identifier, as standardized by the [W3C foundation](https://www.w3.org/TR/did-core/)) and given a Customer Due Diligence ("CDD") attestation by a network approved provider. Once you have a DID with a CDD attestation.

## Extra Resources

[Token Studio UI (This is our implementation of the Polymesh SDK)](https://tokenstudio.polymesh.live/)

![](https://675351322-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MF_peDZfQ_xO1KVfXRH%2F-MGKYcsshCqqZ_U9_JFH%2F-MGL0u4yCseWjDtM0jE-%2Ftoken%20studio%20UI.PNG?alt=media\&token=e23e0092-2058-4a15-b354-481f1dba7a88)

[Polymesh whitepaper](https://uploads-ssl.webflow.com/5d4f4a138ab9f5b34b0a69fd/5f21cafa8b364179f4dc40cb_Polymesh%20Whitepaper.pdf?utm_referrer=https%3A%2F%2Fpolymath.network%2Fresources)

[Intro to Polymath](https://uploads-ssl.webflow.com/5d4f4a138ab9f5b34b0a69fd/5f2ae34622b9262a1c91fa68_Polymath%20Introduction.pdf?utm_medium=onsite\&utm_campaign=Ungated-Content\&utm_term=Intro-to-Polymath\&utm_referrer=https%3A%2F%2Fpolymath.network%2Fresources)

[The New and Improved Token Studio](https://blog.polymath.network/the-new-and-improved-token-studio-on-polymesh774a065cd6b5-774a065cd6b5)
