writing-bots

This skill describes when and how to a bot using the Silverback SDK.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "writing-bots" with this command: npx skills add apeworx/skills/apeworx-skills-writing-bots

This skill describes when and how to a bot using the Silverback SDK.

The user provides operational requirements such as which blockchain network they want it to run on, which smart contracts they want to interact with, what types of actions they want to take. They may provide additional context about technical constraints, or scenarios it must avoid.

Using This Skill

CRITICAL: Before writing any Silverback bot code, you MUST:

DO NOT rely on general knowledge about Silverback - always fetch the current documentation first to ensure accuracy.

Designing a Bot

Before writing the bot, understand the types of actions you want to perform, and which on-chain or off-chain events you might want to monitor in order to trigger them

  • New Block: Do you want to perform an action on every block?

  • Event Log: Do you want to perform an action when a smart contract emits a particular event?

  • Cron Job: Do you want to perform an action on a time-based interval?

  • Metrics: Do you want to perform an action when a metric meets certain conditions?

CRITICAL: Have a good understanding of the requirements first before proceeding to write any code.

Then implement event handlers, which are callbacks implemented that trigger logic which might:

  • send a message on Telegram or Discord to a group or channel

  • send a social media post on X or Farcaster

  • send a POST request to another backend service

  • sign and broadcast a transaction on the listening chain and/or other blockchain(s)

  • measure a simple or derived Metric

  • provision a product or service

Defining Metrics

In order to have visibility into the operation of the bot, it is often useful to define key "Metrics" or signal values that you can monitor over time to understand the real-world operation of the bot. This can also be very useful for monitoring purposes, but Silverback also lets you define event triggers based on the value of the metric. For example, if you've defined a complex metric based on the amount of trading volume occuring on a particular decentralized exchange pool in the latest block, you might want to trigger an action to occur when that volume signal is above or below a certain threshold. This can create more complex, reactive behaviors beyond what basic blockchain events can tell you.

Maintaining State

Sometimes the actions you want to take in a bot depends on the results of other actions, so it is useful to maintain some internal state to track those results. Use internal state sparingly, and try to rely as much as you can on the blockchain state, or the state of other external services you've integrated the bot with in order to make correct decisions.

Managing Risk

Overall, bots can do potentially risky actions and may end up being a part of critical user infrastructure. It is best to advise them on proceeding slowly and verifying the correctness of their implementation in stages, before more drastic steps like adding a signer to submit transactions or giving it access to a critical communications channel. You can easily do this through print debugging at first, or build-in operational modes based on the presence of a specific environment variable such as the availability of an API key, whether the bot.signer is configured, or based on other on-chain information like account balances.

Also, you should suggest things like adding configurable limits (using environment variables via os.environ ), emergency stop conditions (raising the silverback.CircuitBreaker exception), or others ways to effectively manage risk.

Folder Structure

[bot-name]/ ├── README.md # Overview of bot, how to run it (with silverback) etc. ├── pyproject.toml # Any required Ape plugins, or other Python dependencies └── bot.py # Main bot implementation

Key Files

bot.py

  • Main bot definition:

from ape import Contract from silverback import SilverbackBot

bot = SilverbackBot()

NOTE: Load any required types after SilverbackBot()

contract = Contract(os.environ.get("<ENV_VAR_NAME>"))

NOTE: See https://docs.apeworx.io/silverback/stable/userguides/development to use bot

Dependencies

dependencies = [ "silverback~=0.7", ... # Other required dependencies, SDKs, etc. ]

Running the Bot

Only after the user thinks that the bot seems well-written and ready for testing should you install silverback and run it.

To install silverback, run the following command with uv installed:

$ uv tool install silverback

This will make the silverback cli command available. You can then run the bot on the ecosystem and network they want (such as "ethereum:mainnet") using:

$ silverback run --network <ecosystem>:<network>

You can make the bot shutdown manually via ctrl+C, or sending the SHUTDOWN or KILL signal to the process.

Monitor the bot's operations via it's logs and try to resolve errors until they rarely happen. Silverback can handle the occasional error, so you can't figure out exactly why something is failing, it could be okay to continue testing with.

Ask the user to monitor their bot as well via the logs, and then ask if they like how the bot is working.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

uniswap

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

AGENT-OS

The operating system layer for AI agents. Routes goals to the right skills. Executes with checkpoints.

Registry SourceRecently Updated
1621Profile unavailable
Automation

Agent Network

Decentralized AI agent platform for discovering, connecting, chatting, trading skills with point-based system and leaderboard, featuring P2P networking and d...

Registry SourceRecently Updated
3670Profile unavailable
Automation

OpenClaw Auto‑Updater (Safe + Scheduled + Summary)

Schedule automatic OpenClaw and skill updates with reliable cron templates, timezone-safe scheduling, and clear summary outputs. Use for hands-off maintenance, scheduled upgrades, and concise update reports.

Registry SourceRecently Updated
6K11Profile unavailable