# Send Platform Coin

### 1. Request.sendCoin <a href="#id-1.-request.sendcoin" id="id-1.-request.sendcoin"></a>

**Parameters**

<table><thead><tr><th width="183">Name</th><th width="178.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td>chainId</td><td>number</td><td>Chain ID of the particular network</td></tr><tr><td>appName</td><td>string</td><td>Name that will appear when sending platform coin in FAVORLE app</td></tr><tr><td>transactions</td><td>object array</td><td>Information required to transfer platform coins (see below for details)</td></tr></tbody></table>

**transactions object contains**

<table><thead><tr><th width="183">Name</th><th width="178.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td>from</td><td>string</td><td>Address to send platform coin</td></tr><tr><td>to</td><td>string</td><td>Address to receive platform coin</td></tr><tr><td>value</td><td>string</td><td>전송할 코인의 양 Amount of coin to send</td></tr></tbody></table>

**Response**

<table><thead><tr><th width="183">Name</th><th width="178.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td>requestId</td><td>string</td><td>ID to track the operation or transaction request</td></tr><tr><td>expiredAt</td><td>number</td><td>The amount of time (in seconds) that an operation or transaction request expires.</td></tr></tbody></table>

**Example**

```javascript
import { Request } from "favorlet.js";

const response = await Request.sendCoin({
  chainId: 8217, // 해당 체인 id
  appName: "BlockChainApp", // FAVORLET 앱에 노출
  transactions: [
    {
      from: "0x{address in hex}", // 코인을 전송할 주소
      to: "0x{address in hex}", // 코인을 받을 주소
      value: "1000000000000000000", // 전송할 코인의 양
    },
  ],
});

console.log(response);
/*
{
  requestId: "56ba790c-aceb-465b-a6f2-33d103b25596",
  expiredAt: 1667891675
}
*/
```

### 2. createDeepLink <a href="#id-2.-createdeeplink" id="id-2.-createdeeplink"></a>

**Parameters**

<table><thead><tr><th width="185">Type</th><th>Description</th></tr></thead><tbody><tr><td>string</td><td>requestId received when requesting</td></tr></tbody></table>

**Response**

<table><thead><tr><th width="185">Type</th><th>Description</th></tr></thead><tbody><tr><td>string</td><td>DeepLink to the request page in FAVORLET app</td></tr></tbody></table>

**Example**

```javascript
import { createDeepLink } from "favorlet.js";

const deepLink = createDeepLink(response.requestId); // Request를 통해 받은 requestId

/*
- PC: 생성된 deepLink를 qrcode 라이브러리를 이용하여 QR 생성 후 스마트폰으로 스캔
- Mobile: window.location.href 등을 사용하여 생성된 deepLink로 직접 이동
*/
console.log(deepLink);
// https://app.favorlet.link/?requestId=56ba790c-aceb-465b-a6f2-33d103b25596
```

### 3. receipt <a href="#id-3.-receipt" id="id-3.-receipt"></a>

```javascript
import { receipt } from "favorlet.js";

const result = await receipt(response.requestId); // Request를 통해 받은 requestId

console.log(result);
/*
- status에 따라 이후 분기 처리

### requested
{
  requestId: "56ba790c-aceb-465b-a6f2-33d103b25596",
  expiredAt: 1667891675,
  action: "sendCoin",
  transactions: [
    { status: "requested" }
  ]
}

### executed
{
  requestId: "56ba790c-aceb-465b-a6f2-33d103b25596",
  expiredAt: 1667891675,
  action: "sendCoin",
  transactions: [
    { status: "executed" }
  ]
}

### canceled
{
  requestId: "56ba790c-aceb-465b-a6f2-33d103b25596",
  expiredAt: 1667891675,
  action: "sendCoin",
  transactions: [
    { 
      status: "canceled",
      txHash: null,
      errorMessage: null
    }
  ]
}

### failed
{
  requestId: "56ba790c-aceb-465b-a6f2-33d103b25596",
  expiredAt: 1667891675,
  action: "sendCoin",
  transactions: [
    { 
      status: "failed",
      txHash: "0x5a4e16cfe0c21c3cd20456340b8614f585d951d9b931b515b11575d08142a6e2",
      errorMessage: "execution reverted : invalid id"
    }
  ]
}

### succeed
{
  requestId: "56ba790c-aceb-465b-a6f2-33d103b25596",
  expiredAt: 1667891675,
  action: "sendCoin",
  transactions: [
    { 
      status: "succeed",
      txHash: "0x5a4e16cfe0c21c3cd20456340b8614f585d951d9b931b515b11575d08142a6e2",
      errorMessage: null
    }
  ]
}
*/
```


---

# Agent Instructions: Querying This Documentation

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

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

```
GET https://docs.favorlet.io/english/dev/app2app/send.md?ask=<question>
```

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

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