Price Skill (FTSO)
Unified interface for FTSO price feeds on Flare network.
Quick Command
node skills/ftso/scripts/ftso.js <symbol>
Subcommands
| Command |
Description |
<symbol> |
Get current price for symbol |
<sym1> <sym2>... |
Get multiple prices at once |
history <sym> [period] |
Historical price data |
list |
List all supported symbols |
Usage Examples
# Single price
/price FLR
# Multiple prices
/price FLR XRP ETH BTC
# JSON output
/price FLR --json
# Historical data
/price history FLR 7d
/price history XRP 30d
# List all symbols
/price list
Symbol Aliases
These aliases are automatically resolved:
| Alias |
Resolves To |
| WFLR |
FLR |
| SFLR |
FLR |
| FXRP |
XRP |
| USD₮0 |
USDT |
| USDT0 |
USDT |
Supported Symbols
Crypto
- FLR, XRP, ETH, BTC, LTC
- XLM, DOGE, ADA, ALGO
- ARB, AVAX, BNB, FIL
- LINK, MATIC, SOL
- USDC, USDT
Data Source
- On-chain only - no external APIs
- FtsoV2 Contract - official Flare oracle
- ~90 second updates - prices update each voting epoch
Historical Data
The history daemon polls FTSO every 5 minutes and stores locally:
# Start daemon (if not running)
skills/ftso-history/scripts/ensure-daemon.sh
# Query history
/price history FLR 7d
/price history XRP 30d
Periods: 1d, 7d, 14d, 30d, 90d
Integration
Use in other scripts:
const { getPrice, getPrices } = require('skills/ftso/scripts/price.js');
const flrPrice = await getPrice('FLR');
const prices = await getPrices(['FLR', 'XRP', 'ETH']);
Contract Reference
| Contract |
Address |
| FlareContractRegistry |
0xaD67FE66660Fb8dFE9d6b1b4240d8650e30F6019 |
| FtsoV2 |
Resolved dynamically from registry |
Routing Guide
Don't use when...
- Need historical price charts (use
/price history or external charting)
- Want to execute trades (use
/swap)
- Checking portfolio value (use
/portfolio)
Use when...
- Getting current token price from FTSO oracle
- Querying multiple prices at once
- Listing supported FTSO feed symbols
Edge Cases
- Symbol aliases auto-resolve: WFLR→FLR, FXRP→XRP, USDT0→USDT
- FTSO updates every ~90 seconds — prices may lag vs CEX
- Some symbols may not have feeds (check
/price list)
Success Criteria
- Returns price with timestamp and voting round
- Multiple symbols return in single response
- JSON mode outputs parseable data
1---2name: price3description: Get real-time token prices from Flare FTSO oracle. Query current prices, historical data, list supported symbols. Triggers on "/price", "ftso price", "token price", "what's the price of".4---56# Price Skill (FTSO)78Unified interface for FTSO price feeds on Flare network.910## Quick Command1112```bash13node skills/ftso/scripts/ftso.js <symbol>14```1516## Subcommands1718| Command | Description |19|---------|-------------|20| `<symbol>` | Get current price for symbol |21| `<sym1> <sym2>...` | Get multiple prices at once |22| `history <sym> [period]` | Historical price data |23| `list` | List all supported symbols |2425## Usage Examples2627```bash28# Single price29/price FLR3031# Multiple prices32/price FLR XRP ETH BTC3334# JSON output35/price FLR --json3637# Historical data38/price history FLR 7d39/price history XRP 30d4041# List all symbols42/price list43```4445## Symbol Aliases4647These aliases are automatically resolved:4849| Alias | Resolves To |50|-------|-------------|51| WFLR | FLR |52| SFLR | FLR |53| FXRP | XRP |54| USD₮0 | USDT |55| USDT0 | USDT |5657## Supported Symbols5859### Crypto60- FLR, XRP, ETH, BTC, LTC61- XLM, DOGE, ADA, ALGO62- ARB, AVAX, BNB, FIL63- LINK, MATIC, SOL64- USDC, USDT6566## Data Source6768- **On-chain only** - no external APIs69- **FtsoV2 Contract** - official Flare oracle70- **~90 second updates** - prices update each voting epoch7172## Historical Data7374The history daemon polls FTSO every 5 minutes and stores locally:7576```bash77# Start daemon (if not running)78skills/ftso-history/scripts/ensure-daemon.sh7980# Query history81/price history FLR 7d82/price history XRP 30d83```8485Periods: `1d`, `7d`, `14d`, `30d`, `90d`8687## Integration8889Use in other scripts:9091```javascript92const { getPrice, getPrices } = require('skills/ftso/scripts/price.js');9394const flrPrice = await getPrice('FLR');95const prices = await getPrices(['FLR', 'XRP', 'ETH']);96```9798## Contract Reference99100| Contract | Address |101|----------|---------|102| FlareContractRegistry | `0xaD67FE66660Fb8dFE9d6b1b4240d8650e30F6019` |103| FtsoV2 | Resolved dynamically from registry |104105106---107108## Routing Guide109110### Don't use when...111- Need historical price charts (use `/price history` or external charting)112- Want to execute trades (use `/swap`)113- Checking portfolio value (use `/portfolio`)114115### Use when...116- Getting current token price from FTSO oracle117- Querying multiple prices at once118- Listing supported FTSO feed symbols119120### Edge Cases121- Symbol aliases auto-resolve: WFLR→FLR, FXRP→XRP, USDT0→USDT122- FTSO updates every ~90 seconds — prices may lag vs CEX123- Some symbols may not have feeds (check `/price list`)124125### Success Criteria126- Returns price with timestamp and voting round127- Multiple symbols return in single response128- JSON mode outputs parseable data