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
| Skill | Type | What it provides |
|---|---|---|
uv-package | Package | uv install/run/lock, pyproject.toml, .env template |
poetry-package | Package | Poetry install/run/lock, pyproject.toml, .env template |
python-venv-package | Package | venv, pip, requirements.txt, .env template |
no-package | Package | Code-only; runtime import docs, no install commands |
chat-protocol | Protocol | ChatMessage, session lifecycle, Agentverse manifest |
stripe-payment-protocol | Protocol | Stripe Checkout RequestPayment/CommitPayment, idempotency |
fet-payment-protocol | Protocol | On-chain FET, cosmpy ledger verify, mainnet + testnet |
payment-protocol | Combined | Stripe + 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 runcommandspyproject.tomlshape and dependency groupsuv.lockrules and.gitignoretemplate.env.examplelayout for secrets
# Example commands your assistant will use
uv add uagents
uv sync
uv run agent.py
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 runcommandspyproject.tomlshape for Poetry projectspoetry.lockrules.env.examplelayout 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 .venvsetup stepspip installandpip freezeconventionsrequirements.txtstructure.env.examplelayout 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,TextContentmessage 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
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:
RequestPaymentandCommitPaymentmessage 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
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:
fundswithfet_directpayment methodRequestPaymentwith on-chain metadatacosmpyledger verificationRejectPayment/CompletePaymenthandling- 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
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_fundsadvertising both payment methods - One
on_commithandler dispatching byFunds.payment_method - Full Stripe + FET environment setup
- Everything from both
stripe-payment-protocolandfet-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 skill | Protocol skill(s) | Result |
|---|---|---|
uv-package | chat-protocol | Basic chat agent with uv environment |
poetry-package | stripe-payment-protocol + chat-protocol | Stripe-gated agent for Poetry projects |
python-venv-package | payment-protocol | Dual Stripe + FET agent with venv setup |
no-package | chat-protocol + fet-payment-protocol | Code-only on-chain payment agent |
uv-package | payment-protocol | Full dual-payment agent with uv (recommended for new projects) |