project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Century Pay

A discord bot to let users pay in discord! The bot will let users sign transactions with their wallets and send transaction.

Century Pay

Created At

Superhack 2024

Winner of

Blockscout - Use Blockscout Block Explorer!

Prize Pool

Mode - Best UX/UI in DeFi

Base - Best apps built for payments on Base

ETHGlobal - 🏆 Superhack 2024 Finalist

Project Description

Introduction

Century Pay is a Discord bot designed to simplify on-chain payments. Users can effortlessly connect their wallets and perform transactions using simple Discord commands. Whether it's sending ETH, accessing a faucet, or staking ETH for the ETHGlobal hackathon, Century Pay streamlines the process.

Thanks to the integration with AA wallets, on-chain interactions have never been easier. Users can sign in securely with a passkey, and their gas fees will be covered by a paymaster. When interactions require sending values—such as voting or minting NFTs—the bot provides clear guidance to help users navigate smart contract interactions seamlessly!

Features

/connect

  • Description: It let a user to connect to a wallet, and the bot will save the user's address in database (for the future usage). connect

/check

  • Description: It let a user to check which wallet he/she is connecting to. It outputs an Ethereum address. check

/send

  • Description: It lets the sender to specify the receiver's address and how much will be sent
  • Inputs
    • amount: string
      • parse ETH in string
      • e.g. 0.001 means 0.001 ETH
    • to_address: string
      • Either an Ethereum account or tag a user
      • e.g. 0x123... or @vivi432
  • After a transaction is sent, it notifies both sender and receiver with a private chat message. send

/faucet

  • Description: It automatically sends some ETH (0.001 ETH) to the user's wallet if the user has connected to an address.
  • Options: Sepolia, OptimismSepolia, BaseSepolia faucet

/createVote

  • Description: It enables each user to create a vote session and everyone can join the vote by an AA wallet.

  • Inputs

    • topic: string
      • The topic to be voted for
    • option1,...,option10: string
      • The candidates of the vote
      • min: 2, max: 10

    create

/vote

  • Description: It allows users to find which vote session is happening, and users can vote for the specified session. After users choose an option, the bot redirects users to confirm the vote with an AA wallet.

  • Selectors

    • topic
      • The topic of the vote
    • option
      • The option of the vote

    vote

/tally

  • Description: Users can close the vote session with the tally command. It also redirects the user to connect an AA account to confirm the transaction. tally

/result

  • Description: Users can view the result of every finished vote session.
  • Selectors
    • topic - The topic of the vote result

Authentication

The wallet authentication should be connected through an embedd frontend framework. Here is an example of using Alchemy Embedded Account through Passkey authentication.

auth

How it's Made

  1. Alchemy Embedded Accounts: Alchemy provides AA accounts infrastructure and its gas master. It allows users to send transaction without having ETH at first.
  2. Base smart wallet: It is one of the AA accounts infrastructure. It allows users to create an smart wallet easily.
  3. WalletConnect: We use the wallet connect frontend components to let users connect their own wallets. It supports many networks and many wallets.
  4. Blockscout: Blockscout makes users' transactions more visible and clear in this app and it supports multiple chains.
  5. Discord bot: The discord bot is used to handle the requests and send responses to users.
  6. Mongodb: It handles user's data and connect the discord bot and the Century Pay website.
background image mobile

Join the mailing list

Get the latest news and updates