> For the complete documentation index, see [llms.txt](https://w3block.gitbook.io/w3block-eng/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://w3block.gitbook.io/w3block-eng/dev-docs/api/key-api-services.md).

# Key API Services

The Key API Services are the core of what you will need to create new contracts, and mint and transfer tokens.

<figure><img src="/files/uzF86kPZg6a4UarqXdPe" alt=""><figcaption></figcaption></figure>

Some Examples of what you can do with the key API Services:&#x20;

* Create a contract to mint tokens
* Create your own token collections
* mint your own tokens
* transfer tokens between wallets

## How can i use the key services?

Here is how you can mint your first token:

1. Check if your wallet has some balance and if not transfer some to it
2. [Contracts](/w3block-eng/dev-docs/api/key-api-services/tokens/contracts.md)  Create your first contract draft and then publish it
3. [Categories](/w3block-eng/dev-docs/api/key-api-services/tokens/categories.md)  [Subcategories](/w3block-eng/dev-docs/api/key-api-services/tokens/categories/subcategories.md)  Check if the existing categories and subcategories are what you need to create your token, if not, then create your own!
4. [Token Collections](/w3block-eng/dev-docs/api/key-api-services/tokens/token-collections.md)Create a token collection draft describing the details you want your tokens to have
5. [Token Collections](/w3block-eng/dev-docs/api/key-api-services/tokens/token-collections.md)  Publish the collection!!!

## How to instantiate the Key SDK

To instantiate the [Key SDK,](https://www.npmjs.com/package/@w3block/sdk-key) you must create the [ID SDK](https://www.npmjs.com/package/@w3block/sdk-id) before and pass it as argument into the Key SDK instantiation. Because of this accomplishment, you don't need to worry about the authentication layer using commerce SDK. The ID SDK will do this job for you and send the credentials to each request if you're authenticated - specially if autoRefresh is set as true.

```typescript
// Some codeimport { W3blockIdSDK } from '@w3block/sdk-id';
import { W3blockKeySDK } from '@w3block/sdk-key';

const idSdk = new W3blockIdSDK({
    baseURL: 'https://api-id.pixway.io',
    autoRefresh: true,
});

// Authenticate using idSdk with your credentials
// example: idSdk.authenticate({email: ..., password: ..., tenantId: ...})

const sdk = new W3blockKeySDK({
    idSdk,
    baseUrl: 'https://api.pixway.io'
});
```
