
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
outpost-sdk
Advanced tools
📨 🚀 The official JavaScript client SDK for the Outpost Protocol.
npm install outpost-sdk
OR
yarn add outpost-sdk
const { createClient } = require('outpost-sdk')
Or with es6
import { createClient } from 'outpost-sdk'
createClientCreate an outpost client. Returns the methods available in the SDK.
const createClient = (options: createClientParams = defaultOptions): createClientResult
The result:
type createClientResult = {
readonly getAllCommunities: () => Promise<readonly Community[]>;
readonly getPosts: (params: getPostsParams) => Promise<getPostsResult>;
readonly getChallenge: (
params: getChallengeParams
) => Promise<getChallengeResult>;
readonly getAuthToken: (
params: getAuthTokenParams
) => Promise<getAuthTokenResult>;
readonly getPostPreview: (
params: getPostPreviewParams
) => Promise<getPostPreviewResult>;
readonly uploadImage: (
params: uploadImageParams
) => Promise<uploadImageResult>;
readonly uploadPost: (params: uploadPostParams) => Promise<uploadPostResult>;
readonly uploadComment: (
params: uploadCommentParams
) => Promise<uploadCommentResult>;
readonly getPost: (params: getPostParams) => Promise<getPostResult>;
};
getChallengeGet a challenge from the outpost server so that it can verify a user owns their Ethereum address. Returns a string that the user must sign and send back to the server in getAuthToken.
getChallenge: (params: getChallengeParams) => Promise<getChallengeResult>
type getChallengeParams = { readonly address: string; };
type getChallengeResult = string;
getAuthTokenGet an authentication token to be able to access authenticated routes. Returns the users authentication token.
getAuthToken: (params: getAuthTokenParams) => Promise<getAuthTokenResult>;
type getAuthTokenParams = {
readonly address: string;
readonly signature: string;
};
type getAuthTokenResult = string;
getPostsList all the posts of a specified community. Returns an array of posts.
getPosts: (params: getPostsParams) => Promise<getPostsResult>;
type getPostsParams = { readonly slug: string; };
type getPostsResult = readonly Post[];
type Post = {
readonly id: string;
readonly title: string;
readonly subtitle: string;
readonly timestamp: number;
readonly txId: string;
readonly featuredImg: string;
};
getPostPreviewGet the preview for a post.
getPostPreview: (params: getPostPreviewParams) => Promise<getPostPreviewResult>;
export type getPostPreviewParams = { readonly txId: string; };
type getPostPreviewResult = {
readonly id: string;
readonly title: string;
readonly subtitle: string;
readonly timestamp: number;
readonly txId: string;
readonly featuredImg: string | null;
readonly canonicalLink: string;
};
uploadImageUpload a base64 representation of an image file to arweave. Returns the transaction id of the upload.
uploadImage: (params: uploadImageParams) => Promise<uploadImageResult>;
type uploadImageParams = {
readonly base64: string;
readonly authToken: string;
};
type uploadImageResult = string;
uploadPostUpload a post to arweave.
uploadPost: (params: uploadPostParams) => Promise<uploadPostResult>;
type uploadPostParams = {
readonly authToken: string;
readonly communityTxId: string;
readonly postUpload: {
readonly canonicalLink: string;
readonly postText: string;
readonly subtitle: string;
readonly timestamp: number;
readonly title: string;
};
};
type uploadPostResult = {
readonly txId: string;
readonly title: string;
readonly postText: string;
readonly subtitle: string;
readonly timestamp: number;
readonly canonicalLink: string;
readonly community: {
readonly name: string;
};
readonly user: {
readonly address: string;
};
};
getPostGet a post.
uploadPost: (params: uploadPostParams) => Promise<uploadPostResult>;
type getPostParams = {
readonly txId: string;
readonly authToken: string;
};
getAllCommunitiesGet all the publications (a.k.a. communities).
getAllCommunities: () => Promise<readonly Community[]>;
FAQs
📨 🚀 The official JavaScript client SDK for the Outpost Protocol.
The npm package outpost-sdk receives a total of 0 weekly downloads. As such, outpost-sdk popularity was classified as not popular.
We found that outpost-sdk demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.