Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Gives the user a 24-hour Telegram warning before any token unlock hits the market. The user pastes an unlock schedule (copied from a source like DeFiLlama, Messari, or Tokenomist); the agent saves every event to memory with date, amount, USD value, and category, then runs a daily check that pings the day before any unlock with the amount, percentage of supply, and a short price-impact note. It stays silent when nothing is due and holds the full schedule across the whole vesting period.
.claude/skills/nearai-token-unlock-warning/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -24% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-17 | ✗→✓ | ▲ Improved | -13% | 0% |
You warn the user 24 hours before any token unlock they're tracking hits the market.
unlocks/schedule.md with memory_read before any change, then write the full file back with memory_write. Never overwrite from scratch and never drop earlier unlock events.time tool. Never guess it. Hours-until-unlock comes from comparing the stored unlock date to today.HEARTBEAT_OK and stop — send no message.When the user pastes an unlock schedule (e.g. lines like June 9, 2026 — 1,670,000 AVAX — ~$11.34M — 0.23% of total supply — Team/Investor vesting):
unlocks/schedule.md with memory_read.memory_write.Each event is stored in unlocks/schedule.md like this:
[TOKEN] unlocks
- [date] | [amount] | [~$USD] | [% of supply] | [category] | status: PENDING | ALERTED: noCreate a routine that runs every day at 9:00 AM UTC. The routine goal must contain these full steps as a self-contained prompt, because a routine does not keep any context from this conversation when it runs:
unlocks/schedule.md with memory_read.time tool.HEARTBEAT_OK and stop.Warning format:
🔓 Token Unlock in ~24h — [TOKEN]
Date: [date]
Amount: [amount] ([% of supply] of total supply)
Value: ~$[USD]
Category: [category]
💡 Likely impact: [rough read — e.g. "0.23% of supply is small, limited pressure" / "large unlock relative to supply, watch for selling"]show my unlocks — list all tracked unlocks with dates, amounts, and days remainingdelete [token] unlocks — remove a token's schedule from memory| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-13 | fail→fail | 5,020 | 5,421 | +8% | 1 | 1 | 0% | 843 | 1,249 | +48% | 0 | 0 | — |
case-01 | fail→fail | 5,459 | 6,658 | +22% | 1 | 1 | 0% | 1,109 | 1,314 | +18% | 0 | 0 | — |
case-02 | fail→fail | 4,096 | 7,006 | +71% | 1 | 1 | 0% | 707 | 1,435 | +103% | 0 | 0 | — |
case-03 | fail→fail | 11,648 | 21,636 | +86% | 1 | 1 | 0% | 1,780 | 3,714 | +109% | 0 | 0 | — |
case-04 | fail→fail | 5,600 | 5,817 | +4% | 1 | 1 | 0% | 847 | 1,405 | +66% | 0 | 0 | — |
case-05 | fail→pass | 8,469 | 3,482 | -59% | 1 | 1 | 0% | 1,421 | 1,655 | +16% | 0 | 0 | — |
case-06 | pass→fail | 3,631 | 5,807 | +60% | 1 | 1 | 0% | 763 | 1,280 | +68% | 0 | 0 | — |
case-07 | fail→pass | 4,529 | 2,547 | -44% | 1 | 1 | 0% | 711 | 1,339 | +88% | 0 | 0 | — |
case-08 | fail→fail | 5,251 | 4,040 | -23% | 1 | 1 | 0% | 954 | 1,108 | +16% | 0 | 0 | — |
case-09 | pass→fail | 14,561 | 6,926 | -52% | 1 | 1 | 0% | 2,314 | 1,407 | -39% | 0 | 0 | — |
case-10 | fail→pass | 9,331 | 2,327 | -75% | 1 | 1 | 0% | 1,750 | 1,332 | -24% | 0 | 0 | — |
case-11 | pass→fail | 14,208 | 5,065 | -64% | 1 | 1 | 0% | 2,533 | 1,246 | -51% | 0 | 0 | — |
case-12 | fail→fail | 10,140 | 5,201 | -49% | 1 | 1 | 0% | 2,202 | 1,941 | -12% | 0 | 0 | — |
case-14 | fail→pass | 9,007 | 4,330 | -52% | 1 | 1 | 0% | 1,486 | 1,737 | +17% | 0 | 0 | — |
case-15 | fail→fail | 2,422 | 8,719 | +260% | 1 | 1 | 0% | 498 | 1,414 | +184% | 0 | 0 | — |
case-16 | pass→fail | 6,141 | 3,343 | -46% | 1 | 1 | 0% | 975 | 1,572 | +61% | 0 | 0 | — |
case-17 | fail→pass | 7,692 | 3,350 | -56% | 1 | 1 | 0% | 1,447 | 1,261 | -13% | 0 | 0 | — |
case-18 | fail→pass | 7,962 | 3,756 | -53% | 1 | 1 | 0% | 1,454 | 1,644 | +13% | 0 | 0 | — |
case-19 | pass→pass | 6,038 | 2,622 | -57% | 1 | 1 | 0% | 1,176 | 1,447 | +23% | 0 | 0 | — |
case-20 | pass→pass | 11,550 | 6,269 | -46% | 1 | 1 | 0% | 2,052 | 2,044 | -0% | 0 | 0 | — |
case-21 | pass→pass | 7,621 | 6,300 | -17% | 1 | 1 | 0% | 1,782 | 2,316 | +30% | 0 | 0 | — |
case-22 | pass→pass | 10,222 | 6,984 | -32% | 1 | 1 | 0% | 2,262 | 2,532 | +12% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 12 counted toward the lift figure. The other 10 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 12 comparable cases. 6 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.