# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.polymath.network/token-studio-api-walkthrough/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
