Skip to main content
Version: Next

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)