# Mina Docs｜客户端 SDK

By [MinaWallet](https://paragraph.com/@minawallet) · 2021-11-29

---

![](https://storage.googleapis.com/papyrus_images/283e70f2494591418820adc2c0f6a46b4bbd4d3edec2291e4cef28593804e014.jpg)

Mina Client Javascript SDK 允许生成密钥对、签名和验证消息，以及可以将签名交易在网络上进行广播。

该项目包含 Typescript 和 ReasonML 的类型，但也可以从普通的 NodeJS 中使用。有以下几种方法：

genKeys - 生成公钥/私钥对。

derivePublicKey - 导出对应私钥的公钥。

signMessage - 对任意消息进行签名。

verifyMessage - 验证签名是否与消息匹配。

signPayment - 使用私钥对支付进行签名。

signstakes delegation - 使用私钥对权益委托进行签名

请注意

客户端 SDK 允许在从不向网络公开私钥的设备上生成和进行交易签名。

安装

yarn add @o1labs/client-sdk

or with npm:
============

npm install --save @o1labs/client-sdk

使用

Typescript

import \* as MinaSDK from "@o1labs/client-sdk";

let keys = MinaSDK.genKeys(); let signed = MinaSDK.signMessage("hello", keys); if (MinaSDK.verifyMessage(signed)) { console.log("Message was verified successfully") };

let signedPayment = MinaSDK.signPayment({ to: keys.publicKey, from: keys.publicKey, amount: 1, fee: 1, nonce: 0 }, keys);

NodeJS

const MinaSDK = require("@o1labs/client-sdk");

let keys = MinaSDK.genKeys(); let signed = MinaSDK.signMessage("hello", keys); if (MinaSDK.verifyMessage(signed)) { console.log("Message was verified successfully") };

let signedPayment = MinaSDK.signPayment({ to: keys.publicKey, from: keys.publicKey, amount: 1, fee: 1, nonce: 0 }, keys);

ReasonML 安装 gentype：yarn add -D gentype

安装 bs-platform：yarn add -D bs-platform

编译依赖：yarn bsb -make-world

module MinaSDK = O1labsClientSdk.CodaSDK;

let keys = MinaSDK.genKeys(); let signed = MinaSDK.signMessage(. "hello", keys); if (MinaSDK.verifyMessage(. signed)) { Js.log("Message was verified successfully"); };

let signedPayment = MinaSDK.signPayment({ to\_: keys.publicKey, from: keys.publicKey, amount: "1", fee: "1", nonce: "0" }, keys); 请注意

当产生交易时，您需要指定帐户。您可以通过 CLI 使用 mina advanced get-nonce -address 或使用 GraphQL 来获得这个账户。

---

*Originally published on [MinaWallet](https://paragraph.com/@minawallet/mina-docs-sdk)*
