# v1.4.7

## Release Date

Nov 6th 2025 07:00 in UTC

## Note

* npm: <https://www.npmjs.com/package/@linenext/dapp-portal-sdk/v/1.4.7>
* cdn: <https://static.kaiawallet.io/js/dapp-portal-sdk-1.4.7.js>

#### What's improved

* OA Promotion Phase 3 Support

### OA Promotion Phase 3 Guide

<figure><img src="https://3579085597-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FjuuhQ1BuKwYKE7NR6geM%2Fuploads%2F0LC9jNgDh4S0sW4jMbTS%2FOA%20Promotion%20Phase3.png?alt=media&#x26;token=9f01c4da-3766-4fc3-b9cd-81011d47d117" alt=""><figcaption></figcaption></figure>

Please refer to the following guide and proceed with the additional development and information submission.

**Additional Development**

* Event Provider Callback (`DappPortalSDK.getEventProvider()`)
* Dapp Server REST API Implementation

**Required Information Submission**

* API URL (**required**)
* Custom Header (**optional**)

#### DappPortalSDK.getEventProvider()

Event Provider Callback for Mini Dapp Mission Completion

* The purpose of this callback method is to verify mission completion on Dapp Portal side and automatically display a success banner when verification is successful.

```javascript
const eventProvider = DappPortalSDK.getEventProvider();

// When the mission is completed
const eventId: string = "eventId";          // Unique event ID provided by Dapp Portal
const subMissionIndex: string = "1";        // Sub-mission index, starting from 0

await eventProvider.callback(eventId, subMissionIndex); // If verification is successful, a banner will be displayed automatically.
```

**Parameters**

<table><thead><tr><th width="164.28125">Parameter</th><th width="82.5703125">Type</th><th>Description</th></tr></thead><tbody><tr><td>eventId</td><td>string</td><td>The unique identifier provided by <strong>Dapp Portal</strong></td></tr><tr><td>subMissionIndex</td><td>string</td><td>The index of the sub-mission. Indexing starts from 0.<br>For example:<br>- Event item purchase Misson -> use subMissionIndex = "0"<br>- Lv4 achievement Misson -> use subMissionIndex = "1"</td></tr></tbody></table>

**Responses**

N/A

* If verification is successful, a banner will be displayed.

#### **Dapp Server REST API Implementation Guide**&#x20;

To enable **mission completion** on the Dapp Portal charts, the Dapp server must provide an API endpoint that allows the Dapp Portal to verify whether a mission has been completed.

* **Information Required**
  * API URL (required)
  * Custom Header (optional)
* **API Overview**
  * Metho&#x64;**:** <mark style="color:blue;">`GET`</mark>
  * Schem&#x65;**:** `https`
  * Read Timeou&#x74;**:** `1s`
    * If the Dapp Portal server does not receive a response within **1 second**, the mission will be treated as **failed**.
* **Custom Header (optional)**
  * You may include a custom header when the API is called.
  * There are **no restrictions** on header key/value format.
  * **Only one** custom header can be used, and it is **optional**.
  * ex) x-dapp-custom-key: gq8g0Ah1MD98
* **URL Format**
  * Base UR&#x4C;**:** Dapp server URL
  * The `$identifier` as query parameter must be included.
  * `$identifier` is a placeholder that will be replaced by the user’s wallet address (in lowercase) by the Dapp Portal server.
  * ex) <https://example.dapp.io/api/mission/1111?param=zzzz&**identifier=$identifier>\*\*
* **Response Body**
  * Content Typ&#x65;**:** JSON
  * If the Dapp Portal server receives a successful response, the user is considered to have completed the mission.
    * Mission Complete
    * ```json
      HTTP/1.1 200 OK
      {
        "result": true
      }
      ```
    * Mission Fail
    * ```json
      HTTP/1.1 200 OK
      {
        "result": false
      }
      ```
