ability-verify-strava
v0.2.0
Published
Verify Strava running activities and mark challenges complete on-chain using Vincent PKP oracle
Maintainers
Readme
FitStake Strava Verification Ability
A Vincent ability that verifies Strava running activities and marks fitness challenges as complete on-chain.
Overview
This ability integrates with:
- Strava API: Fetches user's running activities
- Smart Contract: Calls
markTaskComplete()on ChallengeContract - Vincent PKP: Uses Lit Protocol's Programmable Key Pair for secure signing
Features
- ✅ Real Strava Integration: Fetches actual user activities
- ✅ Challenge Validation: Verifies distance, time, and activity type
- ✅ Blockchain Integration: Calls smart contract with PKP signature
- ✅ Error Handling: Comprehensive validation and error reporting
- ✅ Environment Configuration: Configurable RPC and API endpoints
Usage
Parameters
{
contractAddress: string, // Ethereum contract address (0x...)
challengeId: number, // Challenge ID (positive integer)
stravaAccessToken: string, // Strava API access token
userAddress: string // User's Ethereum address (0x...)
}Success Response
{
success: true,
transactionHash: string,
blockNumber: number,
gasUsed: string,
activityVerified: true,
activityDetails: {
distance: number,
duration: number,
type: string,
activityId: string
}
}Environment Variables
RPC_URL: Ethereum RPC endpoint (default: Sepolia Infura)STRAVA_API_BASE_URL: Strava API base URL (default: https://www.strava.com/api/v3)
Deployment
- Build:
npm run build - Deploy to IPFS:
npm run deploy - Publish to NPM:
npm publish
Vincent Integration
This ability must be:
- Added to Vincent Dashboard with the IPFS CID
- PKP address set as oracle in the smart contract
- Called through Vincent App SDK from your backend
License
MIT
