# รู้จักกับ iWallet

iWallet คืออะไร ทำงานยังไง มารู้จักกับ iWallet กันเถอะ

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhyH1GwWqFp8G7OL8dq%2F-MhmfmMHRfRaFaQON9aY%2Fcover.png?alt=media\&token=50e1fcdd-57a6-4709-992b-14c7ef7d15f9)

## iWallet คืออะไร

> iWallet เป็น Bot หรือโปรแกรมอัตโนมัติ ที่เอาไว้ซื้อ/ขาย แลกเปลี่ยนเหรียญ (Digital Token) บน DeFi (Decentralized Finance) โดยใช้ Concept Rebalancing แบบ 50:50 &#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhgBy8TFp-HhNsHH3DH%2F-MhgKpVc43PGv8AC3RK2%2Fscreen.png?alt=media\&token=3342583e-44b3-42a3-86b0-3f7b7fb8f8a8)

## Rebalancing คืออะไร

ลองดูคลิปวิดีโอด้านล่างนี้&#x20;

* <https://www.youtube.com/watch?v=vWgVwVsor8k>

ขอขอบคุณเจ้าของวิดีโอมาก ๆ

## iWallet เหมาะกับใคร

> เหมาะกับคนที่ไม่มีเวลาและต้องการถือ/ออมเหรียญ (Token) ในระยะยาว

## iWallet ทำงานยังไง

ระบบจะให้ผู้ใช้งานเลือก Token ขึ้นมา 2 ตัว ขอเรียกว่า `TokenA` กับ  `TokenB`  โดยสมมติว่า

TokenA = `BTCB` (Bitcoin)

TokenB  = `BUSD` (Binance USD : Stablecoin)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhnfkhGNU3Pi2uIwsEV%2F-Mhnfgf4zrlAYxEuKWDu%2Ftoken-pair.png?alt=media\&token=c6d6de42-1857-4bd8-8e1d-2dc212dcbdff)

จากนั้นผู้ใช้ก็โอน Token ตัวใดตัวหนึ่ง หรือทั้ง 2 Token เข้ามาใน iWallet ตาม Wallet Address ที่ผู้ใช้ได้สร้างไว้

เมื่อเวลาผ่านไป ปรากฏว่า `TokenA` และ `TokenB` มีมูลค่าต่างกัน >= X% (ขึ้นอยู่กับผู้ใช้ตั้งค่าไว้ โดย Default เป็น 10%) ระบบจะทำการปรับมูลค่าของ Token ทั้ง 2 ฝั่งให้เท่ากันเป็น 50:50 เสมอ (โดยประมาณ) เป็นแบบนี้วนไปเรื่อย ๆ ซ้ำแล้วซ้ำเล่า ดังรูป

![ภาพก่อนและหลัง Rebalance](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiZt5wnWjmbnanveUvz%2F-MhndFpFpWIIbaMg_2Wd%2Frebalance-3.png?alt=media\&token=1739a917-061b-49db-8318-80002a23e908)

ตัวอย่างการทำ Rebalance ของ Token อื่น ๆ

![ภาพก่อนและหลัง Rebalance](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiZt5wnWjmbnanveUvz%2F-MiZtIb8J5rkM8_r05s3%2Frebalance-4.png?alt=media\&token=60506253-7ebf-4874-91f1-b6851ad50ec8)

## Bot วิ่งไปซื้อ/ขาย หรือแลกเปลี่ยน Token จากที่ไหน

การซื้อ/ขาย Token ขึ้นอยู่กับการตั้งค่าของผู้ใช้งานว่าจะให้ Bot วิ่งไปซื้อ/ขาย หรือแลกเปลี่ยน (Swap) Token จากที่ไหน

แต่โดยหลัก ๆ Bot จะวิ่งไปแลกเปลี่ยน Token ที่ DEX (Decentralized Exchange) เช่น

* Pancakeswap
* Biswap
* Twindex
* Quickswap &#x20;
* Suchiswap
* Vonder
* Foodcourt
* และอื่น ๆ

ขึ้นอยู่กับผู้ใช้งานเป็นคนตั้งค่า (Swap Router Address) เอง&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhqN-Kd-txCaAKjgD3t%2F-MhqI3Ucl_zBGFZ4I86u%2Fswap.png?alt=media\&token=2c06b3a7-ceec-4636-9667-16fbe8f623ab)

## iWallet รองรับ Network ไหนบ้าง

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiG2EuuIcTrwLqctzVf%2F-MiG3k-TtJH35Cn2bZFv%2Fsupported-network.png?alt=media\&token=499e151c-1b62-4e96-9941-042031d5c35a)

ตอนนี้รองรับ 3 Networks ได้แก่

* BSC (Binance Smart Chain)
* Polygon (PoS) Chain
* Bitkub Chain

และอื่น ๆ ที่จะตามมาในอนาคต

## ใช้ iWallet แล้วดียังไง ?

* UI ใช้งานง่าย
* Bot เทรดให้อัตโนมัติ 24 ชั่วโมง ไม่ต้องเทรดเอง ไม่ต้องนั่งเฝ้าหน้าจอเพื่อดูกราฟราคาตลอดเวลา เปิด iWallet เพื่อดูแค่ผลลัพธ์เท่านั้น
* ถ้ามีการซื้อ/ขาย หรือทำ Rebalance Bot จะส่งข้อความแจ้งเตือนเข้าทาง LINE ให้อัตโนมัติ
* เทรดอย่างเป็นระบบ ไม่มีเรื่องของอารมณ์เข้ามาเกี่ยวข้อง เพราะ Bot จะทำตามคำสั่งที่ตั้งไว้เท่านั้น
* รู้กำไร/ขาดทุน จากต้นทุนที่โอนเข้า iWallet และจากผลลัพธ์ที่ Bot ทำให้ ว่าที่ผ่านมาได้กำไร/ขาดทุนไปแล้วกี่เปอร์เซ็นต์
* ปลอดภัย ด้วยระบบ  Two-Factor Authentication และระบบอื่น ๆ ที่ทำขึ้นมาเพื่อให้ผู้ใช้รู้สึกอุ่นใจมากที่สุด
* ผู้ใช้เป็นคนสร้าง Wallet และเก็บ Private Key ไว้กับตัวเอง ถ้าระบบมีปัญหา สามารถกู้คืน Token ด้วย Private Key ที่มีโดยตรงได้เลย
* สามารถใช้งานผ่าน Web Application ติดตั้งเป็น Desktop Application และ Mobile Application ได้


# Features

คุณสมบัติต่าง ๆ ที่ iWallet มี

iWallet มี 2 เวอร์ชัน

* เวอร์ชัน Free - Version : 1.0.1
* เวอร์ชัน Pro (เสียตังค์) - Version : pro-1.1.1

| Feature                                                                              | Free | Pro |
| ------------------------------------------------------------------------------------ | :--: | :-: |
| รองรับหลาย Wallets.                                                                  |   ✅  |  ✅  |
| รองรับหลาย Networks (ตอนนี้รองรับ BSC, Polygon, Bitkub).                             |   ✅  |  ✅  |
| รองรับ Token ประเภท ERC 20 ทุกตัว                                                    |   ✅  |  ✅  |
| ทำ Rebalancing อัตโนมัติ (50:50)                                                     |   ✅  |  ✅  |
| เติม Gas อัตโนมัติ (ถ้าเห็นว่า Gas ใกล้หมด)                                          |   ✅  |  ✅  |
| PWA (Progressive Web App) สามารถติดตั้งลงบน Desktop และ Mobile ได้                   |   ✅  |  ✅  |
| รองรับ Two-Factor Authentication (2FA), Google Authenticator                         |   ✅  |  ✅  |
| ดูประวัติการทำ Rebalancing (Reblancing History)                                      |   ✅  |  ✅  |
| ดูประวัติการโอน (Transfer History)                                                   |      |  ✅  |
| รู้กำไร และขาดทุน โดยดูจากต้นทุนที่โอนเข้า/ออก iWallet (บอกเป็น %)                   |      |  ✅  |
| มีหน้าจอสำหรับโอน (Transfer) Token                                                   |      |  ✅  |
| มีแจ้งเตือนทาง LINE (Notification) ถ้า Bot ทำ Rebalance หรือมีการโอนเข้า/ออก iWallet |      |  ✅  |
| Export ประวัติการทำ Rebalancing ในรูปแบบ Excel                                       |      |  ✅  |
| Manual Reblanacing                                                                   |      |  ✅  |
| อื่น ๆ ที่กำลังพัฒนาต่อ                                                              |      |  ✅  |

สำหรับราคาเวอร์ชัน Pro สามารถดูได้ที่ [ราคาและเงื่อนไข](/pricing)

## ตัวอย่างหน้าจอ iWallet Pro

ติดตั้งเป็น Desktop Application (ผ่าน Feature PWA)

![ตัวอย่างหน้าจอ iWallet จาก MacBook Pro 16 นิ้ว](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi-utua7fCG9xgEMzoe%2F-MhgeXK2QjfZ1onu8X5P%2Fdesktop-2.png?alt=media\&token=67c1e6a8-559b-41ff-9d2c-ef2df87a90b1)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhiINJ-d8p1do0GKYii%2F-MhgASsFGqiy_rS0CdHE%2Fscreen-1.png?alt=media\&token=00f63485-6c51-4c9b-a8d8-42c65dc0940e)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiH2n2CX49M8jksgG8I%2F-MhgAVN6_tXhZRLOoAwv%2Fscreen-2.png?alt=media\&token=d2887510-8a56-48c7-8095-09357b6131b8)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiH4tGH_JPH9xzKa-cJ%2F-MhgAYD4FPmB-HLakDfo%2Fscreen-3.png?alt=media\&token=a9f7fe36-49f1-4b33-96e3-825ef658ca55)

ติดตั้งเป็น Mobile Application (ผ่าน Feature PWA)

![ตัวอย่างหน้าจอ iWallet จาก iPhone 8](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi-utua7fCG9xgEMzoe%2F-MhmgVSe95z7d3xjTgCx%2Fmobile-screen-2.png?alt=media\&token=86557d2b-bf8f-4585-85ab-92bb6581dc1b)

ใช้งานผ่าน Web Application

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhgfkMwC2OkfUcp0nt9%2F-MhggQdNABwefIPbCy7m%2Fimage.png?alt=media\&token=fddda5f7-d94c-471a-bd76-9c323f59531e)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiH9MoDTVyHFBdsYbq9%2F-MiHB-kieIcdTopb7GlH%2Fweb-home.png?alt=media\&token=1d085739-97ee-4e34-a2f6-50fe86aaf35c)

ตัวอย่าง Excel ที่ Bot Export ให้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhfoWNADLmnfzSLjYjS%2Fuploads%2FRn3ZTEbheBobWITI1mmf%2Fexport-excel-example.png?alt=media\&token=37de8644-c7d3-49f5-891d-80200d1460a1)


# Change log

ประวัติการอัพเดท/แก้ไข iWallet

## Pro-1.1.1 - 17 ต.ค. 2021

* แสดงข้อมูล Token เพิ่มเติม ที่หน้า Rebalancing
* แสดงราคา Token แต่ละรายการ ที่หน้า History
* Fixed BUG คำนวนต้นทุนกำ/ไรผิด (กรณีต้นทุนติดลบ หรือกำไร 100%)
* เพิ่มตัว Loading ที่หน้า Login และหน้า Transfer
* แสดงข้อมูลกำไร/ขาดทุน Summary ที่หน้า Home
* แสดงต้นทุนที่หน้า Rebalancing
* สามารถ Export ประวัติการทำ Rebalance ในรูปแบบ Excel ได้
* สามารถ Manual Rebalance ได้

## Pro-1.1.0 - 27 ส.ค. 2021

* รองรับหลาย Wallets.
* รองรับหลาย Networks (ตอนนี้รองรับ BSC, Polygon, Bitkub).
* รองรับ Token ประเภท ERC 20 ทุกตัว&#x20;
* ทำ Rebalancing อัตโนมัติ (50:50)
* เติม Gas อัตโนมัติ (ถ้าเห็นว่า Gas ใกล้หมด)
* PWA (Progressive Web App) สามารถติดตั้งลงบน Desktop และ Mobile ได้
* รองรับ Two-Factor Authentication (2FA), Google Authenticator
* ดูประวัติการทำ Rebalancing (Reblancing History)
* ดูประวัติการโอน (Transfer History)
* รู้กำไร และขาดทุน โดยดูจากต้นทุนที่โอนเข้า/ออก iWallet (บอกเป็น %)
* มีหน้าจอสำหรับโอน (Transfer) Token&#x20;
* มีแจ้งเตือนทาง LINE (Notification) ถ้า Bot ทำ Rebalance หรือมีการโอนเข้า/ออก iWallet&#x20;


# ราคา เงื่อนไข และการชำระเงิน

ราคา เงื่อนไขการให้บริการ และการชำระเงินเพื่อซื้อ iWallet Pro

## ขั้นตอนการซื้อ iWallet Pro

1. ตรวจสอบราคา + อ่านเงื่อนไขและข้อตกลงการให้บริการ
2. ชำระเงิน
3. ส่งข้อมูลการชำระเงินให้เราตรวจสอบผ่านทาง Facebook Page
4. ทางเราออก Access Token ให้&#x20;
5. นำ Access Token ที่ได้ ไปดาวน์โหลด iWallet Pro ไปใช้งาน

## ราคา

| เวอร์ชัน | ราคา (บาท) | หมายเหตุ                                                      |
| -------- | ---------- | ------------------------------------------------------------- |
| Free     | 0          | ไม่เสียค่าใช้จ่าย                                             |
| Pro      | 599        | ได้​ Access Token เพื่อดาวน์โหลดและอัพเดท iWallet ฟรี 3 เดือน |

**หมายเหตุ \*\*\***

* เวอร์ชัน Pro 559 บาท จะสามารถใช้ Access Token เพื่อดาวน์โหลดหรืออัพเดท Feature เป็นเวอร์ชันใหม่ล่าสุด รวมทั้งอัพเดทการแก้ BUG ต่าง ๆ ที่เกิดขึ้นของ iWallet ได้ในระยะเวลา 3 เดือน&#x20;
* ถ้า Access Token หมดอายุ (3 เดือน) และผู้ใช้งานต้องการอัพเดท Feature เป็นเวอร์ชันใหม่ล่าสุด จะต้องจ่ายเงินเพื่อซื้อ Access Token ใหม่ในราคา 199 บาท ก็จะสามารถใช้งาน Access Token นี้ไปได้อีก 3 เดือน &#x20;

## เงื่อนไขและข้อตกลงการให้บริการ

#### การซื้อและการอัพเดท Feature ของ iWallet&#x20;

1. การจ่ายเงินเพื่อซื้อ iWallet ไปใช้งาน ผู้ใช้จะได้แค่ Access Token เพื่อนำไปดาวน์โหลดตัว Application (Service) Bot ไปใช้งานเท่านั้น จะไม่ได้รวมถึง Source code ที่ทางผู้พัฒนา (Developer) เป็นคนเขียนขึ้นมา
2. เมื่อจ่ายเงินซื้อ iWallet แล้ว จะสามารถใช้งาน Application iWallet ได้ตลอดไป เพียงแต่จะจำกัดการอัพเดท Feature ต่าง ๆ ตามอายุของ Access Token ที่ทางผู้พัฒนาเป็นคนออกให้เท่านั้น

#### การ Support

1. การ Support ปัญหา จะเป็นเพียงการให้คำแนะนำเท่านั้น ผู้ใช้งานจะต้องดำเนินการแก้ไขปัญหาต่าง ๆ ที่เกิดขึ้นเอง ยกเว้นว่าปัญหานั้น จะเกิดจากข้อผิดพลาด (BUG) ของ iWallet Pro เท่านั้น ทางผู้พัฒนาจะคอยช่วยเหลือและช่วยแก้ไขปัญหาให้

#### ความรับผิดชอบ และการชดเชยค่าเสียหาย

1. เนื่องจาก iWallet ไม่ได้มีการเก็บข้อมูลใด ๆ ของผู้ใช้ไว้กับทางผู้พัฒนา (ยกเว้น ชื่อตอนซื้อ iWallet Pro และ Access Token ที่ทางผู้พัฒนาเป็นคนออกให้) ดังนั้นการรักษาความปลอดภัย เพื่อไม่ให้โดนแฮก โดนไวรัส หรือเหตุการณ์ที่เกิดจากเหตุไม่คาดคิดใด ๆ ที่ไม่ใช่ BUG ของโปรแกรม จึงเป็นหน้าที่และความรับผิดชอบของผู้ใช้งานเอง หากเกิดเหตุการณ์เหล่านี้ ทางผู้พัฒนาไม่มีส่วนเกี่ยวข้อง และจะไม่รับผิดชอบใด ๆ ทั้งสิ้น
2. หากความเสียหายนั้นเกิดจาก BUG ของโปรแกรม และทางผู้พัฒนาได้ตรวจสอบข้อมูลอย่างละเอียดถี่ถ้วน แล้วพบว่าความเสียหายนั้นเกิดจาก BUG ของโปรแกรมจริง ๆ ไม่ใช่เกิดจากปัญหาภายนอก เช่น Blockchain ที่ใช้อยู่ทำงานผิดพลาด Smart Contract ที่ติดต่อด้วยทำงานผิดพลาดหรือไม่ปลอดภัย หรือผู้ใช้งานตั้งค่า Configuration ต่าง ๆ ผิดเอง ทางผู้พัฒนายินดีที่จะจ่ายเงินเพื่อชดเชยค่าเสียหายตามความเป็นจริง แต่ชดเชยสูงสุดไม่เกิน 10,000 บาท
3. การชดเชยค่าเสียหาย ขอสงวนสิทธิ์สำหรับผู้ใช้ที่ชำระเงินซื้อ iWallet Pro  และขอจำกัดสิทธิ์ไว้เฉพาะตอนที่ Access Token ยังไม่หมดอายุ (3 เดือน) เท่านั้น

การทำให้ iWallet ปลอดภัย ให้ทำตามคำแนะนำในหัวข้อ [ความปลอดภัย](/security)

## ความเข้าใจเกี่ยวกับ iWallet

ก่อนซื้อ iWallet ต้องทำความเข้าใจเกี่ยวกับ iWallet ก่อนดังนี้

1. iWallet ไม่ใช้ Bot เทรดแบบที่ทำกำไรให้ได้ครั้งละ 10% 100% หรือ 1,000% ในช่วงเวลาสั้น ๆ &#x20;
2. iWallet เป็น Bot เทรดสำหรับทำ Portfolio Rebalancing แบบ 50:50 บน DeFi ฉะนั้นก่อนตัดสินใจซื้อ iWallet แนะนำให้ทำความเข้าใจเรื่อง Rebalancing และ DeFi ก่อน
3. iWallet เหมาะกับคนที่ต้องการลงทุนในระยะยาว มากกว่าการลงทุนในระยะสั้น เพราะการทำ Rebalancing นั้นต้องใช้เวลา จึงจะเห็นผล

## การชำระเงิน

ให้ทำการโอนเงินมาที่

#### บัญชีธนาคาร

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijDyo6As54y6_QR-AV%2F-Mi5Oyynbk19k51VrjvE%2Fpayment.png?alt=media\&token=828ebbff-3dbf-4fdc-b9e6-b35d9b5144d7)

**หมายเหตุ**

* การโอนเงินเพื่อซื้อ iWallet Pro ทางผู้พัฒนาขออนุมานว่า ผู้ใช้/ผู้ซื้อได้อ่านเงื่อนไขและข้อตกลงต่าง ๆ รวมถึง[ลิขสิทธิ์](/copyright) ของโปรแกม iWallet อย่างละเอียดถี่ถ้วนแล้ว
* กรุณาตรวจสอบความถูกต้องของชื่อบัญชีก่อนโอนเงิน ทางผู้พัฒนารับโอนแค่บัญชีนี้บัญชีเดียวเท่านั้น ไม่รับเงินผ่านทางช่องทางอื่น ถ้าโอนผิดทางเราจะไม่รับผิดชอบใด ๆ ทั้งสิ้น

จากนั้นติดต่อ Facebook Page <https://www.facebook.com/iwallet.jittagornp.me> แล้วส่งข้อมูลการโอนเงินมาที่ข้อความของ Page&#x20;

ทางเราจะตรวจสอบข้อมูลการโอนเงิน และออก Access Token ให้ จากนั้นก็สามารถใช้ Access Token ที่เราออกให้เพื่อดาวน์โหลด iWallet Pro ไปใช้งานได้เลย &#x20;

#### กรณีการโอนเงินเพื่อต่ออายุ Access Token (เคยซื้อแล้ว)

กรุณาส่ง Access Token เดิมมาให้ด้วย ทางเราจะตรวจสอบข้อมูลการซื้อ/ขายเดิม  ก่อนที่จะออก Access Token ใหม่ให้&#x20;

หากไม่มี Access Token เดิมส่งมา ทางเราขออนุมานว่ายังไม่เคยซื้อ iWallet Pro มาก่อน ซึ่งผู้ใช้จะต้องจ่ายเงินซื้อใหม่เต็มจำนวนเหมือนกับที่เคยซื้อไปครั้งแรก ทั้งนี้เพื่อป้องกันการแอบอ้าง หรือการนำ Access Token ของผู้อื่นไปใช้งาน&#x20;


# การติดตั้ง

การติดตั้ง iWallet

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiHB6gOWHjf65LOcMMY%2F-Mi1WAjLYOsClYyKVee8%2Fon-docker.png?alt=media\&token=e5f8753c-6355-47e9-b095-bee5c0f9b58e)

iWallet ทำงานในลักษณะของ Web Application ซึ่งจะต้องมีคอมพิวเตอร์เปิดไว้ตลอดเวลา เพื่อใช้ในการ Run Bot&#x20;

ตอนนี้ รองรับเฉพาะการติดตั้งแบบ Docker เท่านั้น ซึ่งผู้ใช้งานจะต้องมีความรู้และประสบการณ์ในการใช้งาน Docker เบื้องต้นเป็นอยู่แล้ว

สำหรับผู้ที่ไม่เคยใช้งาน Docker สามารถเรียนรู้พื้นฐาน Docker ได้ที่&#x20;

* [พื้นฐาน Docker โดย Jittagornp.me](https://docs.google.com/presentation/d/1NXArkIDFIJMmcvXY63cc5z7jIsbx8SDZqt76RqeuGwU/edit?usp=sharing)

## Spec เครื่องคอมพิวเตอร์ที่ใช้ในการ Run Bot

อย่างน้อยต้อง

* ติดตั้ง Docker ได้
* CPU อย่างน้อย 1 Core หรือ ถ้าใช้ Cloud ก็อย่างน้อย 1 vCPU
* RAM อย่างน้อย 1 GB (1,024 MB)
* พื้นที่ Harddisk สำหรับเก็บข้อมูล + Log อย่างน้อย 10 GB
* เข้าถึง Internet (ออก Internet) ได้

## การติดตั้ง

> แนะนำให้อ่านเอกสารทั้งหมดก่อนคร่าว ๆ แล้วค่อยลองติดตั้งและใช้งานจริง อย่าลืมอ่านหมายเหตุ คำแนะนำ และข้อควรระวังต่าง ๆ ด้วย

* [การโหลด Image](/installation/load-image)
* [การสร้าง Wallet](/installation/generate-wallet)
* [การตั้งค่า](/installation/settings)
* [ตัวอย่าง Token และ Swap Router](/installation/token-and-swap-router)
* [การ Run Bot](/installation/run-bot)
* [Two-Factor Authentication (2FA)](/installation/two-factor-authen)
* [LINE Notify](/installation/line-notify)
* [โครงสร้าง File และ Directory](/installation/file-and-directory)


# การโหลด Image

การโหลด Docker Image จาก Container Registry

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjFPMdEB2mOYxulZYr0%2F-MjFO4sQvxGysKQHSket%2Fdocker-pull-image.png?alt=media\&token=6d017dad-7621-4627-bca3-07c9b031a204)

## เวอร์ชัน Free&#x20;

1.ทำการ Pull Docker Image ลงมาดังนี้

```shell
$ docker pull jittagornp/iwallet 
```

สำหรับเวอร์ชัน Free Docker Image จะถูกเก็บไว้ที่ DockerHub <https://hub.docker.com/r/jittagornp/iwallet>

## เวอร์ชัน Pro

เมื่อคุณจ่ายเงินซื้อ iWallet เวอร์ชัน Pro คุณจะได้รับ `Access Token` ที่ใช้สำหรับโหลด Docker Image จาก GitHub Container Registry แบบนี้

```bash
CR_PAT="<YOUR_TOKEN>"
```

CR\_PAT = Container Registry Personal Access Token

เมื่อคุณได้รับ Access Token มา ให้ทำดังต่อไปนี้

1\. ให้ Export Access Token  เป็นตัวแปร System Environment

```bash
$ export CR_PAT="<YOUR_TOKEN>"
```

2\.  จากนั้น เปิดและปิด (Restart) Terminal ใหม่

3\. ทำการ Docker Login ไปที่ GitHub Container Registry ดังนี้

```shell
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
```

4\. ลอง Pull Docker Image ลงมา

```bash
$ docker pull ghcr.io/jittagornp/iwallet
```

สังเกตว่า เวอร์ชัน Free จะใช้  `jitagornp/iwallet` ส่วนเวอร์ชัน Pro จะใช้ `ghcr.io/jittagornp/iwallet`  คนละ Repository กัน ให้ดูดี ๆ&#x20;


# การสร้าง Wallet

การสร้าง Wallet Address + Private key

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiGH5XFAckGQ_YwzdSj%2F-MiGDWqSfNZZhpQ7MncO%2Fwallet.png?alt=media\&token=e0fc666c-903e-403e-88ac-81926351a1b7)

ก่อนใช้งาน iWallet&#x20;

เราจะต้องสร้าง Wallet (Address + Private Key) เพื่อเอาไว้ใช้สำหรับเก็บ/เข้าถึง Token บน Blockchain ขึ้นมาก่อน โดยให้ Create Directory เปล่า ๆ ขึ้นมาดังนี้

```bash
$ mkdir iwallet
$ cd iwallet
```

จากนั้นให้ Run Command `wallet-gen` เพื่อสร้าง Wallet File + Configuration File ดังต่อไปนี้

```bash
$ docker run --rm -v $PWD:/iwallet ghcr.io/jittagornp/iwallet wallet-gen -p <YOUR_WALLET_PASSWORD> -n <NETWORK>
```

**หมายเหตุ**

* เวอร์ชัน Free เปลี่ยน Repository จาก  `ghcr.io/jittagornp/iwallet` เป็น `jittagornp/iwallet`

## คำอธิบาย

* `-p`  \<YOUR\_WALLET\_PASSWORD>  คือ  รหัสผ่านที่ใช้สำหรับเข้าถึง Wallet นี้ (อย่าลืมตั้งให้ปลอดภัย)
* `-n` \<NETWORK> คือ Blockchain Network ที่เราจะใช้กับ Wallet นี้&#x20;

`-n` ตอนนี้ระบบรองรับ 3 Networks ได้แก่

* **BSC\_MAINNET** (Default) - Binance Smart Chain
* **POLYGON\_ MAINNET** - Polygon (PoS) Chain
* **BITKUB\_ MAINNET** - Bitkub Chain

## ตัวอย่าง

> แบบไม่กำหนด Network (Default Network  เป็น BSC)

```bash
$ docker run --rm -v $PWD:/iwallet ghcr.io/jittagornp/iwallet wallet-gen -p 123456

Generating wallet and config...
Output wallet file "0x144625b77d8e2d09a11c8a4729acc9bab5c89dc9.wallet.json"
Output config file "0x144625b77d8e2d09a11c8a4729acc9bab5c89dc9.config.json"

$ ls -l
-rw-------  1 root  root  626 Jul 26 15:19 0x144625b77d8e2d09a11c8a4729acc9bab5c89dc9.config.json
-r--------  1 root  root  491 Jul 26 15:19 0x144625b77d8e2d09a11c8a4729acc9bab5c89dc9.wallet.json

$ cat 0x144625b77d8e2d09a11c8a4729acc9bab5c89dc9.config.json
{
  "walletFile" : "0x779fba7799adf15c8476bdbf4dac3770945a2cd4.wallet.json",
  "walletPassword" : "123456",
  "network" : "BSC_MAINNET", 
  "tokenA" : "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", //BTCB
  "tokenB" : "0xe9e7cea3dedca5984780bafc599bd69add087d56", //BUSD
  "minimumGasBalance" : 0.005,
  "fillGasTokenBAmount" : 3,
  "swapRouter" : "0x10ED43C718714eb63d5aA57B78B54704E256024E", //PancakeSwap Router 
  "gasSwapRouter" : "0x10ED43C718714eb63d5aA57B78B54704E256024E", //PancakeSwap Router 
  "defaultSwapSlippage" : 0.5,
  "defaultSwapDeadlineMinutes" : 10,
  "tokenAutoApproveMultiplier" : 3.0,
  "differenceAtLeastPercent" : 9.0,
  "swapPercent" : 50.0,
  "swapAtLeastValue" : 1,
  "recipientWhitelist" : []
}
```

> แบบกำหนด Network

```bash
$ docker run --rm -v $PWD:/iwallet ghcr.io/jittagornp/iwallet wallet-gen -p 123456 -n POLYGON_MAINNET

Generating wallet and config...
Output wallet file "0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.wallet.json"
Output config file "0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.config.json"

$ cat 0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.config.json
{
  "walletFile" : "0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.wallet.json",
  "walletPassword" : "123456",
  "network" : "POLYGON_MAINNET",
  "tokenA" : "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270", //WMATIC
  "tokenB" : "0x2791bca1f2de4661ed88a30c99a7a9449aa84174", //USDC
  "minimumGasBalance" : 0.005,
  "fillGasTokenBAmount" : 3,
  "swapRouter" : "0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff", //Quickswap Router
  "gasSwapRouter" : "0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff", //Quickswap Router
  "defaultSwapSlippage" : 0.5,
  "defaultSwapDeadlineMinutes" : 10,
  "tokenAutoApproveMultiplier" : 3.0,
  "differenceAtLeastPercent" : 9.0,
  "swapPercent" : 50.0,
  "swapAtLeastValue" : 1,
  "recipientWhitelist" : []
}
```

ระบบจะสร้างไฟล์ขึ้นมาได้ 2 ไฟล์ ได้แก่

* Wallet File (.wallet.json) และ
* Configuration File (.config.json) ใช้คู่กันกับ Wallet File

## คำแนะนำ

1. อย่าลืม Backup Wallet File (.wallet.json) และ Configuration File (.config.json) ก่อนเริ่มใช้งานจริง
2. สำหรับ Configuration File (.config.json) เพื่อให้จำได้ง่าย อาจจะเปลี่ยนชื่อไฟล์จาก

> 0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.config.json&#x20;

ไปเป็นคู่ Token ที่จะใช้ก็ได้ เช่น

> WMATIC\_USDC\_0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.config.json&#x20;

โดยใช้คำสั่ง

```bash
$ mv 0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.config.json WMATIC_USDC_0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.config.json
```

เป็นต้น&#x20;

Configuration File อื่น ๆ ก็เช่นกัน


# การตั้งค่า

การตั้งค่า Configuration File

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhhtBOITnQ08xdZ3nBc%2F-MhhvPCiE0i7FsydZfTf%2Fimage.png?alt=media\&token=4a3f7896-87f8-4c23-92ba-68348556be3d)

จากหัวข้อก่อนหน้านี้ ที่เราได้ Run Command `wallet-gen` เพื่อสร้าง Wallet File และ Configuration File ขึ้นมา

Wallet File (.wallet.json) ไม่ต้องแก้อะไร แก้แค่เฉพาะ Configuration File (.config.json) เท่านั้น ดังนี้

## Configuration File

ตัวอย่าง 0x779fba7799adf15c8476bdbf4dac3770945a2cd4.config.json

```bash
{
  "walletFile" : "0x779fba7799adf15c8476bdbf4dac3770945a2cd4.wallet.json",
  "walletPassword" : "123456",
  "network" : "BSC_MAINNET", 
  "tokenA" : "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", //BTCB
  "tokenB" : "0xe9e7cea3dedca5984780bafc599bd69add087d56", //BUSD
  "minimumGasBalance" : 0.005,
  "fillGasTokenBAmount" : 3,
  "swapRouter" : "0x10ED43C718714eb63d5aA57B78B54704E256024E", //PancakeSwap Router 
  "gasSwapRouter" : "0x10ED43C718714eb63d5aA57B78B54704E256024E", //PancakeSwap Router 
  "defaultSwapSlippage" : 0.5,
  "defaultSwapDeadlineMinutes" : 10,
  "tokenAutoApproveMultiplier" : 3.0,
  "differenceAtLeastPercent" : 9.0,
  "swapPercent" : 50.0,
  "swapAtLeastValue" : 1,
  "recipientWhitelist" : []
}
```

**คำอธิบาย**

| Attribute                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Default |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-----: |
| walletFile                 | อ้างถึง Wallet File ที่คู่กันกับ Configuration File นี้                                                                                                                                                                                                                                                                                                                                                                                                                                           |    -    |
| walletPassword             | เป็นรหัสผ่านเดียวกันกับตอนที่ใช้คำสั่ง `wallet-gen`                                                                                                                                                                                                                                                                                                                                                                                                                                               |    -    |
| network                    | คือ network เดียวกับตอนที่ใช้คำสั่ง `wallet-gen`                                                                                                                                                                                                                                                                                                                                                                                                                                                  |    -    |
| tokenA                     | เป็น Token (Contract) Address ตัวแรกที่เราจะใช้ (แนะนำให้ใช้เป็นตัวที่ไม่ใช่ Stablecoin เช่น BTCB, WBTC, ETH, WBNB ฯลฯ)                                                                                                                                                                                                                                                                                                                                                                           |    -    |
| tokenB                     | เป็น Token (Contract) Address ตัวที่ 2 ที่เราจะใช้ (แนะนำให้ใช้เป็น Stablecoin เช่น BUSD, USDT, USDC, DAI, UST ฯลฯ)                                                                                                                                                                                                                                                                                                                                                                               |    -    |
| minimumGasBalance          | ถ้าจำนวน Gas เหลือต่ำกว่านี้ Bot จะเติม Gas ให้อัตโนมัติ                                                                                                                                                                                                                                                                                                                                                                                                                                          |  0.005  |
| fillGasTokenBAmount        | ถ้าจำนวน Gas เหลือต่ำกว่า `minimumGasBalance`  Bot จะเอา Token B มาจำนวนเท่ากับค่านี้ เพื่อไปซื้อ Gas แล้วเอามาเติมให้อัตโนมัติ                                                                                                                                                                                                                                                                                                                                                                   |    3    |
| swapRouter                 | เป็น Router (Contract) Address ที่ Bot จะไปซื้อ/ขาย หรือแลกเปลี่ยน (Swap) Token                                                                                                                                                                                                                                                                                                                                                                                                                   |    -    |
| gasSwapRouter              | เป็น Router (Contract) Address ที่ Bot จะไปซื้อ หรือแลกเปลี่ยน (Swap) Gas                                                                                                                                                                                                                                                                                                                                                                                                                         |    -    |
| defaultSwapSlippage        | เปอร์เซ็นต์สูญเสีย/คลาดเคลื่อน ที่ยอมรับได้ ถ้า Swap Token แล้วไม่ได้จำนวนตามที่ต้องการ เช่น ยอมให้คลาดเคลื่อนได้ 0.5% เป็นต้น                                                                                                                                                                                                                                                                                                                                                                    |   0.5   |
| defaultSwapDeadlineMinutes | เวลา (นาที) ที่ ถ้า Swap ไม่สำเร็จ Transaction นั้นจะถือว่า Fail ไป                                                                                                                                                                                                                                                                                                                                                                                                                               |    10   |
| tokenAutoApproveMultiplier | <p>ตัวคูณจำนวนในการ Approve Allowance ให้กับ Smart Contract ว่า ให้ Smart Contract นี้สามารถเข้าถึง Token ใน Wallet เราได้ทีละเท่าไหร่ เช่น ถ้าเราตั้งค่าเป็น 3 แล้ว Bot ทำการชื้อ/ขาย BUSD ที่ 5 BUSD <br><br>Smart Contract ที่เราติดต่อด้วย (Router Contract) จะมีสิทธิ์ในการเข้าถึง BUSD ใน Wallet เราได้ไม่เกิน 15 BUSD  (3x) ตอนแรกใช้ชื่อ Attribute ว่า <code>tokenAutoApproveNTimes</code> ตอนนี้เปลี่ยนชื่อ Attribute ใหม่แล้ว ค่านี้เราจะไม่ตั้งเป็น Unlimited เพราะมันเสี่ยงเกินไป</p> |    3    |
| differenceAtLeastPercent   | เปอร์เซ็นต์ที่ ถ้ามูลค่าของ Token A กับ Token B ต่างกันมากกว่าหรือเท่ากับ (>=) ค่านี้แล้ว Bot จะทำการ Rebalance ให้อัตโนมัติ                                                                                                                                                                                                                                                                                                                                                                      |    9    |
| swapPercent                | <p>เปอร์เซ็นที่ Bot ใช้ในการซื้อ/ขาย ถ้าเข้าเงื่อนไข <code>differenceAtLeastPercent</code> (ด้านบน)<br><br>โดยจะซื้อ/ขายจากมูลค่าที่แตกต่างกันจากเงื่อนไขด้านบนเท่านั้น</p>                                                                                                                                                                                                                                                                                                                       |    50   |
| swapAtLeastValue           | มูลค่าอย่างน้อยที่สุด ที่ Bot จะซื้อ/ขาย เช่น ตั้งค่าไว้เป็น 1 BUSD ถ้าเปอร์เซ็นต์ด้านบนถูก แต่ถ้า Bot เห็นว่ามูลค่าซื้อ/ขาย ต่ำกว่า 1 BUSD ก็จะไม่ซื้อ/ขาย เพราะเปลืองค่า Gas                                                                                                                                                                                                                                                                                                                    |    1    |
| recipientWhitelist         | รายการผู้รับ (Token Address) ที่อนุญาตเท่านั้น ใช้ในกรณีการโอน Token ออกจาก iWallet จะอธิบายเพิ่มเติมในหัวข้อ [การโอน Token ออกจาก iWallet](/transfer/out) อีกครั้ง                                                                                                                                                                                                                                                                                                                               |   \[ ]  |

## ไม่รู้จะแก้ค่าอะไร ให้แก้ค่าต่อไปนี้&#x20;

* network
* tokenA&#x20;
* tokenB &#x20;
* swapRouter
* gasSwapRouter

ค่าอื่น ๆ ปล่อยเป็น Default ไป

เมื่อใช้งานจนคล่องแล้ว ค่อยลองปรับค่าต่าง ๆ ดู


# ตัวอย่าง Token และ Swap Router

ตัวอย่าง Token และ Swap Router

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mipn2FaQfulswZ2C6q4%2F-MippGh5UN9RWeSlB4_3%2Ftokens.png?alt=media\&token=40cf06b0-0be7-4086-9d49-12e2d1930b75)

## **BSC\_MAINNET**

> Binance Smart Chain

**Token**

| Symbol | Contract Address                           |   Remarks  |
| ------ | ------------------------------------------ | :--------: |
| WBNB   | 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c |     BNB    |
| BTCB   | 0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c |   Bitcoin  |
| ETH    | 0x2170Ed0880ac9A755fd29B2688956BD959F933F8 |  Ethereum  |
| DOGE   | 0xba2ae424d960c26247dd6c32edc70b295c744c43 |      -     |
| ADA    | 0x3ee2200efb3400fabb9aacf31297cbdd1d435d47 |   Cadano   |
| DOT    | 0x7083609fce4d1d8dc0c979aab8c869ea2c873402 |  Polkadot  |
| BUSD   | 0xe9e7cea3dedca5984780bafc599bd69add087d56 | Stablecoin |
| USDC   | 0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d |            |

Token อื่น ๆ สามารถดูได้จาก <https://bscscan.com/tokens>&#x20;

**Swap Router**&#x20;

| Router       | Contract Address                           | URL                            |
| ------------ | ------------------------------------------ | ------------------------------ |
| Pancake Swap | 0x10ED43C718714eb63d5aA57B78B54704E256024E | <https://pancakeswap.finance/> |
| Ape Swap     | 0xcF0feBd3f17CEf5b47b0cD257aCf6025c5BFf3b7 | <https://apeswap.finance/>     |

**ตัวอย่าง**

```javascript
{
  ...,
  "network" : "BSC_MAINNET", 
  "tokenA" : "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", //BTCB
  "tokenB" : "0xe9e7cea3dedca5984780bafc599bd69add087d56", //BUSD
  "swapRouter" : "0x10ED43C718714eb63d5aA57B78B54704E256024E", //PancakeSwap Router 
  "gasSwapRouter" : "0x10ED43C718714eb63d5aA57B78B54704E256024E", //PancakeSwap Router
  ...
}
```

## **POLYGON\_ MAINNET**&#x20;

> Polygon (PoS) Chain

**Token**

| Symbol | Contract Address                           |   Remarks  |
| ------ | ------------------------------------------ | :--------: |
| WMATIC | 0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270 |      -     |
| USDC   | 0x2791bca1f2de4661ed88a30c99a7a9449aa84174 | Stablecoin |
| SOL    | 0x7dff46370e9ea5f0bad3c4e29711ad50062ea7a4 |   Solana   |
| AVAX   | 0x2c89bbc92bd86f8075d1decc58c7f4e0107f286b |            |

Token อื่น ๆ สามารถดูได้จาก <https://polygonscan.com/tokens>

**Swap Router**&#x20;

| Router     | Contract Address                           | URL                           |
| ---------- | ------------------------------------------ | ----------------------------- |
| Quick Swap | 0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff | <https://quickswap.exchange/> |

**ตัวอย่าง**

```javascript
{
  ...,
  "network" : "POLYGON_MAINNET", 
  "tokenA" : "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270", //WMATIC
  "tokenB" : "0x2791bca1f2de4661ed88a30c99a7a9449aa84174", //USDC
  "swapRouter" : "0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff", //Quickswap Router 
  "gasSwapRouter" : "0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff", //Quickswap Router
  ...
}
```

## **BITKUB\_ MAINNET**

> Bitkub Chain

**Token**

| Symbol | Contract Address                           |   Remarks  |
| ------ | ------------------------------------------ | :--------: |
| KKUB   | 0x67eBD850304c70d983B2d1b93ea79c7CD6c3F6b5 |      -     |
| kDAI   | 0xED7B8606270295d1b3b60b99c051de4D7D2f7ff2 | Stablecoin |

Token อื่น ๆ สามารถดูได้จาก <https://bkcscan.com/tokens>

**Swap Router**&#x20;

| Router | Contract Address                           | URL                           |
| ------ | ------------------------------------------ | ----------------------------- |
| Vonder | 0x54D851C39fE28b2E24e354B5E8c0f09EfC65B51A | <https://app.vonder.finance/> |

**ตัวอย่าง**

```javascript
{
  ...,
  "network" : "BITKUB_MAINNET", 
  "tokenA" : "0x67eBD850304c70d983B2d1b93ea79c7CD6c3F6b5", //KKUB
  "tokenB" : "0xED7B8606270295d1b3b60b99c051de4D7D2f7ff2", //kDAI
  "swapRouter" : "0x54D851C39fE28b2E24e354B5E8c0f09EfC65B51A", //Vonder Router 
  "gasSwapRouter" : "0x54D851C39fE28b2E24e354B5E8c0f09EfC65B51A", //Vonder Router
  ...
}
```

## หมายเหตุ

ก่อนที่จะใช้ Token ไหนกับ Swap Router ไหน ลองเปรียบเทียบราคาบนหน้าจอ iWallet กับ Exchange ต่าง ๆ ดูก่อน ว่าตรงกันหรือไม่ ถ้าต่างกันมาก ๆ Router นั้นอาจจะไม่ Support Token นั้นก็เป็นได้ แนะนำให้ลองเปลี่ยน Token หรือ Router ดู

## ข้อควรระวัง

* ให้ตรวจสอบ Token และ Router ก่อน Run Bot ให้เช็คดูก่อนว่า Network นั้น รองรับ Token และ Router ที่กำหนดหรือไม่ เพราะอาจจะ Run Bot ไม่ขึ้น (Error) ก็เป็นได้&#x20;
* และที่สำคัญ ให้ตรวจสอบให้ดีก่อนว่า Token และ Router ที่จะใช้ ไม่ใช่ Scam เพราะอาจทำให้โดนหลอกขโมย Token จนทำสูญเสีย Token / เงิน ได้ &#x20;


# การ Run Bot

การ Start ให้ Bot เริ่มทำงาน

หลังจากที่เราตั้งค่า Configuration ต่าง ๆ เสร็จเรียบร้อยแล้ว ต่อมา เรามา Start ให้ Bot เริ่มทำงานกันดีกว่า

## แบบ Simple

ให้ Run คำสั่ง Docker run ดังนี้

```bash
$ docker run -d \
  -p 8080:8080 \
  -v $PWD:/iwallet \
  --restart=always \
  --name iwallet ghcr.io/jittagornp/iwallet
```

**หมายเหตุ**&#x20;

* อย่าลืม Change Directory ให้อยู่ที่ Directory `iwallet` ที่เราสร้างไว้ก่อนหน้านี้ ก่อน Run คำสั่งน่ะ เพราะ Bot จะอ่านค่า Configuration ต่าง ๆ และเก็บข้อมูลต่าง ๆ ลงใน  Directory นี้&#x20;
* เวอร์ชัน Free เปลี่ยน Repository จาก  `ghcr.io/jittagornp/iwallet` เป็น `jittagornp/iwallet`

#### การเช็คว่า Bot ทำงานหรือไม่

ลองใช้คำสั่ง

```bash
$ docker ps -a
```

ถ้า Bot ทำงาน ตรง STATUS จะเป็น `Up` ดังนี้

```bash
CONTAINER ID   IMAGE                        COMMAND               CREATED       STATUS       PORTS                                   NAMES
e6599daa70d2   ghcr.io/jittagornp/iwallet   "sh /entrypoint.sh"   2 hours ago   Up 2 hours   0.0.0.0:80->8080/tcp, :::80->8080/tcp   iwallet
```

ลองดู Log การทำงานของ Container ด้วยคำสั่ง

```bash
$ docker logs -f iwallet
```

ถ้าจะออกจาก Log ให้กด Ctrl + c

#### เปิดหน้า UI

ลองเปิด Browser เช่น Google Chrome แล้วไปที่ URL [http://localhost:8080](http://localhost:8080/)

จะขึ้นเป็นหน้า Login แบบนี้ (ถ้าไม่ขึ้น ให้รอ 10 - 30 วินาที)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mhi6rDvg6rhiLpOUubF%2F-Mhi5fkksbkW0Steqdn9%2Flogin.png?alt=media\&token=d7ccc2af-c3cf-4806-8cdf-dcaca4bf4075)

ลอง Login ด้วย Your Secret เป็น `password` ดู

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mhi6rDvg6rhiLpOUubF%2F-MhiB50MJmIfeLQBLVqc%2Fimage.png?alt=media\&token=4bf8b3cb-40cf-4674-92a2-e3d92c07da4a)

## แบบ Advance

ให้ Run คำสั่ง Docker run ดังนี้

```bash
$ docker run -d \
  -p 8080:8080 \
  -v $PWD:/iwallet \
  -e IWALLET_DATABASE_USERNAME="<YOUR_DATABASE_USERNAME>" \
  -e IWALLET_DATABASE_PASSWORD="<YOUR_DATABASE_PASSWORD>" \
  -e IWALLET_APP_SECRET="<YOUR_APP_SECRET>" \
  -e IWALLET_ALLOW_DOMAINS="<YOUR_DOMAIN_NAME>" \
  --restart=always \
  --name iwallet ghcr.io/jittagornp/iwallet
```

**หมายเหตุ**&#x20;

* เวอร์ชัน Free เปลี่ยน Repository จาก  `ghcr.io/jittagornp/iwallet` เป็น `jittagornp/iwallet`&#x20;
* ถ้า Run ไม่ขึ้น ให้ลองลบ Directory database แล้วลอง Run ใหม่ดู (อาจจะเพราะมีการเปลี่ยน Database Username เลยทำให้ Start ไม่ขึ้น)&#x20;

#### คำอธิบาย

| Environment Variable        | Description                                                                                                                                                                                                                                                                   |  Default |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: |
| IWALLET\_DATABASE\_USERNAME | บัญชีผู้ใช้สำหรับเข้าถึงฐานข้อมูล                                                                                                                                                                                                                                             |  iwallet |
| IWALLET\_DATABASE\_PASSWORD | รหัสผ่านสำหรับเข้าถึงฐานข้อมูล                                                                                                                                                                                                                                                | password |
| IWALLET\_APP\_SECRET        | รหัสผ่านสำหรับเข้า Application (iWallet)                                                                                                                                                                                                                                      | password |
| IWALLET\_ALLOW\_DOMAINS     | <p>กำหนดให้เข้าถึงได้ผ่าน Domain Name ที่อนุญาตเท่านั้น <br>สามารถกำหนดได้หลาย Domains โดยใช้ <code>,</code> คั่น เป็น <code>domain1, domain2, domain3</code> Domain ต้องไม่มี <code>http</code> หรือ <code>https</code> นำหน้า เช่น <code>iwallet.jittagornp.me</code>  </p> |     -    |

## คำแนะนำ

ถ้าจะใช้งานจริง แนะนำให้&#x20;

**Run แบบ Advance และใช้ Two-Factor Authentication + LINE Notify ที่จะอธิบายในหัวข้อถัดไปด้วย เท่านั้น** \*\*

อย่าลืมกำหนด Secret/Password ต่าง ๆ ให้ปลอดภัย (Secure) ด้วยน่ะ


# Two-Factor Authentication

การตั้งค่า Two-Factor Authentication (2FA)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiGHNyNtkHyHme-Eq_J%2F-MiGInyWhKsFNDFHPsnC%2FiWallet_google-authenticator.png?alt=media\&token=c526e161-4c98-4fa8-9dfb-a4db1e561883)

## 1. สร้าง Secret Key

ใช้คำสั่ง `googleauth-gen` โดยพิมพ์คำสั่ง Docker run ดังนี้

```bash
$ docker run --rm -v $PWD:/iwallet ghcr.io/jittagornp/iwallet googleauth-gen
```

ตัวอย่าง

```bash
$ docker run --rm -v $PWD:/iwallet ghcr.io/jittagornp/iwallet googleauth-gen

Generating QR code and config...
Output QR code file "google-authenticator/qr.png"
Output config file "google-authenticator/config.json"

$ cat google-authenticator/config.json
{
  "secretKey" : "ZGYLMHUQUN4ZWNKKTSSFARNCGNGJTJON",
  "account" : "iwallet",
  "issuer" : "iWallet",
  "barcode" : "otpauth://totp/iWallet%3Aiwallet?secret=ZGYLMHUQUN4ZWNKKTSSFARNCGNGJTJON&issuer=iWallet",
  "qrcodeFile" : "qr.png"
}
```

**หมายเหตุ**

* เวอร์ชัน Free เปลี่ยน Repository จาก  `ghcr.io/jittagornp/iwallet` เป็น `jittagornp/iwallet`

ระบบจะสร้างไฟล์ขึ้นมาให้ 2 ไฟล์ได้แก่

* QR Code (google-authenticator/qr.png)
* Config File (google-authenticator/config.json)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhmvfZ3uKnLKA3fJdfW%2F-Mhmz29GTm17HWAVC5Lh%2Fimage.png?alt=media\&token=ad9374b8-c355-4876-8866-74c83884b5dc)

## 2. Mobile

ในฝั่งของ Mobile ให้เปิดโปรแกรม Google Authenticator &#x20;

จากนั้นให้ทำการ Scan QR Code ที่เราได้สร้างไว้ในข้อ 1 ก็เป็นอันเสร็จเรียบร้อย&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi-zzLtpq-NKW9mFTGE%2F-Mhn0sIla5JGQ6Ul7YIR%2Fgoogle-auth-1-1.png?alt=media\&token=e60eb024-ea83-461f-9db5-d4d0a24a125b)

ถ้าไม่สามารถ Scan QR Code ได้ ให้ใช้ Secret Key จากไฟล์ config.json ในข้อ 1 มากรอกเองดังนี้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi-zzLtpq-NKW9mFTGE%2F-Mhn1945Nt3xhXqYnCCh%2Fgoogle-auth-2-1.png?alt=media\&token=aae8cc91-7227-43db-8f81-24004772a025)

## 3. การ Run Bot

ตอน Run bot ให้เพิ่ม Environment Variable `IWALLET_GOOGLEAUTH_SECRET_KEY` นี้เข้าไปด้วย&#x20;

```bash
$ docker run -d \
  -p 8080:8080 \
  -v $PWD:/iwallet \
  -e IWALLET_DATABASE_USERNAME="<YOUR_DATABASE_USERNAME>" \
  -e IWALLET_DATABASE_PASSWORD="<YOUR_DATABASE_PASSWORD>" \
  -e IWALLET_APP_SECRET="<YOUR_APP_SECRET>" \
  -e IWALLET_ALLOW_DOMAINS="<YOUR_DOMAIN_NAME>"
  -e IWALLET_GOOGLEAUTH_SECRET_KEY="<YOUR_GOOGLEAUTH_SECRET_KEY>" \
  --restart=always \
  --name iwallet ghcr.io/jittagornp/iwallet
```

`IWALLET_GOOGLEAUTH_SECRET_KEY` กำหนดค่าเป็น Secret Key ที่ได้จากข้อ 1


# LINE Notify

การตั้งค่าการแจ้งเตือนทาง LINE

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiGIvajnu_1cfQ1AW7a%2F-MiGJRbrDvSZ0RRNLjat%2FiWallet_LINE-Notify.png?alt=media\&token=1481ea27-0fdf-44e0-94af-d6cff115f8d9)

## 1. สมัคร LINE Notify

สมัครได้ที่ลิงค์ <https://notify-bot.line.me/my/>

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhnChlssSfcQ_MEetXH%2F-MhnEgrVSo6Tln_pwarV%2Fline-notify-1.png?alt=media\&token=2d840c7b-104d-4cd3-b01f-c9e7fa949ae8)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhnChlssSfcQ_MEetXH%2F-MhnF1t_ViO87oSjd4nt%2Fimage.png?alt=media\&token=95ce2401-b12f-4fd3-a7ac-cee0418681e4)

## 2. ออก Token

2.1 คลิกที่ปุ่มออก Token

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhnChlssSfcQ_MEetXH%2F-MhnFh4D4klB7KKnVnIW%2Fline-notify-4.png?alt=media\&token=ac849e4a-efab-46bd-9c01-5ab76cda7d7d)

2.2 ตั้งชื่อ Token และคลิกที่ "รับการแจ้งเตือนแบบตัวต่อตัวจาก LINE Notify" หรือ "1-on-1 chat with LINE Notify" จากนั้นคลิกที่ปุ่มออก Token

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhnChlssSfcQ_MEetXH%2F-MhnGRRlv0T7c74IPrNg%2Fline-notify-5.png?alt=media\&token=8ef77308-9f1a-49cd-a772-4dae69213bec)

2.3 ให้ทำการ Copy Token นี้เก็บไว้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhnChlssSfcQ_MEetXH%2F-MhnHD4dUn0CAdOK-X62%2Fline-notify-6.png?alt=media\&token=611a29ee-a588-4729-96e7-b169218f0c71)

## 3. การ Run Bot

ตอน Run bot ให้เพิ่ม Environment Variable `IWALLET_LINE_NOTIFY_TOKEN` นี้เข้าไปด้วย

```bash
$ docker run -d \
  -p 8080:8080 \
  -v $PWD:/iwallet \
  -e IWALLET_DATABASE_USERNAME="<YOUR_DATABASE_USERNAME>" \
  -e IWALLET_DATABASE_PASSWORD="<YOUR_DATABASE_PASSWORD>" \
  -e IWALLET_APP_SECRET="<YOUR_APP_SECRET>" \
  -e IWALLET_ALLOW_DOMAINS="<YOUR_DOMAIN_NAME>"
  -e IWALLET_GOOGLEAUTH_SECRET_KEY="<YOUR_GOOGLEAUTH_SECRET_KEY>" \
  -e IWALLET_LINE_NOTIFY_TOKEN="<YOUR_LINE_NOTIFY_TOKEN>"
  --restart=always \
  --name iwallet ghcr.io/jittagornp/iwallet
```

`IWALLET_LINE_NOTIFY_TOKEN` กำหนดค่าเป็น Token ที่ได้จากข้อ 2.3


# โครงสร้าง File และ Directory

โครงสร้าง File และ Directory ของ iWallet

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi1YDDAvoS7QdK7WF9Q%2F-Mi1tVKAUZZNUR4UYzvL%2Ffile-structure.png?alt=media\&token=4c00046d-c894-4eca-bf2f-7850f289a612)

## iwallet

เป็น Root Directory ที่เอาไว้เก็บข้อมูลต่าง ๆ ของ iWallet เช่น&#x20;

* Wallet File (\*.wallet.json)&#x20;
* Configuration File (\*.config.json)&#x20;
* ฐานข้อมูล
* Log
* และอื่น ๆ&#x20;

## database

เป็น Directory ที่เอา ไว้เก็บไฟล์ฐานข้อมูล (Database File) ซึ่ง iWallet ใช้ฐานข้อมูลที่ชื่อว่า H2 ในการเก็บข้อมูลต่าง ๆ ภายใน Application &#x20;

## google-authenticator

เป็น Directory ที่เอาไว้เก็บข้อมูลเกี่ยวกับการทำ Two-Factor Authentication (2FA)

## log

เป็น Directory ที่เอาไว้เก็บไฟล์ Log ต่าง ๆ ที่เกิดขึ้นในแต่ละวัน


# การอัพเดทเวอร์ชัน

การอัพเดทเวอร์ชัน ไปเป็นเวอร์ชันล่าสุด

ให้ทำการ Pull Docker Image ลงไปใหม่ดังนี้&#x20;

```bash
$ docker pull ghcr.io/jittagornp/iwallet 
```

ตัวอย่าง

```bash
$ docker pull ghcr.io/jittagornp/iwallet 

Using default tag: latest
latest: Pulling from jittagornp/iwallet
33847f680f63: Already exists
47d5ef013a61: Already exists
0e6aa028937a: Already exists
cabac214cb3b: Already exists
92d414a4e202: Pull complete
6cb5591e9a8e: Pull complete
Digest: sha256:7f63dca10baed821c5d20a6a9b6cea8377cbe0a9e34408f4cbcab0a60d69e25e
Status: Downloaded newer image for ghcr.io/jittagornp/iwallet:latest
ghcr.io/jittagornp/iwallet:latest
```

**หมายเหตุ**

* เวอร์ชัน Free เปลี่ยน Repository จาก  `ghcr.io/jittagornp/iwallet` เป็น `jittagornp/iwallet`

Docker จะทำการดึง Image เวอร์ชันล่าสุด (Latest Image) ไปทับ Image เดิมที่เคยมี

จากนั้นก็ลบ Bot/Container (ลบแค่ Container น่ะ) ด้วยคำสั่ง

```bash
$ docker stop iwallet && docker rm iwallet
```

แล้ว Run ใหม่เหมือนเดิมกับตอนที่ [Run Bot](/installation/run-bot) ครั้งแรก

ถ้าไม่ได้ ลองลบ Image เก่าออกก่อน ด้วยคำสั่ง

```bash
$ docker rmi ghcr.io/jittagornp/iwallet
```

แล้วค่อย Pull Image ลงไปใหม่


# ความปลอดภัย

คำแนะนำเพิ่มเติมเกี่ยวกับความปลอดภัย

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiBfSffrmDPQ_BEKa2_%2F-MiAVigLfzV_qvvCNd7G%2Fsecurity.png?alt=media\&token=fcd33f41-fae7-4ea3-b930-a211e057f1ef)

ถ้า Run Bot ข้างนอก เช่น เปิด Server บน Cloud ขึ้นมา Run Bot iWallet โดยเฉพาะ อย่าลืมตั้งค่าความปลอดภัยให้กับ Server ดังนี้&#x20;

1. กำหนด Remote SSH (Secure Shell) ด้วย Key Pair (Private Key + Public Key) เท่านั้น ห้าม Remote ด้วย Username/Password
2. กำหนด Firewall อนุญาตให้เข้าถึง Server ได้เฉพาะ IP ที่กำหนดเท่านั้น
3. กำหนด Firewall อนุญาตให้เข้าถึง Server ได้เฉพาะ Port ที่กำหนดเท่านั้น เช่น Port 80, 443 หรือ 22 ส่วน Port อื่น ๆ ปิดให้หมด (Port 22 อาจจะเปลี่ยนไปใช้ Port อื่นก็ได้)
4. อย่าลืมทำ Https อาจจะใช้ Nginx + Let's Encrypt หรือใช้ Cloudflare ช่วยก็ได้
5. อย่ากำหนด Domain Name ให้เดา และเข้าถึงได้ง่าย&#x20;
   * อาจจะกำหนดเป็น Sub Domain Name ในการเข้าถึง Bot ด้วย UUID ก็ได้ เช่น `ae78b19c-0070-42b8-8763-6581551c69ed.mydomain.com`&#x20;
   * อย่าตั้งเป็นชื่อที่คนเดาได้ง่าย เช่น `iwallet.mydomain.com`&#x20;
   * ถ้ากลัวจำไม่ได้ ก็ให้ Bookmark ไว้&#x20;
6. ตั้งรหัสผ่านในการเข้าใช้งาน iWallet ให้ยากเข้าไว้&#x20;
7. อย่าลืมกำหนด Permission ให้กับไฟล์ต่าง ๆ เช่น กำหนดสิทธิ์เป็น&#x20;
   * chmod `600` สำหรับไฟล์ที่เจ้าของอ่าน และแก้ไขได้เท่านั้น หรือ
   * chmod `400` สำหรับไฟล์ที่เจ้าของอ่านได้เท่านั้น&#x20;
   * อย่ากำหนดเป็น chmod `777`  &#x20;
8. อย่าติดตั้ง Software ที่คิดว่าไม่น่าจะปลอดภัยเข้าไปรวมใน Server ที่ Run Bot
9. อย่าลืม Backup Wallet File และ Configuration File อื่น ๆ ก่อนใช้งานจริง&#x20;
10. อย่าเก็บ Token ที่มีมูลค่ามาก ๆ ไว้ใน iWallet Server เครื่องเดียว พยายามกระจายความเสี่ยงออกไปหลาย ๆ Server

อื่น ๆ ถ้าทำเพิ่มได้ก็จะดีมาก


# การใช้งาน Bot ครั้งแรก

เพื่อให้ Bot เริ่มทำ Rebalancing

เมื่อติดตั้ง และตั้งค่าต่าง ๆ ให้ Bot เสร็จเรียบร้อยแล้ว จะใช้ Bot ครั้งแรก มี 3 ขั้นตอนที่ต้องทำดังต่อไปนี้

## 1. เติม Gas&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi9e2YmoPMtmdPbGcNp%2F-Mi7Uj10m42P18ro7_Ls%2Ffill-gas.png?alt=media\&token=3ac1653f-bd57-41fb-a9ed-ef448d11b11b)

การเติม Gas คือ การโอน Gas Token จาก Wallet อื่น ๆ ใน Network เดียวกัน เข้ามายัง Wallet Address ที่เราจะใช้ Run Bot เช่น

* ถ้าเป็น Network BSC (Binance Smart Chain) ให้โอน `BNB` Token มายัง Wallet Address ที่จะใช้งาน
* ถ้าเป็น Network Polygon ให้โอน `MATIC` Token มายัง Wallet Address ที่จะใช้งาน
* ถ้าเป็น Network Bitkub ให้โอน `KUB` Token มายัง Wallet Address ที่จะใช้งาน

**คำถาม**&#x20;

ควรที่จะโอนมาเท่าไหร่

**คำตอบ**

โอนมาให้เพียงพอที่จะทำ Transaction แรก (Bot ใช้ในการเติม Gas ให้อัตโนมัติ) ได้ เช่น&#x20;

* Network BSC อาจจะโอนมาอย่างน้อย 0.002 BNB เป็นต้น
* Network Polygon อาจจะโอนมาอย่างน้อย 0.002 MATIC เป็นต้น
* Network Bitkub  อาจจะโอนมาอย่างน้อย 0.002 KUB เป็นต้น

หรือ อาจจะโอนมามากกว่านี้ก็ได้

สำหรับคนที่อยากเข้าใจเรื่อง Gas มากขึ้น ลองทำความเข้าใจจากวิดีโอนี้ดู

* <https://www.youtube.com/watch?v=gCn_1sQtfcg>

ขอขอบคุณเจ้าของวิดีโอมาก ๆ

## 2. โอน Token มายัง Wallet Address ที่สร้างไว้ใน iWallet &#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi9e2YmoPMtmdPbGcNp%2F-Mi7YBnay4mY3tyR8fsG%2Ftransfer-token.png?alt=media\&token=327bba46-b4ee-4e33-afda-f17e76280afc)

ถัดมา ทำการโอน Token A และ Token B ที่เลือกไว้ เข้ามาใน iWallet ตาม Wallet Address ที่สร้างไว้

## 3. ปล่อยให้ Bot ทำ Rebalance ให้

จากนั้นก็แค่รอเวลาให้ Bot ทำ Rebalance ให้ตามเงื่อนไขที่ตั้งไว้ ไม่ต้องทำอะไรเพิ่ม แค่รออย่างเดียว&#x20;

## ข้อควรระวัง

การโอน Token จาก Wallet อื่นมายัง iWallet แนะนำให้

1. เช็ค Token Address ต้นทาง และ Token Address ปลายทางก่อน ว่าเป็น Token Address ตัวเดียวกันจริง ๆ&#x20;
2. เช็ค Network ต้นทาง และ Network ปลายทาง โดยต้องเป็น Network เดียวกันเท่านั้น
3. เช็คความถูกต้องของ Wallet Address ว่าโอนมาถูก Address แล้วจริง ๆ

เพราะถ้าทำผิด **จะไม่สามารถกู้คืน Token ที่โอนผิดได้**&#x20;

## คำแนะนำ

* แนะนำให้ลองโอนน้อย ๆ เพื่อเช็คความถูกต้องดูก่อน ว่าโอนได้จริงมั้ย และทำ Rebalance ได้จริงมั้ย&#x20;
* แนะนำให้โอน Token B (Stablecoin) มาก็พอแล้ว แล้วให้ Bot ทำ Rebalance ให้
  * Bot จะนำ Token B ส่วนนึงไปเติม Gas (ถ้า Gas เหลือน้อย) และ
  * นำ Token B ส่วนนึงไปซื้อ/แลกเปลี่ยน (Swap) เป็น Token A ให้เองโดยอัตโนมัติ  ตามเงื่อนไขที่ตั้งไว้


# คู่มือการใช้งาน

คำอธิบายหน้าจอต่าง ๆ ของ iWallet

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiH6SgzrEJcvuMko7S3%2F-Mhn93vO02h7_CojS7Iq%2Fbot-site-map.png?alt=media\&token=3229d8f2-99e3-4218-b47d-ae22e0021297)

* [เข้าสู่ระบบ/ออกจากระบบ](/manual/login-logout)
* [หน้า Home](/manual/home-page)
* [หน้า Rebalancing](/manual/rebalancing-page)
* [หน้า History](/manual/history-page)
* [หน้าโอน Token](/manual/transfer-page)
* [รูปแบบข้อความ LINE Notify](/manual/line-notify-message)


# เข้าสู่ระบบ/ออกจากระบบ

คู่มือการ Login/Logout iWallet

## หน้าจอเข้าสู่ระบบ&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi1MqptDoxA7n0yJSN8%2F-MhsVefideatfrJWhtSc%2Flogin-page-2.png?alt=media\&token=c0c4b9b5-dc52-4ce2-98a4-bed679d28b5d)

## การเข้าสู่ระบบ (Login)

การเข้าสู่ระบบให้ผู้ใช้กรอก Your Secret ที่ได้กำหนดไว้ใน Environment variable `IWALLET_APP_SECRET` ตอน Run Bot พร้อมกับ Google Authenticator Code (กรณีที่เปิด Two-Factor Authentication) จาก  Google Authenticator Application&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhsrUtIGIMJlPIqX44S%2F-Mhs_YAc9wMOx0ukIMph%2Fmanual-login.png?alt=media\&token=9435e4a6-a2a1-4433-ad30-4749fe86aea2)

* ถ้ากรอกข้อมูลอย่างใดอย่างนึงผิด จะขึ้นข้อความ "Invalid secret or code" ดังรูปที่ 1
* ถ้ากรอกข้อมูลถูก ระบบจะเปลี่ยนหน้าจอไปเป็นหน้า Home ดังรูปที่ 3

## การออกจากระบบ (Logout)

ให้ผู้ใช้ไปที่หน้า Home แล้วคลิกที่ปุ่ม Logout ระบบจะเปลี่ยนหน้าจอไปเป็นหน้า Login ดังรูป

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhsrUtIGIMJlPIqX44S%2F-Mhsom17FuAw9LrtV439%2Fmanual-logout.png?alt=media\&token=ed19a7dd-f4d7-4a37-89f5-83ec5d1df4c1)


# หน้า Home

คู่มือหน้าหลัก/หน้าแรก หลังจาก Login สำเร็จ

## ภาพรวม

![ภาพแสดงหน้า Home ของ iWallet](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MhsrUtIGIMJlPIqX44S%2F-MhssPS9eUaQcukPVNQV%2Fmanual-home-page.png?alt=media\&token=1315a222-5187-4e70-9d43-193d45e3b9a3)

**คำอธิบาย**

1. ปุ่มออกจากระบบ (Logout)  ถ้าคลิกที่ปุ่มนี้ จะกลับไปที่หน้า Login&#x20;
2. ข้อมูลสรุปจำนวนรวมมูลค่า Token ที่ผู้ใช้ถืออยู่ แยกเป็นหน่วย (Symbol) ของ Token B (ไม่ได้แยก Network)
3. ชื่อ Network (Blockchain Network)
4. รายการกระเป๋า หรือ Wallet แต่ละ Wallet ที่ผู้ใช้ถืออยู่ ภายใต้ Network นั้น ๆ (มีกี่ Wallet ก็ได้)

ถ้าคลิกที่แต่ละ Wallet (หมายเลข 4) ระบบจะเปลี่ยนหน้าจอไปที่หน้า Rebalancing ของ Wallet นั้น ๆ ดังรูปที่ 3

## Wallet

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi1L5goHXSIjX_plWs4%2F-Mhswhsr51jovn6-ufLa%2Fmanual-wallet-item.png?alt=media\&token=c3ab564d-3360-47c9-b4de-78e9c1da2a27)

**คำอธิบาย**

1. คู่เหรียญ Token A (BTCB) และ Token B (BUSD) ที่ผู้ใช้เลือกไว้สำหรับ Wallet นี้
2. สถานะของ Wallet นี้ว่าเปิดให้ Bot ทำ Rebalance ให้หรือไม่&#x20;
   * สีเขียว คือ Running (Bot กำลังทำงานอยู่ / เปิดให้ Bot ทำ Rebalance ให้)
   * สีเทา คือ Pause (Bot พักอยู่ / Bot ไม่ต้องทำ Rebalance ให้)
3. Wallet Address&#x20;
4. Gas Balance หรือ Gas ที่เหลืออยู่ สำหรับ Wallet นี้
5. มูลค่าของ Token ใน Wallet นี้ หน่วย (Symbol) จะเป็นของ Token B
6. ราคาของ Token A ต่อ Token B
7. เปอร์เซ็นต์กำไร / ขาดทุน ของ Wallet นี้ &#x20;


# หน้า Rebalancing

คู่มือหน้า Rebalancing

![ภาพแสดงหน้า Rebalancing](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiHCqFGE9xBB2jV63II%2F-Mhxi3vmtXBrQK84FNUz%2Fmanual-rebalancing-page.png?alt=media\&token=c4c31f3c-50d5-4658-8fe7-a2a2283bdccb)

**คำอธิบาย**

1. ปุ่ม Back เมื่อคลิกที่ปุ่มนี้ จะกลับไปที่หน้า Home
2. สถานะของ Wallet นี้ว่าเปิดให้ Bot ทำ Rebalance ให้หรือไม่&#x20;
   * สีเขียว คือ Running (Bot กำลังทำงานอยู่ / เปิดให้ Bot ทำ Rebalance ให้)
   * สีเทา คือ Pause (Bot พักอยู่ / Bot ไม่ต้องทำ Rebalance ให้)
3. ข้อความแสดงสถานะของ Wallet นี้ว่าเปิดให้ Bot ทำ Rebalance ให้หรือไม่ พร้อมกับเวลาล่าสุดที่ Bot พึ่งเช็คการทำ Rebalance ไป (ปกติจะเช็คทุก ๆ 10 นาที)
4. ปุ่มสำหรับสั่งพัก (Pause) หรือ สั่งให้ Bot ทำงานต่อ (Resume)
5. ปุ่ม History ถ้าคลิกที่ปุ่มนี้ จะไปที่หน้า History (หน้าแสดงประวัติการทำ Rebalance และประวัติการโอน Token)
6. ปุ่ม Copy สำหรับใช้คัดลอก (Copy) Wallet Address นี้&#x20;
7. ข้อมูล Network และ Wallet Address อย่างย่อของ Wallet นี้
8. ข้อมูล Gas
   * Gas Price คือ ราคา Gas ปัจจุบันที่ใช้ใน Network นี้ หน่วยเป็น Gwei
   * Gas Balance คือ จำนวน Gas ที่เหลืออยู่สำหรับ Wallet นี้
9. มูลค่าของ Token ใน Wallet นี้ หน่วย (Symbol) จะเป็นของ Token B
10. จำนวนของ Token A และ Token B ที่ Wallet นี้มี
11. เปอร์เซ็นต์กำไร / ขาดทุน ของ Wallet นี้&#x20;
12. ปุ่ม Transfer ถ้าคลิกที่ปุ่มนี้ จะไปที่หน้า Transfer (หน้าสำหรับโอน Token ออกจาก Wallet นี้ ไปยัง Wallet อื่น)
    * ปุ่มนี้จะสามารถใช้งานได้ก็ต่อเมื่อมีการตั้งค่า Two-Factor Authentication และ LINE Notify แล้วเท่านั้น
13. ราคาของ Token A ต่อ Token B  &#x20;
14. เงื่อนไขในการทำ Rebalanace&#x20;
    * จากภาพ คือ Token A กับ Token B ต้องมีมูลค่าต่างกันอย่างน้อย 10 % ถึงจะทำ Rebalance ให้
15. เงื่อนไขในการซื้อ/ขาย หรือแลกเปลี่ยน (Swap)&#x20;
    * จากภาพจะซื้อ/ขาย ที่ 50% ของมูลค่า (ข้อ 14) ที่แตกต่างกัน&#x20;
    * ตัวอย่าง เช่น Token A กับ Token B ต่างกัน 12% ก็ใช้ 50% (ครึ่งนึง) ของ 12% ที่ต่างกันนั้นมาซื้อ/ขาย เป็นต้น
16. เงื่อนไขในการซื้อ/ขาย หรือแลกเปลี่ยน (Swap)&#x20;
    * ต้องซื้อ/ขายเป็นอย่างน้อยตามมูลค่าที่ตั้งไว้ เช่น ต้องซื้อ/ขาย อย่างน้อย 1 BUSD (เพื่อไม่ให้เปลือง Gas)
17. มูลค่าของ Token A (หน่วยเป็น Token B) ใน Wallet นี้&#x20;
18. มูลค่าของ Token B ใน Wallet นี้
19. รูปสัญลักษณ์ (Icon) Token A
20. รูปสัญลักษณ์ (Icon) Token B
21. เปอร์เซ็นต์มูลค่าของ Token A
22. เปอร์เซ็นต์มูลค่าของ Token B&#x20;
23. เปอร์เซ็นต์มูลค่าที่ต่างกันของ Token A และ Token B  ณ ขณะนั้น&#x20;
24. มูลค่าที่รอปรับ (รอทำ Rebalance)


# หน้า History

หน้าแสดงประวัติต่าง ๆ

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiH8AWm73-53Ow96MtW%2F-MiBLDzq9_CuxZKOAnas%2Fmanual-history-page.png?alt=media\&token=cf325ed3-8486-433b-9604-de53941568cb)

**คำอธิบาย**

1. ปุ่ม Back เมื่อคลิกที่ปุ่มนี้ จะกลับไปที่หน้า Rebalancing
2. ข้อมูล Network และ Wallet Address อย่างย่อของ Wallet นี้
3. แท็บ History สามารถดูข้อมูล History ได้ 2 อย่าง ได้แก่
   * Rebalance คือ ประวัติการทำ Rebalance ที่ผ่านมา
   * Transfer คือ ประวัติการโอน Token เข้า/ออก iWallet&#x20;
4. จำนวนประวัติทั้งหมดในแท็บนั้น
5. รายการประวัติต่าง ๆ ในแท็บนั้น

## แท็บ Rebalance

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiBSgK-0_0IhIltErVH%2F-MiBPl8Blm_ZYp9pSL1D%2Fmanual-rebalancing-history.png?alt=media\&token=e58663e9-35e2-41d0-a96e-786c61643e89)

**คำอธิบาย**

1. ประเภทการทำ Rebalance มี 2 ประเภท ได้แก่
   * SELL (สีแดง) คือ ขาย Token A ไปเป็น Token B
   * BUY (สีเขียว) คือ ซื้อ Token A ด้วย Token B&#x20;
2. มูลค่าที่ซื้อ/ขาย Token A ในตอนนั้น หน่วย (Symbol) จะเป็นของ Token B
3. วัน/เวลา ที่ ซื้อ/ขาย
4. จำนวน และ มูลค่าของ Token A ก่อนทำ Rebalance
5. จำนวน และ มูลค่าของ Token B ก่อนทำ Rebalance
6. จำนวน และ มูลค่าของ Token A หลังทำ Rebalance
7. จำนวน และ มูลค่าของ Token B หลังทำ Rebalance
8. มูลค่ารวม ของ Wallet ณ ขณะนั้น หน่วย (Symbol) จะเป็นของ Token B &#x20;

## แท็บ Transfer

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiHGs51JmUK6es1cRMc%2F-MiBZpdDKB2KbgL-peVY%2Fmanual-transfer-history.png?alt=media\&token=94eed96e-db95-4256-a759-12e4ae2daa97)

**คำอธิบาย**

1. ประเภทการโอน (Transfer) มี 2 ประเภท ได้แก่
   * IN (สีเขียว) คือ โอนเข้ามายัง iWallet
   * OUT (สีแดง) คือ โอนออกจาก iWallet
2. วัน/เวลา ที่ทำการโอน
3. Wallet Address ต้นทางที่โอน Token
4. Wallet Address ปลายทางที่ได้รับ Token
5. &#x20;จำนวน และมูลค่า Token ที่โอน
6. มูลค่ารวม ของ Wallet ณ ขณะนั้น หน่วย (Symbol) จะเป็นของ Token B&#x20;

**หมายเหตุ**

พื้นหลัง (Background) สีขาว กับพื้นหลังสีเหลืองอ่อน ต่างกันตรงที่

* พื้นหลังสีขาว คือ Wallet โอนไปยัง Smart Contract หรือ Smart Contract โอนไปยัง Wallet&#x20;
  * รายการแบบนี้จะมีรูปไอคอน (Icon) Wallet แค่ด้านเดียว
* พื้นหลังสีเหลืองอ่อน คือ Wallet โอนไปยัง Wallet &#x20;
  * รายการแบบนี้จะมีรูปไอคอน (Icon) Wallet ทั้ง 2 ด้าน (ทั้งฝั่งผู้โอนและผู้รับ)


# หน้าโอน Token

การโอน Token ไปยัง Address อื่น ๆ

## ระบุข้อมูลการโอน

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiGqlbcO4Rh_HIaNqjI%2F-MiGqN0SBZpM5ePCUoUJ%2Fmanual-transfer-1.png?alt=media\&token=45d432a0-be2b-4b14-a7ed-580ea52dc50a)

**คำอธิบาย**

1. ปุ่ม Back เมื่อคลิกที่ปุ่มนี้ จะกลับไปที่หน้า Rebalancing
2. ข้อมูล Network และ Wallet Address อย่างย่อของ Wallet นี้
3. รายการ Token ที่ต้องการโอนของ Wallet นี้ สามารถโอนได้แค่ 3 Tokens เท่านั้น ได้แก่
   * Gas Token เช่น BNB, MATIC, KUB และอื่น ๆ (ถ้ามี)
   * Token A ที่ผู้ใช้เลือกไว้&#x20;
   * Token B ที่ผู้ใช้เลือกไว้&#x20;
4. จำนวนที่ต้องการโอน
5. ปุ่ม Max ถ้าคลิกที่ปุ่มนี้ จะเป็นการนำจำนวน Token จากข้อ 3 ทั้งหมดมาโอน
6. ที่อยู่ผู้รับ (Recipient)
   * ต้องเป็น Address ใน Network เดียวกันกับ Wallet นี้เท่านั้น เช่น ถ้า Wallet นี้อยู่ใน Network BSC ปลายทาง (ผู้รับ) ก็ต้องเป็น BSC ด้วย ไม่สามารถเป็นคนละ Network กันได้
   * Default จะสามารถเลือกโอนไปยัง Address อื่น ๆ ที่อยู่ใน iWallet ได้เท่านั้น
   * แต่ถ้าต้องการโอนไปยัง Address อื่น ๆ ที่ไม่ได้อยู่ใน iWallet (โอนออกจาก iWallet) ให้ดูการตั้งค่าที่หน้า [การโอน Token ออกจาก iWallet](/transfer/out)
7. เมื่อเลือก และกรอกข้อมูลต่าง ๆ เสร็จแล้ว ให้คลิกที่ปุ่ม Next เพื่อไปยังหน้าถัดไป
   * ถ้าเลือก หรือกรอกข้อมูลไม่ถูกต้อง ก็จะมีการแจ้งเตือนให้แก้ไข เช่น
   * "Invalid token"  ไม่ได้เลือก Token หรือ Token ไม่ถูกต้อง
   * "Invalid Amount" จำนวนไม่ถูกต้อง
   * "Insufficient amount" จำนวน Token ไม่เพียงพอ (กรอกไม่ถูก หรือเกินจำนวนที่มีอยู่)
   * "Invalid Recipient" ไม่ได้เลือกที่อยู่ผู้รับ หรือที่อยู่ผู้รับไม่ถูกต้อง

## ยืนยันการโอน (Confirm)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiGzhaWdfoMUac_J2Oj%2F-MiGqVloG6jIXmanD-nv%2Fmanual-transfer-2.png?alt=media\&token=e51c5dec-c7bd-4179-9d68-1ac78c63e957)

**คำอธิบาย**

1. ปุ่ม Back เมื่อคลิกที่ปุ่มนี้ จะกลับไปที่หน้า Transfer
2. ข้อมูล Network และ Wallet Address อย่างย่อของ Wallet นี้
3. ข้อมูลสรุปก่อนทำการโอน ได้แก่
   * From - โอนจากไหน
   * Amount - โอนจำนวนเท่าไหร่
   * To - โอนไปที่ไหน&#x20;
   * Network - Network ปลายทางที่จะโอนไป
4. จากนั้นให้กรอก Your Secret (รหัสที่ใช้ Login) เพื่อยืนยันการโอน
5. ปุ่ม Get OTP เมื่อคลิกที่ปุ่มนี้ ระบบจะสร้างรหัส OTP เป็นตัวเลข 6 หลักส่งไปให้ทาง LINE Application ให้ผู้ใช้ทำการเปิด LINE แล้วคัดลอก (Copy) OTP ไว้
6. นำ OTP มากรอกในช่อง OTP (LINE)&#x20;
7. กรอก Google Authenticator Code จาก Google Authenticator Application
8. ถ้าต้องการยกเลิกการโอน ให้คลิกที่ปุ่ม Cancel
9. ถ้าต้องการยืนยันการโอน ให้คลิกที่ปุ่ม Confirm&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiGqE69vLWsslqhWu9u%2F-MiGqcamI2XQDdaDi_eh%2Fmanual-transfer-3.png?alt=media\&token=7294c417-0939-4f5e-ab8e-954cfb27cc72)

* ถ้ากรอกข้อมูลต่างๆ ไม่ถูกต้องจะแสดงข้อความ "Invalid Secret or OTP or Code" คือ กรอกข้อมูลอย่างใดอย่างหนึ่งผิด&#x20;
* ถ้าขึ้น "Transfer Success" คือ การโอนเสร็จเรียบร้อยแล้ว&#x20;
  * ให้รอสักครู่ ระบบจะเปลี่ยนไปยังหน้า Rebalancing&#x20;
  * จำนวน Token ใน Wallet จะลดลง (เพราะถูกโอนไปยังที่อื่นแล้ว)&#x20;

**หมายเหตุ**&#x20;

ถ้าโอนแล้ว จำนวน Token ใน Wallet ไม่ลดลง ให้รอ 1-3 นาที เพื่อให้ Transaction นั้นทำงานเสร็จสมบูรณ์ก่อน แล้วค่อยทำอย่างอื่นต่อไป&#x20;

## คำแนะนำ

ให้ลองโอนด้วยจำนวนน้อย ๆ เพื่อทดสอบดูก่อน ว่าสามารถโอนไปยังปลายทางที่เราต้องการได้จริงมั้ย เมื่อโอนได้ ค่อยโอนเต็มจำนวนตามที่เราอยากจะโอนอีกที

## คำเตือน

ถ้าโอนผิดอาจจะไม่สามารถกู้คืน Token ที่โอนไปแล้วได้ ดังนั้นก่อน Confirm ให้ตรวจสอบข้อมูลดี ๆ&#x20;


# รูปแบบข้อความ LINE Notify

รูปแบบข้อความที่ iWallet แจ้งเตือนผ่านทาง LINE Notify

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijBDlsVVBX8H1S7g68%2F-MijCKc8Kql1FgvodA7_%2FLINE-Notify-message.png?alt=media\&token=a949a8a2-dfbf-4c5b-b7bd-f5e91aeb05a6)

มีทั้งหมด 3 รูปแบบ ได้แก่

1. Rebalance&#x20;
2. Transfer
3. OTP

## Rebalance

หน้าตาข้อความจะเป็นแบบนี้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mij88t2qkjFXC_ec3Y5%2F-Mij8YXE79o6R1XtaMJ3%2FLINE_rebalance.png?alt=media\&token=198fec4f-d38f-4ecc-8f4d-5f830e674e98)

**คำอธิบาย**&#x20;

* เกิด Rebalance ขึ้นที่ Wallet ไหน เช่น&#x20;
  * \[BSC]\[0xbaxx...xxxx] หรือ&#x20;
  * \[BSC]\[0x0dxx...xxxx] เป็นต้น&#x20;
* เป็น Rebalance ประเภทอะไร&#x20;
  * BUY - ซื้อ
  * SELL - ขาย
* BUY/SELL (ซื้อ/ขาย) Token อะไร มูลค่าเท่าไหร่&#x20;
  * ตัวอย่างรูปที่ 1 คือ BUY ADA มูลค่า 3.52106 BUSD
  * ตัวอย่างรูปที่ 2 คือ SELL ETH มูลค่า 1.59179 BUSD
* และหลังจากเกิด Rebalance แล้ว Token A และ Token B เหลือเท่าไหร่&#x20;

  * ตัวอย่างรูปที่ 1 ก่อนทำ Rebalance มี 2.81871 ADA หลังทำ Rebalance มี  3.98563 ADA ตอนนั้น ADA ราคา 3.00062 BUSD
  * ตัวอย่างรูปที่ 1 ก่อนทำ Rebalance มี 15.50000 BUSD หลังทำ Rebalance มี 11.97894 BUSD&#x20;
  * ตัวอย่างรูปที่ 2 ก่อนทำ Rebalance มี 0.00870 ETH หลังทำ Rebalance มี 0.00827 ETH ตอนนั้น ETH ราคา 3,738.01255 BUSD
  * ตัวอย่างรูปที่ 2 ก่อนทำ Rebalance มี 29.33138 BUSD หลังทำ Rebalance มี 30.95615 BUSD

## Transfer

&#x20;หน้าตาข้อความจะเป็นแบบนี้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mij88t2qkjFXC_ec3Y5%2F-Mij8Q_DO7KYBs7WciJl%2FLINE_transfer2.png?alt=media\&token=a2804f28-357f-459e-b07b-826213564aa3)

**คำอธิบาย**

* เกิด Transfer (การโอน) ขึ้นที่ Wallet ไหน เช่น
  * \[BSC]\[0xbaxx...xxxx] หรือ
  * \[BSC]\[0x0dxx...xxxx] เป็นต้น
* เป็น Transfer ประเภทอะไร
  * IN - โอนเข้า
  * OUT โอนออก
* &#x20;โอนจากไหนไปไหน จำนวนเท่าไหร่ และมูลค่าเท่าไหร่
  * ตัวอย่างรูปที่ 1 โอนจาก "Binance Hot Wallet 7" ไปยัง Address "0xbaxx...xxxx" จำนวน 15.50000 BUSD มูลค่า 15.50000 BUSD
  * ตัวอย่างรูปที่ 2 โอนจาก Address "0x0dxx...xxxx" ไปยัง Address "0x74xx...xxxx" จำนวน 8.00000 BUSD มูลค่า 8.00000 BUSD

## OTP

หน้าตาข้อความจะเป็นแบบนี้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mij8chehRBdtf3ToXdo%2F-Mij9Qjwdtb4-DtgxKOH%2FLINE_OTP2.png?alt=media\&token=f1981cde-ba90-4201-9835-8cc4574733ae)

**คำอธิบาย**

* Wallet ไหนต้องการรหัส OTP เช่น
  * Wallet \[BSC]\[0x2axx...xxxx] ต้องการ OTP
* รหัส OTP (One Time Password) คือ 468432&#x20;


# การติดตั้งลงบน Desktop และ Mobile

การติดตั้ง iWallet ลงบน Desktop และ Mobile

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mijal7uJqCYUjpaL2X5%2F-MijbOcT0GakFHhm0KNr%2FPWA-logo.png?alt=media\&token=1b8e2809-5f3e-43ce-8cf0-d0563d28cdc1)

iWallet เป็น Bot ที่ทำงานในลักษณะของ Web Application ที่สามารถติดตั้งลงบน Desktop และ Mobile ได้ โดยใช้ Feature PWA (Progressive Web App) ดังนี้&#x20;

**หมายเหตุ**

ก่อนที่จะใช้ Feature PWA ได้ จะต้องมีการตั้งค่าและเปิดการใช้งาน Https แล้วเท่านั้น สามารถอ่านรายละเอียดเพิ่มเติมได้ที่หน้า [ความปลอดภัย](/security)

## การติดตั้งลงบน Desktop&#x20;

ขอยกตัวอย่างด้วย **macOS**

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijbThs5TFoT3BXQugv%2F-MikJhjZ3zYsWNMSMjB7%2FPWA_google-chrome.png?alt=media\&token=437d49eb-d136-484e-b093-f20a5bbaef84)

1\. เปิด Browser Google Chrome ขึ้นมา จากนั้นไปที่ Domain Name ที่เราติดตั้ง Bot ไว้ สมมติว่าเป็น `https://ad643b8e-32ac-41b0-bb1f-7b8f07e6aa10.mydomain.com` ดังรูป

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijIDg-oybfMgh-eUoj%2F-MijNEmmlUAW8Jeym0-I%2FPWA_install-to-desktop-1.png?alt=media\&token=48880546-23d4-4ba6-8086-3698306d4ec7)

2\. เอาเมาส์ไปคลิกที่ Address Bar ของ Browser จะปรากฏเป็นไอคอน Install App ขึ้นมา ให้คลิกที่ไอคอนนั้น แล้วคลิกที่ปุ่ม Install ดังรูป

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijZVFEJhlQJciniMVB%2F-MijYs2RixEgLj5DlEl5%2FPWA.png?alt=media\&token=d79c4c36-02ab-4ca3-a370-e199737d2332)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijIDg-oybfMgh-eUoj%2F-MijNnM581aOFFJnmtB1%2FPWA_install-to-desktop-2.png?alt=media\&token=c05bf4f1-dfb6-4677-8366-9be855394510)

3\. iWallet จะถูกติดตั้ง เป็น Desktop Application&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijRpvrAWgECRezliHN%2F-MijS-aXdTnq3F-gR_oI%2FPWA_install-to-desktop-3.png?alt=media\&token=c3d09f25-690c-4ce3-b0c8-8749a40fe94c)

4\. เมื่อคลิกที่ไอคอน iWallet ก็จะเป็นการเปิดใช้งาน Application เหมือนกับ Desktop Application อื่น ๆ

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijRpvrAWgECRezliHN%2F-MijSQU2Fv37xL-p5d9c%2FPWA_install-to-desktop-4.png?alt=media\&token=45c9634b-177b-48b2-aaf5-da602e4cddca)

**หมายเหตุ**

ระบบปฏิบัติการ (Operating System) อื่น ๆ ก็ทำเช่นเดียวกัน&#x20;

## การติดตั้งลงบน Mobile (iPhone)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijbThs5TFoT3BXQugv%2F-MikJCeE99PJtgkFRMWK%2FPWA_safari.png?alt=media\&token=7953f7ee-ecbc-47fa-b149-76130148a62f)

เปิด Browser Safari ขึ้นมา จากนั้นไปที่ Domain Name ที่เราติดตั้ง Bot ไว้ สมมติว่าเป็น `https://ad643b8e-32ac-41b0-bb1f-7b8f07e6aa10.mydomain.com` ดังรูป

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijbThs5TFoT3BXQugv%2F-MikHrrGEOY8VQhKfAnR%2FPWA_Mobile-1.png?alt=media\&token=6e030563-2336-451b-8996-2292b5a96b14)

ถัดมา

1. คลิกที่ปุ่ม Share&#x20;
2. คลิกที่เมนู เพิ่มไปยังหน้าจอโฮม (Add to Home Screen)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MijbThs5TFoT3BXQugv%2F-MikJy1I-nbRgt0KLsJ7%2FPWA_Mobile-2.png?alt=media\&token=d32d938c-9f47-4e42-b36d-edb905d07e61)

3\. คลิกที่ปุ่มเพิ่ม (Add) จะปรากฎเป็นไอคอน iWallet อยู่ที่หน้าจอ&#x20;

เมื่อคลิกที่ไอคอน iWallet ก็จะเข้าสู่ Application&#x20;

## การติดตั้งลงบน Mobile (Android)

TODO


# การโอน Token

การโอน Token เข้า/ออก iWallet

## โอนเข้า iWallet

* [การโอน Token จาก MetaMask มายัง iWallet](/transfer/metamask-to-iwallet)
* [การโอน Token จาก Binance มายัง iWallet](/transfer/binance-to-iwallet)
* [การโอน Token จาก Satang Pro มายัง iWallet](/transfer/satang-pro-to-iwallet)

## โอนออกจาก iWallet

* [การโอน Token ออกจาก iWallet](/transfer/out)


# การโอน Token จาก MetaMask มายัง iWallet

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjIK0sxwalHmKFtrMK1%2F-MjILBH9KAh105__Plvb%2Ftransfer-from-metamask-to-iwallet.png?alt=media\&token=361c0b4b-c4b9-4005-ba46-dec45f6db5d6)

## คำเตือน

* Token ต้นทาง (จาก MetaMask) ที่จะโอนต้องเป็น Token Address เดียวกัน และ Network ที่จะโอนต้องเป็น Network เดียวกันกับ Wallet ที่ใช้ใน iWallet เท่านั้น แนะนำให้ตรวจสอบดี ๆ ก่อนทำการโอน เพราะถ้าโอนผิด จะไม่สามารถกู้คืน Token ได้
* ให้ลองโอนด้วยจำนวนน้อย ๆ ดูก่อน ว่าโอนได้จริงมั้ย แล้วค่อยโอนก้อนใหญ่ ๆ อีกที

## ตัวอย่าง

ขอยกตัวอย่างด้วยการโอน Token BUSD บน BSC (Binance Smart Chain) จาก MetaMask มายัง iWallet

BUSD (Binance-Peg BUSD) Token Address คือ

```
0xe9e7cea3dedca5984780bafc599bd69add087d56
```

## ที่ iWallet

1\. ให้ทำการคัดลอก (Copy) Wallet Address ที่จะโอนเก็บไว้ โดยการคลิกที่ปุ่ม Copy ดังรูป&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjJ9dItJN-6oQPtxJts%2F-MjK2bF8nEY9sypSjwEp%2Ftransfer-from-metamask-to-iwallet-1.png?alt=media\&token=8945d36c-1094-4df2-92e8-837c9508e485)

## ที่ MetaMask

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjJ9dItJN-6oQPtxJts%2F-MjK2pIK_9NUCYHZLb-i%2Ftransfer-from-metamask-to-iwallet-2.png?alt=media\&token=0b4f2d75-246c-458e-8b95-cdcc0a8e4cde)

2\. ให้คลิกที่ Token ที่ต้องการโอน ในที่นี้คือ BUSD

3\. แล้วคลิกที่ปุ่ม Send เพื่อทำการส่ง / โอน  Token ไปยัง Wallet Address ที่ต้องการ

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjK2tfJxdNQG7Q3lyyA%2F-MjKV9f4772JI3eFBSDm%2Ftransfer-from-metamask-to-iwallet-3.png?alt=media\&token=7bf13971-eafc-4859-bef7-d4bd32e1de2c)

4\. จากนั้นให้วาง Wallet Address ที่ได้คัดลอกไว้จากข้อ 1. ลงไปในช่อง Address ที่ต้องการโอน Token ไปให้

5\. ระบุจำนวนที่ต้องการโอน ถ้าต้องการโอนทั้งหมด ให้คลิกที่ปุ่ม Max

6\. คลิกที่ปุ่ม Next

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjK2tfJxdNQG7Q3lyyA%2F-MjKVVFqUglpdJiEMqwM%2Ftransfer-from-metamask-to-iwallet-4.png?alt=media\&token=b72ac0e6-2d8d-4e8c-8cc3-65dcf3b69a46)

7\. อ่านรายละเอียด/สรุปรายการโอน จากนั้นคลิกที่ปุ่ม Confirm

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjKX7nzdAKu3xW3DHeR%2F-MjKY-Xx5SMy5goX9crW%2Ftransfer-from-metamask-to-iwallet-5.png?alt=media\&token=ba2006da-1b8d-4563-8da8-50b4fc732ab2)

รอจนกว่าจะโอนเสร็จ&#x20;

## กลับมาที่ iWallet

รอประมาณ 3 - 5 นาที ก็จะมี Token BUSD ถูกโอนเข้ามาใน iWallet ตาม Wallet Address ที่เรากำหนดไว้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjKX7nzdAKu3xW3DHeR%2F-MjKYWTl7rFG3A7cTDsH%2Ftransfer-from-metamask-to-iwallet-6.png?alt=media\&token=0f1e8aa5-a3e1-420e-9e2c-dac2c945eb0c)


# การโอน Token จาก Binance มายัง iWallet

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjILEprOJOuhPoNf6F1%2F-MjILdSnI1zFdmWtZxrI%2Ftransfer-from-binance-to-iwallet.png?alt=media\&token=2fc62aa4-090e-45d1-bf03-fd16323b6ee3)

## คำเตือน

* Token ต้นทาง (จาก Binance) ที่จะโอนต้องเป็น Token Address เดียวกัน และ Network ที่จะโอนต้องเป็น Network เดียวกันกับ Wallet ที่ใช้ใน iWallet เท่านั้น แนะนำให้ตรวจสอบดี ๆ ก่อนทำการโอน เพราะถ้าโอนผิด จะไม่สามารถกู้คืน Token ได้
* ให้ลองโอนด้วยจำนวนน้อย ๆ ดูก่อน ว่าโอนได้จริงมั้ย แล้วค่อยโอนก้อนใหญ่ ๆ อีกที

## ตัวอย่าง

ขอยกตัวอย่างด้วยการโอน Token BUSD บน BSC (Binance Smart Chain) จาก [Binance](https://www.binance.com) มายัง iWallet

BUSD (Binance-Peg BUSD) Token Address คือ

```
0xe9e7cea3dedca5984780bafc599bd69add087d56
```

## ที่ iWallet

1\. ให้ทำการคัดลอก (Copy) Wallet Address ที่จะโอนเก็บไว้ โดยการคลิกที่ปุ่ม Copy ดังรูป&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNnrFVCR5gGm3BNww5%2Ftransfer-from-binance-to-iwallet-1.png?alt=media\&token=d042522e-e192-4287-8e54-293d07df2a27)

## ที่ Binance

2\. ให้ไปที่ [หน้า Fiat และ Spot](https://www.binance.com/th/my/wallet/account/main) แล้วคลิกที่ปุ่มถอน (Withdraw) ของเหรียญที่ต้องการโอน ในที่นี้คือ BUSD

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNo2MStgvTW4P1BZlm%2Ftransfer-from-binance-to-iwallet-2.png?alt=media\&token=84d6ad33-e657-4531-9ba2-dd2bf2c11d0b)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNoSKK5iDn3VfIIP8d%2Ftransfer-from-binance-to-iwallet-3.png?alt=media\&token=6a5b35ee-07f6-4d83-b5a6-22c7734d80ca)

จากนั้นให้ระบุ

3\. "Address" ที่จะโอน เป็น Wallet Address ที่คัดลอกไว้จากข้อ 1.

4\. "Network" เลือกเป็น **BSC** Binance Smart Chain (BEP20)

5\. "จำนวน" ที่ต้องการโอน (อย่างน้อย 10 BUSD)  ถ้าต้องการโอนทั้งหมด ให้คลิกที่ปุ่ม สูงสุด

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNo_-gIL_-9aiOQaww%2Ftransfer-from-binance-to-iwallet-4.png?alt=media\&token=a0bd18aa-0b20-4b26-a62a-e697c1f262b4)

6\. จากนั้นคลิกที่ปุ่มถอน (Withdraw) จะมี  Dialog แสดงข้อมูลการโอนให้ผู้ใช้อ่านรายละเอียด

7\. คลิกที่ปุ่มยืนยัน (Confirm)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNp7mZLd6ehiMKso_w%2Ftransfer-from-binance-to-iwallet-5.png?alt=media\&token=48c3e714-c9c7-49d5-9712-6685ed2d5df9)

8\. คลิกที่ปุ่ม ดำเนินการต่อ (Continue)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNpHkok0q6INf_owya%2Ftransfer-from-binance-to-iwallet-6.png?alt=media\&token=6efb5a22-bd12-4ebb-a7dc-821d2732b960)

จะแสดง Dialog ให้กรอกข้อมูลต่าง ๆ เพื่อยืนยันการโอน

9\.  กรอก "รหัสยืนยันผ่านโทรศัพท์"

10\. กรอก "รหัสยืนยันผ่านอีเมล"

11\. กรอก "Google Authenticator Code"

12\.  จากนั้นคลิกที่ปุ่ม ตกลง (OK)

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNpSa2e0N_E1LyFodP%2Ftransfer-from-binance-to-iwallet-7.png?alt=media\&token=ff9d061f-a760-46da-ad26-f0ac1b697f39)

13\. ระบบจะแสดง Dialog ว่า กำลังรอการอนุมัติ ให้คลิกที่ปุ่ม ดำเนินการ

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNqAE9WLCd8v76YjX-%2Ftransfer-from-binance-to-iwallet-8.png?alt=media\&token=d6dafba6-66da-4f8f-82fb-e85d81d16430)

จากนั้นก็รอให้สถานะการโอน เปลี่ยนจาก Processing ไปเป็น Completed&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNqUsU-O8LKO4sU412%2Ftransfer-from-binance-to-iwallet-9.png?alt=media\&token=afbfaf62-f7be-4418-8fdd-486190aacee6)

ก็เป็นอันว่า โอนเสร็จเรียบร้อย

## กลับมาที่ iWallet

รอประมาณ 3 - 5 นาที ก็จะมี Token BUSD ถูกโอนเข้ามาใน iWallet ตาม Wallet Address ที่เรากำหนดไว้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjNmAsRi0MP7urS9hdO%2F-MjNqmArlpuv2BXcnSqD%2Ftransfer-from-binance-to-iwallet-10.png?alt=media\&token=3a2fc8aa-7b22-41f1-862b-4b1aafbf7233)


# การโอน Token จาก Satang Pro มายัง iWallet

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjILgstgMqcrzieaHW9%2F-MjILzK_MlJAHv7jVFuS%2Ftransfer-fram-satang-pro-to-iwallet.png?alt=media\&token=6a88497b-93f2-4df3-b74c-0cab2491f546)

## คำเตือน

* Token ต้นทาง (จาก Satang Pro) ที่จะโอนต้องเป็น Token Address เดียวกัน และ Network ที่จะโอนต้องเป็น Network เดียวกันกับ Wallet ที่ใช้ใน iWallet เท่านั้น แนะนำให้ตรวจสอบดี ๆ ก่อนทำการโอน เพราะถ้าโอนผิด จะไม่สามารถกู้คืน Token ได้
* ให้ลองโอนด้วยจำนวนน้อย ๆ ดูก่อน ว่าโอนได้จริงมั้ย แล้วค่อยโอนก้อนใหญ่ ๆ อีกที

## ตัวอย่าง

ขอยกตัวอย่างด้วยการโอน Token BUSD บน BSC (Binance Smart Chain) จาก [Satang Pro](https://satang.pro) มายัง iWallet

BUSD (Binance-Peg BUSD) Token Address คือ

```
0xe9e7cea3dedca5984780bafc599bd69add087d56
```

## ที่ iWallet

1\. ให้ทำการคัดลอก (Copy) Wallet Address ที่จะโอนเก็บไว้ โดยการคลิกที่ปุ่ม Copy ดังรูป&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjIs3MrsNHW8VDoUXa-%2F-MjIrkJt1KO0m7lhOhxB%2Ftransfer-from-satang-pro-to-iwallet-1.png?alt=media\&token=791ddf28-d414-48a3-a3e5-b3eadbca4362)

## ที่ Satang Pro&#x20;

2\. ไปที่ [หน้ายอดคงเหลือ (Balance)](https://satangcorp.com/exchange/th/balances) แล้วคลิกที่ปุ่มถอน (Withdraw) ของเหรียญที่ต้องการโอน ในที่นี้คือ BUSD

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjIs3MrsNHW8VDoUXa-%2F-MjIuQ_uw5Y3l5mfD8gq%2Ftransfer-from-satang-pro-to-iwallet-2.png?alt=media\&token=1e0db5e5-7e6e-4524-ae15-049786426088)

จากนั้นให้ระบุ&#x20;

3\. "เครือข่าย" (Network) ที่จะโอน เป็น Binance Smart Chain - BEP20 (BSC)

4\. "ที่อยู่เครือข่าย Binance Smart Chain ของผู้รับ" เป็น Wallet Address ที่คัดลอกไว้จากข้อ 1.

5\. "จำนวน" ที่จะโอน (อย่างน้อย 10 BUSD)  ถ้าต้องการโอนทั้งหมด ให้คลิกที่ปุ่ม ทั้งหมด

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjIv9vqIuvJ85_YNTIt%2F-MjIxEqlAuWm9GHdA5hM%2Ftransfer-from-satang-pro-to-iwallet-3.png?alt=media\&token=1f00e432-f595-4c8c-b961-5e3799b0c832)

6\. จากนั้นคลิกที่ปุ่มถอน (Withdraw) จะมี  Dialog แสดงข้อมูลการโอนให้ผู้ใช้อ่านรายละเอียด

7\. คลิกที่ปุ่มถอน (Withdraw) อีกครั้ง เพื่อยืนยันการถอน

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjIv9vqIuvJ85_YNTIt%2F-MjJ0AvemMEHZVBSH52C%2Ftransfer-from-satang-pro-to-iwallet-4.png?alt=media\&token=dd3bd1bc-ab67-4152-b0bc-e83a2d58d8ec)

8\. จะแสดง Dialog ให้กรอก Google Authenticator Code ดังรูป

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjIv9vqIuvJ85_YNTIt%2F-MjJ14FUebOpyxSHx9MR%2Ftransfer-from-satang-pro-to-iwallet-5.png?alt=media\&token=743c7ed6-734a-42af-904f-dc9357ba5b08)

9\. เมื่อกรอก Google Authenticator Code เสร็จ ให้ไปที่อีเมล (Email) เพื่อยืนยันการถอน Token

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjIv9vqIuvJ85_YNTIt%2F-MjJ1l2KRmZDwPj82XuD%2Ftransfer-from-satang-pro-to-iwallet-6.png?alt=media\&token=dfcaa27d-d58a-4830-a951-c56f4ff5bcd4)

เปิดอีเมล ไปที่อีเมล \[Satang Pro] Withdrawal Confirmation ...

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjJ2BxkfYI3fC6aLCII%2F-MjJ4DT7VR2ABwdjJscg%2Ftransfer-from-satang-pro-to-iwallet-7.png?alt=media\&token=ed23bcc1-7d67-4dc3-806b-d5e375d59515)

10\. คลิกที่ปุ่ม Confirm Withdraw เพื่อยืนยันการถอนอีกครั้ง

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjJ2BxkfYI3fC6aLCII%2F-MjJ59KZAlQ8lnJeZ_eH%2Ftransfer-from-satang-pro-to-iwallet-8.png?alt=media\&token=4682472d-3b88-4093-812c-a94364606c2e)

ทำการโอน/ถอน Token เสร็จเรียบร้อย

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjJ2BxkfYI3fC6aLCII%2F-MjJ5v_PHBLGjL6_Kv5T%2Ftransfer-from-satang-pro-to-iwallet-9.png?alt=media\&token=ad87bb2e-e26d-4d44-a402-5952cec8b8a3)

## กลับมาที่ iWallet

รอประมาณ 3 - 5 นาที ก็จะมี Token BUSD ถูกโอนเข้ามาใน iWallet ตาม Wallet Address ที่เรากำหนดไว้

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjJ2BxkfYI3fC6aLCII%2F-MjJ6UTH50ojzUOVPUsB%2Ftransfer-from-satang-pro-to-iwallet-10.png?alt=media\&token=a78de487-873b-419c-9e3f-6df769e2397b)


# การโอน Token ออกจาก iWallet

การโอน Token ไปยัง Wallet Address อื่น ๆ ที่ไม่ได้อยู่ใน iWallet

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjI8VzfgAaOZp-mQ9KM%2F-MjIJvFRzK3U24jW0t4k%2Ftransfer-out-image.png?alt=media\&token=7814a74d-61f0-4571-bc4b-e1a51dc4e8fb)

ปกติ iWallet จะไม่อนุญาตให้โอน Token ไปยัง Wallet Address อื่น ๆ ที่อยู่นอก iWallet ทั้งนี้ก็เพื่อความปลอดภัย เพื่อป้องกันไม่ให้ใครสามารถโอน Token ไปยัง Wallet ที่ไม่ใช่ของผู้ใช้ได้ (ป้องกันการขโมย Token)

แต่ถ้าผู้ใช้อยากให้สามารถโอน Token ไปยัง Wallet Address อื่น ๆ ที่อยู่นอก iWallet ได้ ให้ทำดังนี้

## 1. กำหนด Whitelist ผู้รับ

Whitelist คือ การกำหนดรายการ Wallet Address ปลายทางที่เชื่อถือได้ (Trust Address) ที่อนุญาตให้ iWallet สามารถโอน Token ไปให้ได้

ที่ Configuration File (.config.json) ของแต่ละ Wallet ให้ Config Whitelist ดังนี้

```javascript
{
  
  ...
  ...
  
  "recipientWhitelist" : [
     {
        "name" : "Wallet 1",
        "address" : "0x1111111111111111111111111111111111111111"
     },
     {
        "name" : "Wallet 2",
        "address" : "0x2222222222222222222222222222222222222222"
     },
     {
        "name" : "Wallet 3",
        "address" : "0x3333333333333333333333333333333333333333"
     }
  ]
}
```

**คำอธิบาย**

| Attribute | Description                                                                                     |
| --------- | ----------------------------------------------------------------------------------------------- |
| name      | ชื่อ Wallet ปลายทางที่จะโอนไป (ตั้งว่าอะไรก็ได้ แล้วแต่ผู้ใช้)                                  |
| address   | ที่อยู่ Wallet ปลายทางที่จะโอนไป (ต้องเป็นที่อยู่ใน Network เดียวกันกับ Wallet ต้นทางเท่านั้น ) |

**ตัวอย่าง**

0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.config.json

```javascript
{
  "walletFile" : "0x7fe5999fd513deae43d19dd0ab3cce8491ed6440.wallet.json",
  "walletPassword" : "123456",
  "network" : "POLYGON_MAINNET",
  "tokenA" : "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270", //WMATIC
  "tokenB" : "0x2791bca1f2de4661ed88a30c99a7a9449aa84174", //USDC
  "minimumGasBalance" : 0.005,
  "fillGasTokenBAmount" : 3,
  "swapRouter" : "0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff", //Quickswap Router
  "gasSwapRouter" : "0xa5e0829caced8ffdd4de3c43696c57f7d7a678ff", //Quickswap Router
  "defaultSwapSlippage" : 0.5,
  "defaultSwapDeadlineMinutes" : 10,
  "tokenAutoApproveMultiplier" : 3.0,
  "differenceAtLeastPercent" : 9,
  "swapPercent" : 50.0,
  "swapAtLeastValue" : 1,
  "recipientWhitelist" : [
    {
      "name" : "MetaMask",
      "address" : "0x22203d22226d34D333333333C65Ad7ADa2111111"
    }  
  ]
}
```

แค่นี้ก็จะสามารถโอนไปยัง Wallet Address `0x22203d22226d34D333333333C65Ad7ADa2111111` ซึ่งอยู่นอก iWallet ได้แล้ว

**หมายเหตุ**

Whitelist Address ที่จะโอนไป จะต้องอยู่ใน Network เดียวกันกับ Wallet Address ต้นทางเท่านั้น ถ้าเป็นคนละ Network กัน อาจทำให้ Token ที่โอนไปสูญหายได้ (กู้คืนไม่ได้) ตอน Config ให้ตรวจสอบดี ๆ

## 2. โอน Token

จากนั้นก็โอน Token ที่ [หน้าโอน Token](/manual/transfer-page) ปกติเหมือนโอนไปยัง Wallet Address อื่น ๆ&#x20;


# การย้ายจากตัว Free มาใช้ตัว Pro

การย้ายจากตัว Free มาใช้ตัวเสียตังค์

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MjIUXRcqhJTrN6S_1i9%2F-MjIVKy-_7bSKr_N3fXO%2Fmigrate-from-free-to-pro.png?alt=media\&token=c6c07a40-e9d6-47ef-a4bf-b461cfd0f1f3)

มีเรื่องที่ต้องปรับ และทำความเข้าใจดังนี้&#x20;

1. เมื่อ Run Bot (ใช้ Docker Image) ตัว Free แล้วเปลี่ยนมาใช้ตัว Pro สามารถใช้ Configuration เดิม และ  Database File เดิมได้ แต่
2. ตัว Free ไม่มี Feature Transfer History (ดูประวัติการโอน) ถ้าย้ายจากตัว Free มาใช้ตัว Pro ประวัติการโอน และตัวเลขกำไร/ขาดทุน (ของมูลค่า Token) จะเพี้ยน เพราะไม่ใช่มูลค่าจริง ณ ขณะนั้น ทางแก้คือ Gen Wallet ใหม่แล้วโอน Token ทั้งหมดไปใส่ Wallet ใหม่
3. ถ้าเสียตังค์ซื้อตัว Pro จะครอบคลุมถึงเรื่องความรับผิดชอบ และการชดเชยค่าเสียหายที่ได้อธิบายไว้ในหน้า [ราคาและเงื่อนไข](/pricing#undefined-1) ตัวฟรีหรือไม่เสียตังค์ซื้อ จะไม่ครอบคลุมส่วนนี้
4. ถ้าเสียตังค์ซื้อตัว Pro จะสามารถ Request เข้า Facebook Group เพื่อพูดคุย สอบถาม และได้รับการ Support จากผู้พัฒนา การ Request เข้า Facebook Group สามารถอ่านรายละเอียดเพิ่มเติมได้ที่หน้า [Facebook Group](/facebook-group)


# ลิขสิทธิ์

ลิขสิทธิ์และทรัพย์สินทางปัญญาของ iWallet

iWallet เป็น Bot หรือโปรแกรมอัตโนมัติ ที่เอาไว้ซื้อ/ขาย แลกเปลี่ยนเหรียญ (Digital Token) บน DeFi (Decentralized Finance) โดยใช้ Concept Rebalancing แบบ 50:50&#x20;

จัดทำขึ้นโดย นาย จิตกร พิทักษ์เมธากุล ลิขสิทธิ์และทรัพย์สินทางปัญญาทั้งหมด ถือว่าเป็นของ นาย จิตกร พิทักษ์เมธากุล แต่เพียงผู้เดียว ในที่นี้ขอเรียกว่า "ผู้พัฒนา"

iWallet มี 2 เวอร์ชัน

* สำหรับเวอร์ชัน Free ผู้พัฒนาไม่อนุญาตให้ทำการคัดลอก ทำซ้ำ ดัดแปลง (ไม่ว่าจะส่วนใดส่วนหนึ่ง หรือทั้งหมด) ไม่อนุญาตให้นำไปจำหน่าย ขายต่อ โดยไม่ได้รับอนุญาต แต่อนุญาตให้สามารถนำไปแจกจ่าย และใช้

  งานได้ฟรีโดยไม่เสียค่าใช้จ่ายใด ๆ ทั้งสิ้น แต่จะไม่ได้ครอบคลุมถึงเรื่องความรับผิดชอบ และการชดเชยค่าเสียหายที่ได้อธิบายไว้ในหน้า [ราคาและเงื่อนไข](/pricing#undefined-1)
* สำหรับเวอร์ชัน Pro ผู้พัฒนาไม่อนุญาตให้ทำการคัดลอก ทำซ้ำ ดัดแปลง (ไม่ว่าจะส่วนใดส่วนหนึ่ง หรือทั้งหมด) ไม่อนุญาตให้นำไปแจกจ่าย จำหน่าย ขายต่อ หากฝ่าฝืน จะถือว่าเงื่อนไขข้อตกลงที่ได้อธิบายไว้ในหน้า [ราคาและเงื่อนไข](/pricing#undefined-1) นั้นเป็นโมฆะ&#x20;

สำหรับผู้ที่นำ iWallet ไปแจกจ่าย จำหน่าย ขายต่อโดยไม่ได้รับอนุญาตจากผู้พัฒนา  ทางผู้พัฒนาจะขอแจ้งความดำเนินคดีทางกฏหมายต่อผู้นั้นอย่างถึงที่สุด

นาย จิตกร พิทักษ์เมธากุล

ผู้พัฒนา&#x20;


# Facebook Page

Facebook Page

สามารถติดตามข่าวสาร และการอัพเดทข้อมูลต่าง ๆ  ของ iWallet ได้ที่  &#x20;

* <https://www.facebook.com/iwallet.jittagornp.me>

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-MiAYK6Hv4kQ1VjoO6xd%2F-MiAixh9KonR0ait_SKh%2Ffacebook-page.png?alt=media\&token=2c604dc9-ecb4-4852-8249-7fce51624da4)


# Facebook Group

สำหรับคนที่ใช้ iWallet Pro สามารถเข้าไป Join ที่ Facebook Group นี้เพื่อสอบถาม หรือพูดคุยเกี่ยวกับ iWallet ได้

<https://www.facebook.com/groups/372370927898053>

ขอสงวนสิทธิ์สำหรับผู้ใช้ iWallet Pro เท่านั้น&#x20;

![](https://972085701-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MhfoWNADLmnfzSLjYjS%2F-Mi6X8-wRMrj6yxWYWLk%2F-Mhgc4bbBCn4_fwJh06J%2Frequest-to-facebook-group.png?alt=media\&token=4892415d-026d-419e-b125-752be1ee1e9d)


# FAQ

คำถามที่พบบ่อย

#### 1. เราสามารถ Gen Wallet สูงสุดได้กี่ Wallet

ตอนนี้สามารถ Gen Wallet เท่าไหร่ก็ได้ iWallet ไม่ได้จำกัดไว้ &#x20;

**2. เราสามารถใช้ 1 Wallet ทำ Rebalance หลาย Token ได้มั้ย**&#x20;

ทำไม่ได้&#x20;

1 Wallet สามารถใช้ทำ Rebalance Token ได้แค่  1 คู่ (2 Tokens) เท่านั้น ถ้าต้องการทำมากกว่า 1 คู่ ให้สร้าง Wallet ใหม่ แล้วกำหนดเป็นคู่ Token ใหม่&#x20;

**3. Token A และ Token B เราสามารถตั้งค่าสลับกันได้มั้ย**

จริง ๆ ทำได้ แต่แนะนำให้ใช้&#x20;

* `Token A` เป็น Token ที่ไม่ใช่ Stablecoin&#x20;
* ส่วน `Token  B` แนะนำให้ใช้เป็น Token ที่เป็น Stablecoin&#x20;

เพื่อให้ดูเข้าใจง่าย และเวลา Bot เอา Token B ไปซื้อ Gas จะได้ใช้เป็น Stablecoin ซื้อ ซึ่งจะทำให้ซื้อ Gas ได้ง่ายกว่า เพราะบาง DEX (Decentralized Exchange) อาจจะไม่ได้รองรับการซื้อ Gas ด้วย Token ที่เราเอาไปซื้อก็ได้

#### 4. ทำไมราคา Token ใน iWallet ถึงไม่เท่ากับ Exchange ข้างนอก (ต่างกันนิดหน่อย)

iWallet ทำงานร่วมกับ DeFi (Decentralized Finance) การเช็คราคา Token จะไปเช็คที่ DEX (Decentralized Exchange) ดังนั้นจึงต่างจากราคาบน Exchange (CEX : Centralized Exchange)  ทั่ว ๆ ไป เพราะวิธีการรักษาราคา/มูลค่าของ Token บน DEX และ CEX นั้นแตกต่างกัน

การเช็คราคา Token ขึ้นอยู่กับผู้ใช้ ว่าจะให้ Bot วิ่งไปเช็คราคาจาก DEX ไหน (Swap Router ไหน) ปกติแล้วราคาก็จะใกล้เคียงกัน ไม่ได้ต่างกันมาก ซึ่งถ้าผู้ใช้เห็นว่า DEX  ไหนให้ราคาคู่ Token นั้นดีกว่า ก็สามารถเปลี่ยน Swap Router Address  ไปใช้ตัวอื่นแทนได้ แต่ทั้งนี้ ก็ต้องตรวจสอบให้มั่นใจก่อนว่า Swap Router จาก DEX นั้นปลอดภัย เชื่อถือได้ ไม่ได้หลอกลวง (Scam) เพราะอาจทำให้ผู้ใช้สูญเสีย Token/เงิน ไปเปล่า ๆ แนะนำให้เช็คราคา (ใช้ Swap Router) จาก DEX ที่เชื่อถือได้เท่านั้น

#### 5. ทำไมโอน Token เข้าไปใน iWallet แล้ว Bot ไม่ทำ Rebalance ให้ทันที ต้องรอนานแค่ไหน

ปกติ Bot จะทำการเช็ค Rebalance ทุก ๆ 10 นาที ให้รอประมาณ 10 นาทีก่อน แล้วค่อยดูใหม่อีกครั้ง

#### 6. มีบางครั้ง ที่อยู่ดี ๆ มูลค่าของ Token ใน Wallet ก็หายไป มันหายไปไหน&#x20;

จริง ๆ มูลค่ารวมของ Token ใน Wallet อาจจะไม่ได้หายไปไหน อาจจะเป็นเพราะ Bot มีการหัก `Token B` ส่วนหนึ่งไปเติม Gas (เพราะเห็นว่า Gas เหลือน้อยกว่าที่ผู้ใช้ตั้งค่าไว้)&#x20;

ส่วนเรื่องตัวเลขมูลค่า Token ที่หายไป&#x20;

เพราะ Bot จะไม่เอามูลค่าของ Gas มารวมกับมูลค่าของ `Token A` และ `Token B` เลยทำให้ผู้ใช้เห็นว่ามูลค่าของ Token ที่มีอยู่นั้นลดลง ซึ่งจริง ๆ แล้ว ก็ไม่ได้ลดลงมาก แค่เปลี่ยนไปอยู่ในรูปแบบของ Gas เท่านั้น

#### 7. บางคู่ Token ที่กำหนดไป เหมือน Bot จะไม่ทำ Rebalance ให้ พอดู  Log ก็พบว่ามี Error เกิดขึ้น

อาจเป็นเพราะคู่ Token กับ Swap Router ที่ใช้ ไม่รองรับกันและกัน คือ DEX (Decentralized Exchange) นั้น ไม่มีคู่ (Pool) Token นั้นให้แลกเปลี่ยน (Swap) ก็ได้ พอแลกไม่ได้ ก็เลยมี Error เกิดขึ้น ต้องลองหา Swap Router ที่รองรับคู่ Token นั้นดูอีกที

#### 8. ทำไมถึงไม่สามารถโอน Gas Token ทั้งหมดออกจาก iWallet ได้

การทำ Transaction ต่าง ๆ บน DeFi จะต้องใช้ Gas เพื่อทำ Transaction ดังนั้น Bot จะจอง  Gas ส่วนหนึ่งไว้ เพื่อทำ Transaction สุดท้าย ซึ่งอาจจะทำให้เหลือ Gas ค้างอยู่ใน iWallet นิดหน่อย ประมาณ 0.00006-0.00008&#x20;

####


