Kaikas 관련 시드 구분 관련 질문드립니다

안드로이드 및 IOS에서 시드 구문을 사용하고 싶은데요
해당 관련은 개발 하려면 HD Wallet으로 직접 개발 해야 하나요??
아니면 다른 방법이 있나요??

안녕하세요.

아쉽지만 JS를 제외한 네이티브앱 개발을 위해서 공유드릴만한 소스코드는 없습니다. 혹시 일반적인 시드구문 처리 방법과 관련된 참조 문서를 전달드리면 도움이 되실까요?

네 ~~ 그래 주시면 감사하겠습니다.

1 Like

안녕하세요~!

JS쪽에서는 주로 bip39(https://github.com/bitcoinjs/bip39#readme)라이브러리를 사용하는데요,
아래 예시에서 보이는 것처럼 mnemonic에서 시드를 뽑아내고, 그 시드로부터 파생되는 지갑 주소들을 뽑아내는 구조에요.

    const bip39 = require("bip39");
    const hdkey = require("ethereumjs-wallet/hdkey");
    const wallet_hdpath = "m/44'/60'/0'/0/"

    // private helper to check if given mnemonic uses BIP39 passphrase protection
    const checkBIP39Mnemonic = mnemonic => {
      this.hdwallet = hdkey.fromMasterSeed(bip39.mnemonicToSeed(mnemonic));

      if (!bip39.validateMnemonic(mnemonic)) {
        throw new Error("Mnemonic invalid or undefined");
      }

      // crank the addresses out
      for (let i = address_index; i < address_index + num_addresses; i++) {
        const wallet = this.hdwallet
          .derivePath(this.wallet_hdpath + i)
          .getWallet();
        const addr = `0x${wallet.getAddress().toString("hex")}`;
        this.addresses.push(addr);
        this.wallets[addr] = wallet;
      }
    };

https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki 이 페이지 가보시면 아래쪽에 다양한 언어로 제작된 bip39 구현체들이 있으니 그걸 참고하시면 좋을것 같아요.

2 Likes