@xmtp/bot-starter
TypeScript icon, indicating that this package has built-in type declarations

0.0.0 • Public • Published

XMTP Bot Starter

Hey you wanna make a bot on the XMTP network? Heck yeah. This repo makes that easier.

Usage

First, install the package in your project:

yarn add @xmtp/bot-starter

Here's a basic example of how to use the package:

import run from "@xmtp/bot-starter"

run(async (context) => {
const messageBody = context.message.content
await context.reply(ECHO: ${messageBody})
})

Keeping the same address (the KEY environment variable)

By default, your bot will have a new address every time you start it up. That's ideal. If you have a private key, you can encode it to a hex string and set the KEY environment variable. Your bot will then use this key to connect to the network.

Don't know how to create a private key? Here's how to do it with ethers.js:

import { Wallet } from "ethers"

const key = Wallet.createRandom().privateKey
console.log("Set your environment variable: KEY=" + key)

XMTP Environment (the XMTP_ENV environment variable)

By default, the bot connects to the dev network. If you want to connect to production, specify XMTP_ENV=production.

Development

If you want to contribute to this package, here are the steps to set up the project for development:

Install the necessary packages and build the project:

yarn install
yarn build

Run the file echo under examples

examples/run echo
// Call `run` with a handler function. The handler function is called
// with a HandlerContext
run(async (context) => {
  // When someone sends your bot a message, you can get the DecodedMessage
  // from the HandlerContext's `message` field
  const messageBody = context.message.content

  // To reply, just call `reply` on the HandlerContext.
  await context.reply(`ECHO: ${messageBody}`)
})

Readme

Keywords

none

Package Sidebar

Install

npm i @xmtp/bot-starter

Weekly Downloads

5

Version

0.0.0

License

MIT

Unpacked Size

52.9 kB

Total Files

35

Last publish

Collaborators

  • alexxmtp
  • fabriguespe
  • nplasterer-xmtp
  • saul-xmtp
  • nick-xmtp
  • xmtp-eng-robot
  • galligan