Skip to main content
Version: 1.0.5

Skills Reference

Fetch-skills ships two categories of skills: package skills (pick exactly one) and protocol skills (pick one or more). They compose automatically — protocol skills defer to whichever package skill is present for all environment-level concerns such as install commands, lockfile management, and .env setup.

All Skills at a Glance

SkillTypeWhat it provides
uv-packagePackageuv install/run/lock, pyproject.toml, .env template
poetry-packagePackagePoetry install/run/lock, pyproject.toml, .env template
python-venv-packagePackagevenv, pip, requirements.txt, .env template
no-packagePackageCode-only; runtime import docs, no install commands
chat-protocolProtocolChatMessage, session lifecycle, Agentverse manifest
stripe-payment-protocolProtocolStripe Checkout RequestPayment/CommitPayment, idempotency
fet-payment-protocolProtocolOn-chain FET, cosmpy ledger verify, mainnet + testnet
payment-protocolCombinedStripe + FET in one agent, unified on_commit dispatcher

Package Skills

Pick exactly one package skill per project. It controls all environment-level guidance your AI coding assistant uses: install commands, lockfile conventions, run commands, and .env / .gitignore templates.

uv-package

For projects using the uv package manager.

What your AI assistant learns:

  • uv add / uv sync / uv run commands
  • pyproject.toml shape and dependency groups
  • uv.lock rules and .gitignore template
  • .env.example layout for secrets
# Example commands your assistant will use
uv add uagents
uv sync
uv run agent.py
Recommended default

uv-package is the recommended choice for new Fetch.ai projects. uv is significantly faster than pip and handles virtual environments automatically.


poetry-package

For projects using Poetry.

What your AI assistant learns:

  • poetry add / poetry install / poetry run commands
  • pyproject.toml shape for Poetry projects
  • poetry.lock rules
  • .env.example layout for secrets
# Example commands your assistant will use
poetry add uagents
poetry install
poetry run python agent.py

python-venv-package

For classic venv + pip workflows.

What your AI assistant learns:

  • python3.11 -m venv .venv setup steps
  • pip install and pip freeze conventions
  • requirements.txt structure
  • .env.example layout for secrets
# Example commands your assistant will use
python3.11 -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install uagents
pip freeze > requirements.txt

no-package

Code-only mode — no install commands of any kind.

What your AI assistant learns:

  • Required runtime imports only
  • No lockfile or install guidance
  • Suitable for environments where dependencies are pre-installed

Use this when your CI environment, container, or platform already has all packages available and you only want the agent and protocol logic documented.


Protocol Skills

Pick one or more protocol skills. They compose cleanly with any package skill and with each other.

chat-protocol

Core protocol skill for building Fetch.ai uAgents that speak the official Agent Chat Protocol.

What your AI assistant learns:

  • ChatMessage, ChatAcknowledgement, TextContent message types
  • Session lifecycle management
  • Agentverse manifest registration
  • Handler patterns and message routing
# Pattern your assistant will follow
from uagents_core.contrib.protocols.chat import (
ChatMessage,
ChatAcknowledgement,
TextContent,
)

@agent.on_message(ChatMessage)
async def handle_message(ctx: Context, sender: str, msg: ChatMessage):
await ctx.send(sender, ChatAcknowledgement(timestamp=datetime.now(), acknowledged_msg_id=msg.msg_id))
# handle msg.content here
Foundation skill

chat-protocol is the foundation for all payment skills. If you select stripe-payment-protocol or fet-payment-protocol, your agent must also speak Chat Protocol.


stripe-payment-protocol

Adds Stripe Checkout-backed payment support to a chat-capable uAgent.

What your AI assistant learns:

  • RequestPayment and CommitPayment message flows
  • Stripe Checkout session creation
  • Payment verification and idempotency
  • Environment setup for Stripe keys

Required environment variables:

STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...

Payment flow:

User sends ChatMessage
→ Agent sends RequestPayment (Stripe Checkout URL)
→ User completes Stripe payment
→ Stripe webhook fires CommitPayment
→ Agent verifies and delivers service
Requires chat-protocol

stripe-payment-protocol composes with chat-protocol. Select both, or see payment-protocol for the combined Stripe + FET skill.


fet-payment-protocol

Adds direct on-chain FET payments to a uAgent alongside Chat Protocol.

What your AI assistant learns:

  • funds with fet_direct payment method
  • RequestPayment with on-chain metadata
  • cosmpy ledger verification
  • RejectPayment / CompletePayment handling
  • Idempotency on transaction hash
  • Supports Fetch.ai mainnet (afet) and stable-testnet (atestfet)

Required environment variables:

AGENT_WALLET_ADDRESS=fetch1...
FETCHAI_NETWORK=mainnet # or stable-testnet

Payment flow:

User sends ChatMessage
→ Agent sends RequestPayment (on-chain FET address + amount)
→ User broadcasts FET transaction on-chain
→ User sends CommitPayment with transaction hash
→ Agent verifies via cosmpy ledger query
→ Agent completes or rejects based on verification
Requires chat-protocol

fet-payment-protocol composes with chat-protocol. Select both, or see payment-protocol for the combined Stripe + FET skill.


payment-protocol

Combined skill: both Stripe Checkout and direct FET payments in one agent.

What your AI assistant learns:

  • Single RequestPayment.accepted_funds advertising both payment methods
  • One on_commit handler dispatching by Funds.payment_method
  • Full Stripe + FET environment setup
  • Everything from both stripe-payment-protocol and fet-payment-protocol

Use this when: the same agent must accept card or crypto — users can choose their preferred payment method.

Required environment variables:

STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
AGENT_WALLET_ADDRESS=fetch1...
FETCHAI_NETWORK=mainnet

Payment flow:

User sends ChatMessage
→ Agent sends RequestPayment (both Stripe URL + FET address)
→ User picks their method and pays
→ CommitPayment arrives with payment_method field
→ on_commit dispatcher routes to Stripe or FET handler
→ Agent verifies and delivers service

Skill Composition Examples

Package skillProtocol skill(s)Result
uv-packagechat-protocolBasic chat agent with uv environment
poetry-packagestripe-payment-protocol + chat-protocolStripe-gated agent for Poetry projects
python-venv-packagepayment-protocolDual Stripe + FET agent with venv setup
no-packagechat-protocol + fet-payment-protocolCode-only on-chain payment agent
uv-packagepayment-protocolFull dual-payment agent with uv (recommended for new projects)