# 设置 StarkNet 帐户

By [zzz](https://paragraph.com/@zzz-3) · 2022-08-28

---

Installation
------------

按照安装说明进行操作 `cairo-lang`包在

[https://starknet.io/docs/quickstart.html#quickstart](https://starknet.io/docs/quickstart.html#quickstart)

网络设置：我们将使用 StarkNet CLI（命令行界面）与 StarkNet 进行交互。 为了指示 CLI 与 StarkNet 测试网一起工作，您可以 添加 --network=alpha-goerli标记到每个命令，或者简单地设置 STARKNET\_NETWORK 环境变量如下：
-------------------------------------------------------------------------------------------------------------------------------------------------

export STARKNET\_NETWORK=alpha-goerli
-------------------------------------

选择钱包提供商：要与 StarkNet 交互，您需要部署一个账户合约。 在本教程中，我们将使用 OpenZeppelin 标准的略微修改版本 对于 EOA 合约（目前，签名的计算方式不同）。 设置 STARKNET\_WALLET环境变量如下：
--------------------------------------------------------------------------------------------------------------------------

export STARKNET\_WALLET=starkware.starknet.wallets.open\_zeppelin.OpenZeppelinAccount

账户创建：运行以下命令创建一个帐户：starknet deploy\_account
------------------------------------------

输出应为：Sent deploy account contract transaction.

NOTE: This is a modified version of the OpenZeppelin account contract. The signature is computed differently.

Contract address: ... Public key: ... Transaction hash: ...

您还可以使用为您的帐户指定一个名称`--account=my_account`如果你想 维护多个帐户。 如果未指定，则默认帐户（名为 `__default__`） 用来。

这 `STARKNET_WALLET`环境变量指示 StarkNet CLI 使用您的帐户 在里面 `starknet invoke`和 `starknet call`命令。 如果你想直接调用合约，而不通过你的账户合约， 你可以通过 `--no_wallet`CLI 的参数，它覆盖 `STARKNET_WALLET` 多变的。

**警告** ：使用作为一部分的内置钱包提供程序 `cairo-lang`包裹(`starkware.starknet.wallets...`） 是 **不安全** （例如，私钥可能未加密且没有备份 在您的主目录中）。 仅当您不太担心失去对帐户的访问权限时才应使用它们 （例如，出于测试目的）。 此外，它们不是使用代理模式部署的，因此无法升级，可能会停止 在 StarkNet 的未来版本中工作。

---

*Originally published on [zzz](https://paragraph.com/@zzz-3/starknet)*
