본문으로 건너뛰기

Sui address 생성

Address는 blockchain network에서 고유하고 익명인 identity이다. Sui에서 address는 다음을 수행할 수 있는 onchain location을 나타낸다:

  • token을 hold하고 send한다.

  • NFT와 Move package 같은 object를 own한다.

  • transaction을 submit하고 smart contract와 interact한다.

Address를 만들기 위해 personally identifying information을 제공할 필요는 없다. 한 사람이 여러 address를 만들고 소유할 수 있다.

모든 Sui address는 고유한 32-byte identifier이며, alias로 참조하지 않는 한 0x prefix가 있는 hexadecimal encoding으로 표시된다. 예:

0x02a212de6a9dfa3a69e22387acfbafbb1a9e591bd9d636e7895dcfc8de05f331

Cryptographic hash function은 public key를 생성하고 모든 address는 이 public key에서 파생된다. 각 public key에는 address와 address가 소유한 object에 access하는 corresponding private key가 있다. Address와 관련 key pair를 합쳐 account라고 한다.

Sui address가 파생되는 방식과 cryptography 관련 topic은 Learn more을 참조한다.

Sui address 얻기

주의

Configure a Sui Client에서 이미 address가 있거나 새 address를 만들었다면 onboarding step을 계속하기 위해 Get SUI from Faucet로 건너뛸 수 있다.

기본적으로 Sui client가 처음 실행되면 configure the client를 요청한다. 이 initial configuration은 새 Sui address, key pair, 관련 secret recovery phrase를 생성한다.

Initial client configuration 외부에서 새 Sui address를 만들려면 다음을 실행한다:

$ sui client new-address ed25519

이 command는 key pair scheme을 ed25519 type으로 지정한다.

The options are:

  • ed25519: Small key size and compact signatures.

  • secp256k1: Provides security through generating and verifying keys using ECDSA.

  • secp256r1: Uses randomly generated curves to generate keys.

The client will return your new address and 12-word recovery phrase:

Generated new key pair for address with scheme "ed25519" [0xb9c83a8b40d3263c9ba40d551514fbac1f8c12e98a4005a0dac072d3549c2442]
Secret Recovery Phrase : [cap wheat many line human lazy few solid bored proud speed grocery]

recovery phrase

모든 Sui address에는 recovery phrase가 있다. Recovery phrase는 address의 key pair에 대한 access를 잃었을 때 address를 복구하는 데 사용하는 무작위 12개 word series이다.

위험

Sui는 recovery phrase를 한 번만 표시한다. System은 이를 어디에도 자동으로 저장하지 않으며, 직접 저장하지 않으면 다시 가져올 수 없다.

Recovery phrase는 address가 소유한 모든 object와 token에 access할 수 있게 하므로 안전하게 보관하고 누구와도 공유하지 않는다.

Recovery phrase를 사용해 address를 복구하려면 다음 command를 사용한다:

$ sui keytool import '<RECOVERY_PHRASE>' <KEY_SCHEME>

<RECOVERY_PHRASE>를 12-word recovery phrase로 바꾼다. 전체 recovery phrase는 single quotation mark '로 감싸야 한다. Word는 올바른 순서로 입력해야 한다.

<KEY_SCHEME>을 address를 처음 만들 때 사용한 encryption type(예: ed25519)으로 바꾼다.

성공하면 CLI가 address를 restore하고 CLI output에 출력한다.

sui.keystore

Sui는 각 address의 private key를 macOS/Linux 또는 Windows system의 ~/.sui/sui_config/sui.keystore 또는 %USERPROFILE/.sui/sui_config/sui.keystore file에 저장한다.

이 file에는 다음과 유사한 content가 들어 있다:

[
"AK6q1/Yzz5qmTfHGLot4wkbRP5lP5NUQVDlf3FggLrKZ",
"ADAWAFS+J9KcDjFmAiVI/e9ZluG0id9AnI6a7Bk5tH+G",
"AJ42rQfCrPIfrQvzCgeHVDCcQZ4R1qAzKtob61VTw5k5",
"AHoKrY7DDnUOq2RgP7gXLPa86bFfzqEMvmOs7TmHtST+"
]

System에서 새 address를 만들면 해당 address의 private key로 구성된 새 line이 이 file에 추가된다. 다른 사람이 account에 access하는 데 사용할 수 있으므로 누구에게도 노출하지 않는다.

위험

sui.keystore file은 website password, fingerprint 같은 biometric data 또는 다른 authentication credential을 포함하는 machine의 local keystore와 같지 않다. Machine의 local keystore는 Sui에서 transaction에 서명하고 submit할 수 없다. sui.keystore file에 포함된 associated key가 있는 address만 transaction에 서명하고 submit할 수 있다.

address alias

Alias는 Sui address의 전체 32-byte hexadecimal string 대신 사용할 수 있는 human-readable name이다. Script와 CLI command에서 address를 더 쉽게 참조하기 위해 address를 사용할 수 있는 모든 곳에서 alias를 사용할 수 있다.

Address를 만들면 Sui는 기본적으로 random alias를 할당한다. 다음 command로 address의 current alias를 볼 수 있다:

$ sui client addresses

Output에는 address, alias, local address가 여러 개 있는 경우 active address 표시가 포함된다:

╭───────────────────────┬────────────────────────────────────────────────────────────────────┬────────────────╮
│ alias │ address │ active address │
├───────────────────────┼────────────────────────────────────────────────────────────────────┼────────────────┤
│ vigorous-spinel │ 0x6ebb36a3c1ab2124c082d93f60f518f70494b82d8d13c5aabb3abad6ec8cd82d │ * │
╰───────────────────────┴────────────────────────────────────────────────────────────────────┴────────────────╯

그런 다음 alias를 다른 값으로 update하려면 다음 command를 사용한다:

$ sui keytool update-alias <OLD-ALIAS> <NEW-ALIAS>

이제 command에서 address 대신 alias를 사용할 수 있다. 예:

$ sui client objects <NEW-ALIAS>

모든 local Sui address 보기

Active address는 Sui client가 현재 사용하는 address이다. Command에서 --address flag로 달리 지정하지 않는 한 이 address가 만든 object와 submit한 transaction을 소유한다.

Current active address를 보려면 다음 command를 사용한다:

$ sui client active-address

Local machine의 모든 address를 보려면 다음을 실행한다:

$ sui keytool list

이 command는 모든 address와 해당 alias, public key, key scheme, peer ID를 반환한다.

╭────────────────────────────────────────────────────────────────────────────────────────────╮
│ ╭─────────────────┬──────────────────────────────────────────────────────────────────────╮ │
│ │ alias │ vigorous-spinel │ │
│ │ suiAddress │ 0x6ebb36a3c1ab2124c082d93f60f518f70494b82d8d13c5aabb3abad6ec8cd82d │ │
│ │ publicBase64Key │ AKDCajKN877Uc7o8NP2cQVJkSewhq1ZbWgw5LgpWVqbj │ │
│ │ keyScheme │ ed25519 │ │
│ │ flag │ 0 │ │
│ │ peerId │ a0c26a328df3bed473ba3c34fd9c41526449ec21ab565b5a0c392e0a5656a6e3 │ │
│ ╰─────────────────┴──────────────────────────────────────────────────────────────────────╯ │
╰────────────────────────────────────────────────────────────────────────────────────────────╯

keytool command에 대한 자세한 내용은 Sui Keytool CLI documentation을 참조한다.

active address 변경

다른 address로 전환하려면 먼저 active address와 전환 가능한 address를 확인한다:

$ sui client addresses

그런 다음 다른 address로 전환하려면 다음 command를 사용한다:

$ sui client switch --address <ADDRESS>

address 정보 query

Sui network explorer를 사용해 address, token balance, address가 소유한 object에 대한 자세한 정보를 찾을 수 있다. Popular Sui explorer는 다음과 같다:

위험

Explorer에 표시되는 data는 address를 만든 network에 따라 다르다. 이전에 Configure a Sui Client page를 따라왔다면 Testnet을 사용하고 있을 가능성이 높다. Sui explorer에서 Testnet을 선택하거나 https://testnet.suivision.xyz/ 같은 dedicated URL을 사용해야 한다.

CLI에서 address가 소유한 모든 object를 보려면 다음 command를 사용한다:

$ sui client objects <ADDRESS>

Address를 제공하지 않으면 이 command는 active address가 소유한 모든 object를 반환한다.

Next steps

Get SUI from Faucet

Faucet에서 SUI를 받아 Testnet에 package를 deploy한다.

Hello, World!

"Hello, World!" project를 clone하고 build한다.