Creating an Account

What is an Account?

Account란 Aptos 네트워크에서 보유한 자산과 NFT에 대한 접근 권한을 나타내는 객체입니다. 사용자는 Account를 생성하여 잔고를 저장, 전송할 수 있으며 모듈을 배포 할 수 있습니다.

Aptos TypeScript SDK를 이용하여 계정을 생성하면 다음과 같은 단계를 실행합니다.

  1. 사용자 계정을 관리하기 위한 인증 체계 선택(Ed25519 또는 Secp256K1 ECDSA)
  2. 새로운 공개 키, 개인 키 쌍 생성
  3. 공개 키와 인증 체계를 결합하여 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은 항상 이를 확인하고 있으나 시점에 따라 코드 변경으로 인한 오류가 발생할 수 있습니다.