# Getting Started

## installation

```javascript
npm install keycatjs
yarn add keycatjs
```

## Basic Usage

### Initialization

```javascript
import { Keycat } from 'keycatjs'

// Connect to eos main net
const keycat = new Keycat({
    blockchain: {
        name: 'eos',
        nodes: eosNodes,
    }
})
```

### Request Sign-in

```javascript
// e.g) This function is called when user clicks keycat signin button.
async function handleSignin() {
  try {
    const { accountName, permission, publicKey } = await keycat.signin()
  } catch (err) {
    ...
  }
}
```

### Sign and push transaction

```javascript
async function handleRequest() {
  // Use account info saved in cookie, localStorage or variable.
  try {
    await keycat
      .account('testaccount1')
      .transact({
        actions: [...]
      }, {
        blocksBehind: 3,
        expireSeconds: 30,
      })
  } catch (err) {

  }
}
```

### Sign Arbitrary Data

```typescript
async function sign() {
    try {
        await keycat
            .account('testaccount2')
            .signArbitraryData(['sign this', 'this too'])
    catch (err) {}
}
```
