Pendle PT fixed-yield strategy for market scanning, ranking, position tracking, maturity monitoring, and execution planning. Prefer managed wallet execution through Privy or a similar policy-controlled wallet backend, and otherwise fall back to manual user-executed transactions. Use when the user wants to research Pendle PT opportunities, choose stable-ish PT markets, monitor active PT positions, or prepare Pendle PT deposit, redeem, withdraw, and rollover actions with explicit confirmation and clear wallet-path disclosures.
Pendle PT strategy skill for fixed-yield workflows built around Principal Tokens.
This publishable package is intentionally scoped to:
It does not bundle raw secret-key signing code. It does not bundle direct transaction-submission helpers that read local wallet secrets.
Default to the safest practical wallet path.
Priority order:
This public package is designed to avoid normalizing secret key export or runtime secret-key injection as the standard path.
The preferred execution model for this skill is a managed wallet system with policy controls, spend limits, and explicit operator setup.
Use a managed wallet provider such as Privy when available. That is the preferred deployment pattern for agentic execution.
Why this is preferred:
This package helps the agent:
Actual transaction submission should happen through:
If the host environment already has the privy skill installed, prefer using
that wallet layer for transaction execution and use this skill for Pendle
market/position logic plus execution planning.
Preferred.
Use this when the runtime has:
In this mode, this skill should:
data/positions.jsonWhen privy skill is available, prefer that integration path.
Fallback.
Use this when no managed wallet is configured.
In this mode, this skill should:
Before execution or execution planning, the agent must make these points clear:
Never blur the line between planning and execution.
Do not present a transaction as already executed unless the host environment or user confirms it actually happened.
Require a clear confirmation such as:
Confirm Pendle depositConfirm Pendle redeemConfirm Pendle withdrawConfirm Pendle rolloverThe confirmation should come after the user has seen:
Do not proceed with execution planning as if it were executable if:
data/positions.jsonThis package is managed-wallet oriented and manual-execution compatible. It does not ship secret-key runtime signing code.
The core loop is: scan → select → preview → confirm → execute externally or via managed wallet → track → monitor → roll.
data/positions.json| Parameter | Short commitment | Long commitment |
|---|---|---|
max_days_to_maturity | 15 | 100 |
min_days_to_maturity | 1 | 15 |
min_apy_threshold | 5% | 10% |
Default to long commitment unless the user explicitly requests short-term parking or specifies a different preference.
| Parameter | Default | Description |
|---|---|---|
chains | ethereum,arbitrum,base | Chains to scan |
asset_types | stable-major,stable-synthetic,stable-rwa | Stable subtypes to include |
include_non_usd | false | Include EUR / SGD stablecoin PTs |
min_liquidity_usd | 1000000 | Minimum market TVL |
max_slippage_pct | 2.0 | Max acceptable slippage |
min_volume_24h_usd | 50000 | Minimum 24h volume |
scanUse the bundled scanning and ranking scripts to find candidates.
Suggested flow:
cd scripts
python3 scan-markets.py --active-only
python3 rank-markets.py \
--stable-only \
--stable-subtype stable-major stable-synthetic stable-rwa \
--chains ethereum base arbitrum \
--min-days 1 \
--max-days 100 \
--min-liquidity 1000000
python3 report-markets.py --top 20
depositredeemdata/positions.json after execution is confirmedwithdrawstatusRead data/positions.json and summarize active positions, expected value,
maturity schedule, and aggregate expected yield.
monitorUse for periodic checks. Flag matured and soon-to-mature positions, then prepare the next action:
rollover| File | Purpose |
|---|---|
SKILL.md | Strategy instructions and safety rules |
data/positions.json | Active and historical position tracking |
data/strategy-config.json | Saved parameter overrides |
scripts/check-slippage.py | Preview market slippage |
scripts/monitor-positions.py | Check tracked positions for maturity / alerts |
scripts/report-status.py | Generate human-readable position reports |
scripts/scan-markets.py | Scan Pendle PT markets |
scripts/rank-markets.py | Rank PT markets by fit |
scripts/report-markets.py | Render ranked market summaries |
references/eligible-underlyings.md | Stable-ish asset guidance |
references/chain-addresses.md | Chain and token reference data |
All positions are stored in data/positions.json as a JSON array.
[
{
"id": "pos_001",
"status": "active | redeemed | withdrawn_early | rolling",
"chain": "ethereum",
"chain_id": 1,
"market_address": "0x...",
"market_name": "PT-sUSDe 25JUN2026",
"pt_address": "0x...",
"underlying_asset": "sUSDe",
"underlying_address": "0x...",
"deposit_token": "USDC",
"deposit_amount_usd": 10000.00,
"deposit_amount_raw": "10000000000",
"pt_amount_received": "10234000000000000000000",
"effective_apy_at_entry": 0.112,
"entry_date": "2026-04-03T14:30:00Z",
"entry_tx_hash": "0x...",
"maturity_date": "2026-06-25T00:00:00Z",
"days_to_maturity_at_entry": 83,
"expected_value_at_maturity_usd": 10254.00,
"redemption_date": null,
"redemption_tx_hash": null,
"realized_yield_usd": null,
"withdrawal_date": null,
"withdrawal_tx_hash": null,
"realized_pnl_usd": null,
"rollover_history": [],
"notes": ""
}
]
This skill overlaps with pendle-pt-research but is designed to stand on its
own. If both are installed, use the research skill for broader discovery and
this skill for execution-oriented filtering, tracking, and rollover planning.
This package is intentionally portable because it avoids bundling direct secret- backed signer code. Host environments can: