npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ecclesia-js

v1.0.5

Published

JS library for interacting with the Ecclesia Protocol

Downloads

15

Readme

ecclesia-protocol

JS Library for interacting with Ecclesia.

Installation

npm install ecclesia-js

Usage

Functions:

getDataByTXID(TXID)

  • Accesses the data associated with that TXID.

createThought(text, photo_path, private_key)

  • Creates a post, and stores the photo in a separate transaction. There is a maximum character limit of 300. This is due to the fact that text data is stored in the transaction metadata, which has a hard cap of 2 kb. By doing this, all text posts can be queried with one request, as opposed to making one request per post. Long posts (ThinkPieces) will not have this, and will therefore require a different function.

getThought(public_key, number_of_posts)

  • Gets the most recent posts made by the individual with that public key. You can query for any number of posts, if you exceed the max that exist for that user it will just return all of them. Posts are sorted by newest, so getPost(publicKey, 5) will get the 5 most recent posts by that individual. This will return a JSON with text, time stamp, image TXID, and the post's own TXID. Example: const posts = getThought('Cf1cXx1wENt0XOA9wMoTWYB-rvP0jEdGS1gdQN7XkvQ', 10) posts[0].thought will return the most recent post's text, posts[0].timeStamp will return the most recent timeStamp, and posts[0].photoTXID will return the TXID of the associated photo. This TXID can be accessed by using getDataByTXID(posts[0].photoTXID). The post's own TXID can be retrieved using posts[0].postTXID.

createComment(text, main_post_TXID, private_key)

  • Creates a comment for the specified post.

getComment(postTXID, number_of_comments)

  • Gets the specified number of comments for the post, querying the oldest ones first (this can be switched if need be).

createAccount(name, biography, private_key)

  • Creates a new account tied to that public key. In the future, public keys will be hidden from the user with a unique naming handle (will be done with smart contract, not necessary for mvp).

createPFP(photo, private_key)

  • Creates a profile picture for the account.

getAccount(address)

  • Gets all account info for that address. The data that can is stored is name, biography, address, and pfpTXID. Example: getAccount('Cf1cXx1wENt0XOA9wMoTWYB-rvP0jEdGS1gdQN7XkvQ').pfpTXID