# Ethereum Provider

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

## 지원 네트워크 <a href="#supported-networks" id="supported-networks"></a>

{% hint style="info" %}
목록에 필요한 블록체인이 없나요? [위핀 팀에 요청](https://wepinwallet.typeform.com/WEPIN-Wallet)하여 별도의 비용 없이 블록체인을 추가할 수 있습니다.
{% endhint %}

<table><thead><tr><th width="172.33333333333331">Chain ID</th><th>Network Name</th><th>Network Variable</th></tr></thead><tbody><tr><td>1</td><td>Ethereum Mainnet</td><td>ethereum</td></tr><tr><td>5</td><td>Ethereum Goerli Testnet</td><td>evmeth-goerli</td></tr><tr><td>8217</td><td>Kaia Mainnet</td><td>klaytn</td></tr><tr><td>1001</td><td>Kaia Kairos Testnet</td><td>klaytn-testnet</td></tr><tr><td>19</td><td>Songbird Canary Network</td><td>evmsongbird</td></tr><tr><td>137</td><td>Polygon Mainnet</td><td>evmpolygon</td></tr><tr><td>248</td><td>Oasys</td><td>evmoasys-games</td></tr><tr><td>37</td><td>XPLA Mainnet</td><td>evmxpla</td></tr><tr><td>7300</td><td>XPLA Verse Mainnet</td><td>evmxpla-verse</td></tr><tr><td>2731</td><td>TimeNetwork Testnet</td><td>evmtime-elizabeth</td></tr><tr><td>11155111</td><td>Ethereum Sepolia Testnet</td><td>evmeth-sepolia</td></tr><tr><td>80002</td><td>Polygon Amoy Testnet</td><td>evmpolygon-amoy</td></tr><tr><td>9372</td><td>Oasys Testnet</td><td>evmoasys-games-testnet</td></tr><tr><td>47</td><td>XPLA Testnet</td><td>evmxpla-testnet</td></tr><tr><td>2225</td><td>XPLA Verse Testnet</td><td>evmxpla-verse-testnet</td></tr><tr><td>204</td><td>opBNB Mainnet</td><td>evmopbnb</td></tr><tr><td>56</td><td>Binance Smart Chain</td><td>evmbsc</td></tr><tr><td>97</td><td>BSC-TESTNET</td><td>evmbsc-testnet</td></tr><tr><td>5611</td><td>opBNB Testnet</td><td>evmopbnb-testnet</td></tr><tr><td>656476</td><td>Open Campus Testnet</td><td>evmopencampus-testnet</td></tr><tr><td>43114</td><td>Avalanche</td><td>evmavax-c-chain</td></tr><tr><td>4613</td><td>VERY Mainnet</td><td>evmvery</td></tr></tbody></table>

## 설치(Install)

{% tabs %}
{% tab title="npm" %}

```bash
npm install @wepin/provider-js
```

{% endtab %}

{% tab title="yarn" %}

```bash
yarn add @wepin/provider-js
```

{% endtab %}
{% endtabs %}

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

<pre class="language-javascript"><code class="lang-javascript"><strong>// 1. 패키지 import
</strong>import { WepinProvider } from '@wepin/provider-js'
<strong>
</strong>// 2. 초기화
const WepinProvider = new WepinProvider({
    appId: 'your-wepin-app-id',
    appKey: 'your-wepin-app-key',
})
</code></pre>

## 초기화하기 <a href="#initialization" id="initialization"></a>

Wepin Provider를 초기화하는 방법입니다.&#x20;

## init

```javascript
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**

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

## isInitialized

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

```javascript
wepinProvider.isInitialized()
```

### **Parameters**

* `<void>`

### **Return value**

* `<boolean>`\
  init이 정상적으로 잘 된 경우 <mark style="color:orange;">`true`</mark> , 실패한 경우 <mark style="color:orange;">`false`</mark> 를 반환합니다.

### **Example**

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

## changeLanguage

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

```javascript
wepinProvider.changeLanguage(attributes)
```

### **Parameters**

* `attributes` \<object>
  * `language` \<string>\
    위젯에 표시될 언어를   지정합니다. 현재 지원하는 언어는 `en`, `ko`, `ja` 3가지 입니다.
  * `currency` \<string>\
    위젯에 표시될 통화를  지정합니다. 현재 지원하는 통화는 `USD`, `KRW` , `JPY` 3가지 입니다.

### **Return value**

* \<boolean>\
  init이 정상적으로 잘 된 경우 <mark style="color:orange;">`true`</mark> , 실패한 경우 <mark style="color:orange;">`false`</mark> 를 반환합니다.

### **Example**

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

## 메서드(Method)

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

## getProvider

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

```jsx
await wepinProvider.getProvider(network)
```

### **Parameters**

* `network` \<string> \
  위핀이 지원하는 Provider의 Network Variable 값으로, Ethereum Mainnet의 경우 "ethereum" 입니다. Network Variable은 소문자로 입력해야 합니다. 전체 목록은 [Ethereum Provider 지원 네트워크](/widget-integration/web-javascript-sdk/provider/ethereum-provider.md#undefined)에서 확인하세요.

### **Return value**

* `Promise`\<BaseProvider> - A EIP-1193 provider

### **Example**

```javascript
const provider = await wepinProvider.getProvider('ethereum')
```

### finalize

WepinProvider 사용을 종료합니다.

```javascript
wepinProvider.finalize()
```

### **Parameters**

* `<void>`

### **Return value**

* `<void>`

### **Example**

```javascript
wepinProvider.finalize()
```

이더리움 호환 네트워크 프로바이더의 자세한 내용은 아래 링크를 참고하세요.

{% embed url="<https://eips.ethereum.org/EIPS/eip-1193>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wepin.io/widget-integration/web-javascript-sdk/provider/ethereum-provider.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
