The ZkBNB JavaScript SDK provides a thin wrapper around thin all the apis provided by ZkBNB, including a simple key manager for signing txs and sending signed txs to ZkBNB.
Using npm:
> npm install @bnb-chain/zkbnb-js-sdk
Using yarn:
> yarn add @bnb-chain/zkbnb-js-sdk
Using pnpm:
> pnpm add @bnb-chain/zkbnb-js-sdk
Using jsDelivr CDN:
<script src="https://cdn.jsdelivr.net/npm/@bnb-chain/zkbnb-js-sdk/dist/web/zk.js"></script>
Using unpkg CDN:
<script src="https://unpkg.com/@bnb-chain/zkbnb-js-sdk/dist/web/zk.js"></script>
Use directly in the browser via script tag:
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.jsdelivr.net/npm/@bnb-chain/zkbnb-js-sdk/dist/web/zk.js"></script>
</head>
<body>
<script>
const client = new Zk.Client('http://172.22.41.67:8888');
(async () => {
const res = await client.getAccountInfoByAccountIndex(1);
console.log(res)
})()
</script>
</body>
</html>
If you use module bundler such as Webpack, Rollup, etc:
import { Client } from '@bnb-chain/zkbnb-js-sdk';
const client = new Client('http://172.22.41.67:8888');
(async () => {
const res = await client.getAccountInfoByAccountIndex(1);
console.log(res)
})()
Using SDK in Nodejs:
const { Client } = require('@bnb-chain/zkbnb-js-sdk');
const client = new Client('http://172.22.41.67:8888');
(async () => {
const res = await client.getAccountInfoByAccountIndex(1);
console.log(res)
})()
The wrapper for zkbnb Crypto.
Because of WASM different usage scenarios, there are two packages:
const { ZkCrypto } = require('@bnb-chain/zkbnb-js-sdk/zkCrypto');
console.log('getEddsaPublicKey:', ZkCrypto.getEddsaPublicKey('12312123123'))
import { ZkCrypto } from '@bnb-chain/zkbnb-js-sdk/zkCrypto/web';
;(async () => {
const { getEddsaPublicKey } = await ZkCrypto();
console.log('getEddsaPublicKey:', getEddsaPublicKey('12312123123'));
})();