1k-defi-module-integration

DeFi Module Integration Guide

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "1k-defi-module-integration" with this command: npx skills add onekeyhq/app-monorepo/onekeyhq-app-monorepo-1k-defi-module-integration

DeFi Module Integration Guide

This skill provides interactive guidance for integrating new DeFi modules or protocols into OneKey.

Quick Start

Before starting, determine your integration scenario:

Scenario Description Guide

New Protocol in Earn Adding a staking/yield protocol (e.g., Lido, Rocket Pool) earn-module-guide.md

New Protocol in Borrow Adding a lending market (e.g., Aave, Compound) borrow-module-guide.md

Entirely New Module Creating a new DeFi category (e.g., Pendle, GMX) new-module-guide.md

Integration Layers

Each DeFi module consists of 4 layers. Home and Modal are required; Details and List are optional.

┌─────────────────────────────────────────────────────────────┐ │ Layer 1: HOME PAGE (Required) │ │ - Overview data (total value, APY, health factor) │ │ - Asset cards/tables │ │ - Pending transaction tracking │ ├─────────────────────────────────────────────────────────────┤ │ Layer 2: OPERATION MODALS (Required) │ │ - Earn: Stake, Unstake, Claim (2-3 types) │ │ - Borrow: Supply, Withdraw, Borrow, Repay (4 types) │ │ - Amount input, validation, risk warnings │ ├─────────────────────────────────────────────────────────────┤ │ Layer 3: DETAILS PAGE (Optional) │ │ - Charts (APY history, interest rate model) │ │ - Detailed protocol information │ │ - Share functionality │ ├─────────────────────────────────────────────────────────────┤ │ Layer 4: PROTOCOL LIST (Optional, for multi-token) │ │ - List of available protocols/assets │ │ - Filtering and sorting │ │ - Navigation to details │ └─────────────────────────────────────────────────────────────┘

Scenario Identification

When to ask the user

Ask for clarification when:

  • The protocol type is ambiguous (could be Earn or Borrow)

  • The operation types are not standard

  • Special UI/UX requirements are mentioned

  • The protocol has unique features not covered by existing patterns

Scenario characteristics

Earn Protocol (Staking/Yield):

  • Operations: Stake, Unstake, Claim

  • Data: APY, staked amount, rewards

  • Examples: Lido, Rocket Pool, Babylon

Borrow Protocol (Lending):

  • Operations: Supply, Withdraw, Borrow, Repay

  • Data: Health factor, collateral, debt, APY

  • Examples: Aave, Compound, Morpho

  • Advanced features: Repay with Collateral (swap-based repayment)

  • See: borrow-module-guide.md - Repay with Collateral

New Module:

  • Operations differ significantly from Earn/Borrow

  • Requires independent Tab or unique UI

  • Examples: Pendle (PT/YT), GMX (perpetuals)

Time-Based Protocol (Fixed-rate yield):

  • Operations: Buy, Sell, Redeem (conditional on maturity)

  • Data: Maturity date, implied APY, underlying asset, discount rate

  • Special features: Maturity status, conditional operations, multi-variant assets

  • Examples: Pendle PT

  • Integration: As sub-module of Earn Tab (Fixed-rate category)

  • See: earn-module-guide.md - Time-Based Protocols

Key Decision Points

Decision Options Default

Integration type Earn / Borrow / New Module Ask user

Tab placement Existing Earn Tab / New Tab Earn Tab

Operation count 2-3 (Earn) / 4 (Borrow) / Custom Based on type

Risk warnings Liquidation / Slashing / None Based on type

Token selection Single / Multiple Single

Charts APY history / Interest model / None Based on type

Share feature Yes / No Yes

Multi-token list Yes / No Based on token count

Time-based features Maturity date / Conditional ops / None Based on protocol

Multi-variant assets Group by underlying / Flat list Based on protocol

Operation tabs Single op / Tab switching (Buy/Sell/Redeem) Based on protocol

Repay with collateral Wallet balance only / With collateral option Based on protocol

Dual amount input Single input / Bidirectional sync Based on operation

Slippage settings Not needed / Auto / Custom Based on swap involvement

State Management Decision

When integrating a new DeFi module, analyze the state requirements and ask the user:

State Type Recommendation Examples

Needs Persistence (across page navigation) Use Jotai atoms Portfolio data, user preferences, cached investments

Page-scoped (no persistence needed) Use React Context Current operation state, form data, temporary UI state

When using this skill, you should:

  • Analyze the state requirements of the new module

  • Ask the user whether the state needs to persist across page navigation

  • Recommend Jotai for persistent state, Context for page-scoped state

Example question to ask:

"Does this module's data need to persist when the user navigates away and returns? For example:

  • If yes (like portfolio data that should be cached): Use Jotai atoms

  • If no (like form state that resets on page exit): Use React Context"

Quick Reference

Key File Paths

Module Path

Earn packages/kit/src/views/Earn/

Borrow packages/kit/src/views/Borrow/

Staking (shared) packages/kit/src/views/Staking/

Routes packages/shared/src/routes/

Modal Router packages/kit/src/routes/Modal/router.tsx

Tab Router packages/kit/src/routes/Tab/router.ts

Common Components

Component Location Usage

StakingAmountInput

Staking/components/

Amount input with validation

StakingFormWrapper

Staking/components/

Form layout wrapper

EarnText

Staking/components/ProtocolDetails/

Styled text with color support

EarnTooltip

Staking/components/ProtocolDetails/

Info tooltips

PendingIndicator

Staking/components/StakingActivityIndicator/

Pending tx indicator

ManagePositionContent

Staking/pages/ManagePosition/

Shared manage position UI

ManagePosition

Borrow/components/ManagePosition/

Unified Borrow operation component (Supply/Withdraw/Borrow/Repay)

State Management Patterns

Pattern Use Case Reference

IAsyncData<T>

Unified async data format state-management-guide.md

DataGate

Data orchestration state-management-guide.md

PendingBridge

External pending state state-management-guide.md

Tag System Pending tx identification state-management-guide.md

Workflow

Step 1: Identify Scenario

  • Determine if it's Earn, Borrow, or New Module

  • Read the corresponding guide

Step 2: Plan Layers

  • Decide which layers to implement (Home + Modal required)

  • Identify optional layers needed

Step 3: Implement Layer by Layer

  • Follow the guide for each layer

  • Use the checklist to verify completion

Step 4: Test and Verify

  • Test all operation types

  • Verify pending state handling

  • Check responsive layout

Related Skills

This skill works best when combined with these other OneKey skills:

Skill Use For

1k-i18n

Adding translations, using ETranslations , useIntl()

1k-coding-patterns

React patterns, error handling, TypeScript best practices

1k-cross-platform

Platform-specific code, platformEnv checks

page-and-route

Route configuration, deep links, navigation

i18n Quick Reference

All user-facing strings must use internationalization. See 1k-i18n skill for full details.

Basic Usage:

import { useIntl } from 'react-intl'; import { ETranslations } from '@onekeyhq/shared/src/locale';

function MyComponent() { const intl = useIntl();

return ( <Text> {intl.formatMessage({ id: ETranslations.defi_net_worth })} </Text> ); }

Common DeFi Translation Keys:

  • ETranslations.defi_net_worth

  • "Net Worth"

  • ETranslations.defi_net_apy

  • "Net APY"

  • ETranslations.defi_health_factor

  • "Health Factor"

  • ETranslations.defi_platform_bonus

  • "Platform Bonus"

  • ETranslations.defi_claimable_rewards

  • "Claimable Rewards"

  • ETranslations.global_history

  • "History"

Adding New Keys:

  • Add key to ETranslations enum in packages/shared/src/locale/enum.ts

  • Add translations in locale JSON files

  • Never hardcode user-facing strings

Reference Documents

Document Content

earn-module-guide.md Earn module architecture, files, operations

borrow-module-guide.md Borrow module architecture, 4 operations, health factor

new-module-guide.md Creating new modules, Provider design

routing-guide.md Modal routes, Tab routes, navigation utilities, deep links

state-management-guide.md IAsyncData, Pending, Tag system, refresh strategies

checklist.md Integration checklist with required/optional markers

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

1k-adding-chains

No summary provided by upstream source.

Repository SourceNeeds Review
General

react-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
General

implementing-figma-designs

No summary provided by upstream source.

Repository SourceNeeds Review
General

1k-date-formatting

No summary provided by upstream source.

Repository SourceNeeds Review