WEPIN Developer Documentation
WepinBlogContact
한국어
한국어
  • 시작하기
    • 소개
  • 위핀
    • 특징
    • 아키텍처
      • 키 생성
      • 서명
      • 키 백업
    • 워크스페이스
      • 앱 등록 및 키 발급
      • 네트워크 및 자산 추가
      • 위젯 디자인
    • 지원 블록체인
    • 계정 추상화
  • 로그인
    • 개요
    • 소셜 로그인 인증 프로바이더
      • Email/Password
      • Google
      • Apple
      • Discord
      • Naver
      • Facebook
      • Line
      • Kakao
    • 사용자 인터페이스
    • 로그인 일원화
    • 리소스
  • 위젯 연동
    • 사전 준비
    • Web: JavaScript SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 프로바이더
        • Ethereum Provider
        • Kaia Provider
        • Solana Provider
        • Wagmi Connector
      • 월렛 어댑터
        • Solana Wallet Adapter
    • Android: Java & Kotlin SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
    • iOS: Swift SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
    • Flutter SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 핀 패드
        • 설치
        • 초기화하기
        • 메서드
    • React Native SDK
      • 로그인
        • 설치
        • 초기화
        • 메서드
    • Unity SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • Compose Multiplatform SDK
      • 로그인
        • 설치
        • 초기화하기
        • 메서드
      • 위젯
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
  • API
    • 개요
    • 등록 절차
    • 로그인
    • 지갑 생성 및 관리
    • 토큰 및 NFT 조회
    • 트랜잭션
  • Deprecated
    • Web: JavaScript SDK
      • SDK
        • 설치
        • 초기화하기
        • 메서드
        • 확인하기
      • 프로바이더
        • Ethereum Provider
      • Wagmi Connector
    • Android: Java & Kotlin SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • iOS: Swift SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • Flutter SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
    • React Native SDK
      • 설치
      • 초기화하기
      • 메서드
      • 확인하기
      • 프로바이더
        • EVM 호환
  • 기타
    • 로고 & 브랜드 가이드라인
Powered by GitBook
On this page
  • 지원 네트워크
  • 설치(Install)
  • 초기화하기
  • init
  • Parameters
  • Return value
  • Example
  • isInitialized
  • Parameters
  • Return value
  • Example
  • changeLanguage
  • Parameters
  • Return value
  • Example
  • 메서드(Method)
  • getProvider
  • finalize
  • request

Was this helpful?

  1. 위젯 연동
  2. Web: JavaScript SDK
  3. 프로바이더

Kaia Provider

PreviousEthereum ProviderNextSolana Provider

Last updated 23 days ago

Was this helpful?

Ethers.js 또는 Web3.js를 Wepin Provider와 함께 사용하면 EVM 계열의 블록체인과 상호작용 할 수 있습니다.

지원 네트워크

목록에 필요한 블록체인이 없나요? 하여 별도의 비용 없이 블록체인을 추가할 수 있습니다.

Chain ID
Network Name
Network Variable

8217

Kaia Mainnet

klaytn

1001

Kaia Kairos Testnet

klaytn-testnet

설치(Install)

npm install @wepin/provider-js
yarn add @wepin/provider-js

설치가 완료되면 앱 등록 후 할당받은 App ID와 App Key를 사용하여 아래와 같이 WepinProvider 인스턴스를 초기화합니다. 이렇게 하면 WepinProvider 를 사용할 수 있게 됩니다.

// 1. 패키지 import
import { WepinProvider } from '@wepin/provider-js'

// 2. 초기화
const WepinProvider = new WepinProvider({
    appId: 'your-wepin-app-id',
    appKey: 'your-wepin-app-key',
})

초기화하기

Wepin Provider를 초기화하는 방법입니다.

init

await wepinProvider.init(attributes?)

Parameters

  • attributes <object> optional

    • defaultLanguage: 위젯 기본 언어 설정, 기본 값은 ko입니다. 현재 지원하는 언어는 en, ko, ja 3가지 입니다.

    • defaultCurrency: T위젯 기본 통화 설정, 기본 값은 KRW입니다. 현재 지원하는 통화는 USD, KRW, JPY 3가지 입니다.

Return value

  • Promise<void>

Example

await wepinProvider.init({
    defaultLanguage: 'ko',
    defaultCurrency: 'KRW',
})

isInitialized

WepinProvider 가 정상적으로 초기화 되었는지 확인할 수 있습니다.

wepinProvider.isInitialized()

Parameters

  • <void>

Return value

  • <boolean> init이 정상적으로 잘 된 경우 true , 실패한 경우 false 를 반환합니다.

Example

if(wepinProvider.isInitialized()) {
  console.log('wepinProvider is initialized!')
}

changeLanguage

위젯의 언어와 통화를 변경할 수 있습니다.

wepinProvider.changeLanguage(attributes)

Parameters

  • attributes <object>

    • language <string> 위젯에 표시될 언어를 지정합니다. 현재 지원하는 언어는 en, ko, ja 3가지 입니다.

    • currency <string> 위젯에 표시될 통화를 지정합니다. 현재 지원하는 통화는 USD, KRW , JPY 3가지 입니다.

Return value

  • <boolean> init이 정상적으로 잘 된 경우 true , 실패한 경우 false 를 반환합니다.

Example

if(wepinProvider.isInitialized()) {
  console.log('wepinProvider is initialized!')
}

메서드(Method)

Wepin Provider 초기화 후에 메서서드를 사용할 수 있습니다.

getProvider

Network에 해당하는 Provider를 반환합니다.

await wepinProvider.getProvider(network)

Parameters

Return value

  • Promise<BaseProvider> - A EIP-1193 provider

Example

const provider = await wepinProvider.getProvider('klaytn')

finalize

WepinProvider 사용을 종료합니다.

wepinProvider.finalize()

Parameters

  • <void>

Return value

  • <void>

Example

wepinProvider.finalize()

request

Kaia 블록체인과 상호작용 할 수 있도록 JSON-RPC 요청을 보낼 수 있습니다.

kaia prefix method 는 버전0.0.31 이부터 지원합니다.

eth_accounts / klay_accounts / kaia_accounts

위핀 지갑에 연결하여 사용자의 허가를 받아 계정의 주소를 공유합니다. 연결이 승인되면 애플리케이션은 메세지 서명이나 트랜잭션 요청을 할 수 있습니다.

Parameters

  • void

Returns

  • Promise<Array<string>> - 사용자의 주소 목록을 반환합니다.

Example

const accounts = await wepinProvider.request({
      method: 'kaia_accounts',
      params: []
})

eth_signTransaction / klay_signTransaction / kaia_signTransaction

주어진 매개변수로 트랜잭션을 구성하고 사용자의 개인키로 트랜잭션에 서명합니다.

Supported Tx Type

TxType
Support Fee Delegateed
Version

TxTypeLegacy

false

TxTypeValueTransfer

true

≥ v.0.0.31

TxTypeValueTransferMemo

true

≥ v.0.0.31

TxTypeSmartContractExecution

true

≥ v.0.0.31

Parameters

TxTypeLegacyTransaction 은 기존에 Kaia(Klaytn)에 존재했던 거래 유형을 나타냅니다.

  • from <string> - 트랜잭션을 보내는 계정의 주소. 실제 서명자의 주소와 다르면 에러 발생.

  • to <string> - 트랜잭션의 수신자 주소 (컨트랙트 주소 또는 일반 계정 주소)

  • gas <string> - 트랜잭션 실행에 필요한 최대 가스량. Hex string 형식으로 입력.

  • gasPrice<string> - 트랜잭션에 지불할 가스 비용. Hex string 형식으로 입력.

  • value <string> - 트랜잭션과 함께 전송되는 Klay 값. Hex string 형식으로 입력.

  • data <string> - 실행할 스마트 컨트랙트의 데이터 또는 빈 값. 일반 전송의 경우 0x

TxTypeValueTransfer 는 사용자가 KLAY 를 전송할 때 사용되는 트랜잭션입니다.

  • typeInt <number> - 8(TxTypeValueTransfer) or 9(TxTypeFeeDelegatedValueTransfer) or 10(TxTypeFeeDelegatedValueTransferWithRatio)

  • from <string> - 트랜잭션을 보내는 계정의 주소. 실제 서명자의 주소와 다르면 에러 발생.

  • to <string> - 트랜잭션의 수신자 주소

  • gas <string> - 트랜잭션 실행에 필요한 최대 가스량. Hex string 형식으로 입력.

  • gasPrice <string> - 트랜잭션에 지불할 가스 비용. Hex string 형식으로 입력.

  • value <string> - 트랜잭션과 함께 전송되는 Klay 값. Hex string 형식으로 입력.

  • feePayer <string> - 수수료를 대납할 계정의 주소. typeInt 가 9 또는 10 일 때 필요.

  • feeRatio <string> - 수수료 대납자의 수수료 비율. 1~99 사이의 값을 HexString 형식으로 입력. typeInt가 10 일 때 필요.

TxTypeValueTransferMemo 는 사용자가 특정 메세지와 함께KLAY 를 전송할 때 사용되는 트랜잭션 입니다.

  • typeInt <number> - 16(TxTypeValueTransfer) or 17(TxTypeFeeDelegatedValueTransfer) or 18(TxTypeFeeDelegatedValueTransferWithRatio)

  • from <string> - 트랜잭션을 보내는 계정의 주소. 실제 서명자의 주소와 다르면 에러 발생.

  • to <string> - 트랜잭션의 수신자 주소

  • gas <string> - 트랜잭션 실행에 필요한 최대 가스량. Hex string 형식으로 입력.

  • gasPrice <string> - 트랜잭션에 지불할 가스 비용. Hex string 형식으로 입력.

  • value <string> - 트랜잭션과 함께 전송되는 Klay 값. Hex string 형식으로 입력.

  • input <string> - 트랜잭션과 함께 전송되는 메세지. Hex string 형식으로 입력.

  • feePayer <string> - 수수료를 대납할 계정의 주소. typeInt 가 17 또는 18 일 때 필요.

  • feeRatio <string> - 수수료 대납자의 수수료 비율. 1~99 사이의 값을 HexString 형식으로 입력. typeInt가 18 일 때 필요.

TxTypeSmartContractExecution 은 스마트 컨트랙트 실행을 위한 트랜잭션입니다.

  • typeInt <number> - 48(TxTypeValueTransfer) or 49(TxTypeFeeDelegatedValueTransfer) or 50(TxTypeFeeDelegatedValueTransferWithRatio)

  • from <string> - 트랜잭션을 보내는 계정의 주소. 실제 서명자의 주소와 다르면 에러 발생.

  • to <string> - 트랜잭션의 수신자 주소 (컨트랙트 주소)

  • gas <string> - 트랜잭션 실행에 필요한 최대 가스량. Hex string 형식으로 입력.

  • gasPrice <string> - 트랜잭션에 지불할 가스 비용. Hex string 형식으로 입력.

  • value <string> - 트랜잭션과 함께 전송되는 Klay 값. Hex string 형식으로 입력.

  • input <string> - 트랜잭션과 함께 전송되는 데이터. Hex string 형식으로 입력.

  • feePayer <string> - 수수료를 대납할 계정의 주소. typeInt 가 49 또는 50 일 때 필요.

  • feeRatio <string> - 수수료 대납자의 수수료 비율. 1~99 사이의 값을 HexString 형식으로 입력. typeInt가 50 일 때 필요.

Returns

  • Promise<Object>

    • raw <string> - 직렬화된 트랜잭션

    • tx <Object> - 서명이 포함된 트랜잭션 오브젝트.

Example

const params = {
      typeInt: 49,       //TxTypeFeeDelegatedSmartContractExecution
      from: senderAddress,
      to: '0x4dbccb64e9f7b4df4263d8e3b93c89ae406fd8e5',
      input: '0x45773e4e'
      gas: '0x15f90',
      gasPrice: '0x5d21dba00',
      feePayer: feePayerAddress,
}

const {raw, tx} = await wepinProvider.request({
      method: 'kaia_signTransaction',
      params: [params]
})


const decodedTx = caver.transaction.decode(raw)
const signedTx = await caver.wallet.signAsFeePayer(
      feePayerAddress,
      decodedTx as FeeDelegatedTransaction
)
const txId = await caver.rpc.klay.sendRawTransaction(
      signedTx.getRawTransaction()
)

eth_sendTransaction / klay_sendTransaction / kaia_sendTransaction

주어진 매개변수로 트랜잭션을 구성하고 사용자의 개인키로 트랜잭션에 서명하여 네트워크에 전송합니다.

sendTransaction 은 FeeDelegated 를 지원하지 않습니다.

Supported Tx Type

TxType
Version

TxTypeLegacy

TxTypeValueTransfer

≥ v.0.0.31

TxTypeValueTransferMemo

≥ v.0.0.31

TxTypeSmartContractExecution

≥ v.0.0.31

Parameters

TxTypeLegacyTransaction 은 기존에 Kaia(Klaytn)에 존재했던 거래 유형을 나타냅니다.

  • from <string> - 트랜잭션을 보내는 계정의 주소. 실제 서명자의 주소와 다르면 에러 발생.

  • to <string> - 트랜잭션의 수신자 주소 (컨트랙트 주소 또는 일반 계정 주소)

  • gas <string> - 트랜잭션 실행에 필요한 최대 가스량. Hex string 형식으로 입력.

  • gasPrice<string> - 트랜잭션에 지불할 가스 비용. Hex string 형식으로 입력.

  • value <string> - 트랜잭션과 함께 전송되는 Klay 값. Hex string 형식으로 입력.

  • data <string> - 실행할 스마트 컨트랙트의 데이터 또는 빈 값. 일반 전송의 경우 0x

TxTypeValueTransfer 는 사용자가 KLAY 를 전송할 때 사용되는 트랜잭션입니다.

  • typeInt <number> - 8

  • from <string> - 트랜잭션을 보내는 계정의 주소. 실제 서명자의 주소와 다르면 에러 발생.

  • to <string> - 트랜잭션의 수신자 주소

  • gas <string> - 트랜잭션 실행에 필요한 최대 가스량. Hex string 형식으로 입력.

  • gasPrice <string> - 트랜잭션에 지불할 가스 비용. Hex string 형식으로 입력.

  • value <string> - 트랜잭션과 함께 전송되는 Klay 값. Hex string 형식으로 입력.

TxTypeValueTransferMemo 는 사용자가 특정 메세지와 함께KLAY 를 전송할 때 사용되는 트랜잭션 입니다.

  • typeInt <number> - 16

  • from <string> - 트랜잭션을 보내는 계정의 주소. 실제 서명자의 주소와 다르면 에러 발생.

  • to <string> - 트랜잭션의 수신자 주소

  • gas <string> - 트랜잭션 실행에 필요한 최대 가스량. Hex string 형식으로 입력.

  • gasPrice <string> - 트랜잭션에 지불할 가스 비용. Hex string 형식으로 입력.

  • value <string> - 트랜잭션과 함께 전송되는 Klay 값. Hex string 형식으로 입력.

  • input <string> - 트랜잭션과 함께 전송되는 메세지. Hex string 형식으로 입력.

TxTypeSmartContractExecution 은 스마트 컨트랙트 실행을 위한 트랜잭션입니다.

  • typeInt <number> - 48

  • from <string> - 트랜잭션을 보내는 계정의 주소. 실제 서명자의 주소와 다르면 에러 발생.

  • to <string> - 트랜잭션의 수신자 주소 (컨트랙트 주소)

  • gas <string> - 트랜잭션 실행에 필요한 최대 가스량. Hex string 형식으로 입력.

  • gasPrice <string> - 트랜잭션에 지불할 가스 비용. Hex string 형식으로 입력.

  • value <string> - 트랜잭션과 함께 전송되는 Klay 값. Hex string 형식으로 입력.

  • input <string> - 트랜잭션과 함께 전송되는 데이터. Hes string 형식으로 입력.

Returns

  • Promise<string> - 트랜잭션 해시

Example

const params = {
      typeInt: 8,       //TxTypeValueTransfer
      from: senderAddress,
      to: toAddress,
      value: '0x1234'
      gas: '0x15f90',
      gasPrice: '0x5d21dba00'
}

const txId = await wepinProvider.request({
      method: 'kaia_sendTransaction',
      params: [params]
})

eth_sign / klay_sign / kaia_sign

EIP-191 방식으로 message 를 서명합니다.

Parameters

  • <array>

    • <string> - sign 하는 계정의 주소(Public Key)

    • <string> - sign 하려는 message

Returns

  • Promise<string> - 서명 값(hex string)

Example

const message = 'Hello World'

const signature = await wepinProvider.request({
      method: 'kaia_sign',
      params: [signerAddress, message]
})

personal_sign

EIP-191 방식으로 message 를 서명합니다.

Parameters

  • <array>

    • <string> - sign 하는 계정의 주소(Public Key)

    • <string> - sign 하려는 message

Returns

  • Promise<string> - 서명 값(hex string)

Example

const message = 'Hello World'

const signature = await wepinProvider.request({
      method: 'personal_sign',
      params: [signerAddress, message]
})

eth_signTypedData_v1 / klay_signTypedData_v1

EIP-712 v1 형식의 데이터를 서명합니다.

Parameters

  • <array>

    • <string> - sign 하는 계정의 주소(Public Key)

    • <string> - sign 하려는 message

Returns

  • Promise<string> - 서명 값(hex string)

Example

const signature = await wepinProvider.request({
      method: 'kaia_signTypedData_v1',
      params: [signerAddress, msgParamsV1 ]
})

eth_signTypedData_v3 / klay_signTypedData_v3

EIP-712 v3 형식의 데이터를 서명합니다.

Parameters

  • <array>

    • <string> - sign 하는 계정의 주소(Public Key)

    • <string> - sign 하려는 message

Returns

  • Promise<string> - 서명 값(hex string)

Example

const signature = await wepinProvider.request({
      method: 'kaia_signTypedData_v3',
      params: [signerAddress, msgParamsV3 ]
})

eth_signTypedData_v4 / klay_signTypedData_v4

EIP-712 v4 형식의 데이터를 서명합니다.

Parameters

  • <array>

    • <string> - sign 하는 계정의 주소(Public Key)

    • <string> - sign 하려는 message

Returns

  • Promise<string> - 서명 값(hex string)

Example

const signature = await wepinProvider.request({
      method: 'kaia_signTypedData_v4',
      params: [signerAddress, msgParamsV4 ]
})

그 외 Kaia 네트워크의 자세한 내용은 아래 링크를 참고하세요.

network <string> 위핀이 지원하는 Provider의 Network Variable 값으로, Kaia Mainnet의 경우 "klaytn" 입니다. Network Variable은 소문자로 입력해야 합니다. 전체 목록은 에서 확인하세요.

위핀 팀에 요청
Kaia Provider 지원 네트워크
LogoRPC API Reference | Kaia Docs