Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@xmtp/bot-starter

Package Overview
Dependencies
Maintainers
7
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@xmtp/bot-starter

Easy XMTP bots

  • 0.0.0
  • latest
  • npm
  • Socket score

Version published
Maintainers
7
Created
Source

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}`)
})

FAQs

Package last updated on 11 Dec 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc