Creating an Account
What is an Account?
Account๋ Aptos ๋คํธ์ํฌ์์ ๋ณด์ ํ ์์ฐ๊ณผ NFT์ ๋ํ ์ ๊ทผ ๊ถํ์ ๋ํ๋ด๋ ๊ฐ์ฒด์ ๋๋ค. ์ฌ์ฉ์๋ Account๋ฅผ ์์ฑํ์ฌ ์๊ณ ๋ฅผ ์ ์ฅ, ์ ์กํ ์ ์์ผ๋ฉฐ ๋ชจ๋์ ๋ฐฐํฌ ํ ์ ์์ต๋๋ค.
Aptos TypeScript SDK๋ฅผ ์ด์ฉํ์ฌ ๊ณ์ ์ ์์ฑํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ์คํํฉ๋๋ค.
- ์ฌ์ฉ์ ๊ณ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ธ์ฆ ์ฒด๊ณ ์ ํ(Ed25519 ๋๋ Secp256K1 ECDSA)
- ์๋ก์ด ๊ณต๊ฐ ํค, ๊ฐ์ธ ํค ์ ์์ฑ
- ๊ณต๊ฐ ํค์ ์ธ์ฆ ์ฒด๊ณ๋ฅผ ๊ฒฐํฉํ์ฌ 32๋ฐ์ดํธ ํฌ๊ธฐ์ ์ธ์ฆ ํค์ ๊ณ์ ์ฃผ์ ์์ฑ
How to generate Accounts in Aptos?
์ด ํํ ๋ฆฌ์ผ์ ํตํด ์๋ ๋ด์ฉ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค!
- Account๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
- Private Key๋ฅผ ์ด์ฉํ์ฌ ์ด์ฉ ์ค์ธ Account ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
- Mnemonic๊ณผ HD Wallet์ Path๋ฅผ ์ด์ฉํ์ฌ ์ ๊ท Account๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
- ์ ์ฒด ํํ ๋ฆฌ์ผ ์ฝ๋๋ ์๋ ๋งํฌ๋ฅผ ํตํด ํ์ธํ ์ ์์ต๋๋ค.
1. generate
์ ๊ณ์ ์ ์์ฑํ๊ธฐ ์ํด ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฉ์๋ ์ ๋๋ค. Aptos์ ์๋ช ์ฒด๊ณ๋ Ed25519 ์ธ์ฝ๋ฉ์ ๊ธฐ๋ณธ์ผ๋ก ํ๋ฉฐ ์ฌ์ฉ์์ ํ์์ฑ์ ๋ฐ๋ผ Secp256k1ECDSA ์๋ช ์ฒด๊ณ๋ฅผ ์ง์ ํด ๊ณ์ ์ ์์ฑํ ์ ์์ต๋๋ค.
import { Account } from "@aptos-labs/ts-sdk";
const account = Account.generate();
Step 1. account.ts
ํ์ผ์ ์์ฑํ๊ณ ์๋์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๊ณ์ ๊ณผ Key ๊ฐ์ ํ์ธํด ๋ณด์ธ์!
import { Account } from "@aptos-labs/ts-sdk";
const account = Account.generate();
console.log("your account :", account);
console.log("your privateKey :", account.privateKey.toString());
console.log("your publicKey :", account.publicKey.toString());
console.log("your address :", account.accountAddress.toString());
2. fromPrivateKey
์ฌ์ฉ์๊ฐ ๋ณด์ ํ๊ณ ์๋ Private Key๋ฅผ ์ด์ฉํด Account๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ฌ์ฉ์์ privateKey๋ฅผ ์ด์ฉํ์ฌ PrivateKey ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ Account๋ฅผ ์์ฑํฉ๋๋ค.
const privateKey = "0x123..."
const ed25519Scheme = new Ed25519PrivateKey(privateKey);
const account = Account.fromPrivateKey({ privateKey : Ed25519Scheme });
Step 2. ๊ฐ์ธ ํค๋ฅผ ์ด์ฉํด Account๋ฅผ ์์ฑํด ๋ณด์ธ์!
- ์์ ์ด ์์ ํ Aptos Wallet์ Private Key๋ฅผ ์ด์ฉํด ๊ณ์ ์ ๋ง๋ค์ด ๋ณด์ธ์. ๊ทธ๋ฆฌ๊ณ ์์ฑ๋๋ ๊ณ์ ์ ์ฃผ์๊ฐ Aptos Wallet์์ ํ์ธ ๊ฐ๋ฅํ ์ฃผ์์ ๋์ผํ์ง ํ์ธํด ๋ณด์ธ์.
- Aptos ์ง๊ฐ์ด ์๋ค๋ฉด generate ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ Account๋ฅผ ์์ฑํ ํ ํํ ๋ฆฌ์ผ์ ์งํํ ์ ์์ต๋๋ค.
import { Account, Ed25519PrivateKey } from "@aptos-labs/ts-sdk";
const privateKey = "input_your_private_key"; // 0x12345...
const ed25519Scheme = new Ed25519PrivateKey(privateKey);
const account = Account.fromPrivateKey({ privateKey: ed25519Scheme });
console.log("your account :", account);
console.log("your privateKey :", account.privateKey.toString());
console.log("your publicKey :", account.publicKey.toString());
console.log("your address :", account.accountAddress.toString());
3 . fromDerivationPath
mnemonic๊ณผ HD Wallet์ Path๋ฅผ ์ด์ฉํ์ฌ Account๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. path๋ ์ง๊ฐ์ ๊ฒฝ๋ก ๊ตฌ์กฐ๋ก BIP44์ ํ์์ด ์ ์๋์ด ์์ผ๋ฉฐ Aptos๋ BIP44 ํ์์ ๋ง์ถฐ 637๋ฒ์ผ๋ก ๋ฑ๋ก๋์ด ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ํ์ธํ ์ ์์ต๋๋ค.
const account = Account.fromDerivationPath({
path,
mnemonic
});
Step 3 : Mnemonic๊ณผ Path๋ฅผ ์ด์ฉํด Account๋ฅผ ์์ฑํด ๋ณด์ธ์!
- mnemonic์ Mnemonic Random Generator ์ฌ์ดํธ ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ์ป์ ์ ์์ผ๋ฉฐ 12๊ฐ์ ๋จ์ด๊ฐ ํ์ํฉ๋๋ค.
- Aptos๋ Ed25519 scheme์ ์ด์ฉํ ๊ฒฝ์ฐ, Hardened path๋ฅผ ์ ํด์ผ ํฉ๋๋ค. ๋ณธ ํํ ๋ฆฌ์ผ์์๋ Ed25519 scheme์ ์ด์ฉํ์ฌ Account๋ฅผ ๊ตฌํํ๊ฒ ์ต๋๋ค.
import { Account } from "@aptos-labs/ts-sdk";
const mnemonic = "<input your mnemonic(12 words)>";
const path = "m/44'/637'/0'/0'/0'";
const account = Account.fromDerivationPath({
path,
mnemonic: mnemonic,
});
console.log("your account :", account);
console.log("your privateKey :", account.privateKey.toString());
console.log("your publicKey :", account.publicKey.toString());
console.log("your address :", account.accountAddress.toString());
์์ ์ฝ๋๋ฅผ ์คํํ์ฌ Account ๊ฐ์ฒด๋ฅผ ํ์ธํ ์ ์๋์?
- ํ์ธ์ด ๋์ง ์๋๋ค๋ฉด ์์ ์ฝ๋์ ๋ค๋ฅธ ๋ถ๋ถ์ด ์๋์ง ํ์ธํด ๋ณด์ธ์.
- ์์ ์ฝ๋์ ์ฐจ์ด๊ฐ ์๋๋ฐ ๋์ง ์๋์? ์ฌ๊ธฐ[QnA ๋งํฌ]๋ฅผ ํด๋ฆญํ์ฌ QnA๋ก ๋จ๊ฒจ์ฃผ์ธ์!
Aptos๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธ ๋๊ณ ์์ต๋๋ค!
Aptos ์ฌ๋จ์์ ๋ฐฐํฌํ SDK ๋ฒ์ ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๋ ์ ์ด ์์ ์ ์์ต๋๋ค. Nodit์ ํญ์ ์ด๋ฅผ ํ์ธํ๊ณ ์์ผ๋ ์์ ์ ๋ฐ๋ผ ์ฝ๋ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Updated 4 days ago