Spasm ($SPASM)
Recent developments: 4% of the initial token allocation is held by the creator.
Creator token stats last updated: Aug 20, 2025 23:30
The following is generated by an LLM: Summary Protocol-agnostic social media memecoin with speculative utility
Analysis Spasm ($SPASM) is a decentralized social media project emphasizing protocol agnosticism and multi-signing capabilities. Despite technical ambitions and active development since 2021 (evident via GitHub repos), its $SPASM token is explicitly labeled a memecoin with no intrinsic utility. The creator holds 4% (40M tokens), with allocations including a 12–24 month vesting schedule for team (20%), airdrop (15%), marketing (20%), and treasury (30%) pools. While the developer’s long-term commitment and open-source components add credibility, the tokenomics raise concerns: excessive allocations to marketing/airdrops risk inflation, and the lack of clear utility beyond optional community gating undermines its value proposition. No audits are mentioned for Spasm’s codebase. The project’s focus on decentralization and AI integration is novel but unproven in adoption. The memecoin designation invites speculation over fundamentals.
Rating: 3
Generated with LLM: deepseek/deepseek-r1
LLM responses last updated: Aug 20, 2025 23:31
Original investment data: # Spasm ($SPASM)
URL on launchpad: https://app.virtuals.io/geneses/7657
Launched at: Wed, 20 Aug 2025 22:04:55 GMT
Launched through the launchpad: Virtuals Protocol
Launch status: GENESIS
## Token details and tokenomics
Token symbol: $SPASM
Token supply: 1 billion
Creator initial number of tokens: Creator initial number of tokens: 40,000,000 (4% of token supply)
## Creator info
Creator address: 0xF8553015220a857eda377a1E903c9e5Afb3aC2fa
Creator on basescan.org: https://basescan.org/address/0xF8553015220a857eda377a1E903c9e5Afb3aC2fa#asset-tokens
Creator on virtuals.io: https://app.virtuals.io/profile/0xF8553015220a857eda377a1E903c9e5Afb3aC2fa
Creator on zerion.io: https://app.zerion.io/0xF8553015220a857eda377a1E903c9e5Afb3aC2fa/overview
Creator on debank.com: https://debank.com/profile/0xF8553015220a857eda377a1E903c9e5Afb3aC2fa
## Description at launch
Spasm is the most advanced decentralized social media solution for the new world, where humans and AI agents thrive together in a truly open ecosystem with fully agnostic architecture.
## Overview
### Introduction
Signer and Protocol Agnostic Social Media (Spasm) is the most advanced decentralized social media solution for the new world, where humans and AI agents thrive together in a truly open ecosystem with fully agnostic architecture.
Unlike most other decentralized social media solutions, Spasm is the only open ecosystem due its agnostic architecture that allows users to sign messages with different protocols, different private keys, and propagate them across different networks.
The groundbreaking multi-signing functionality allows users to simultaneously sign the same message with multiple private keys using different protocols and broadcast the message to different networks.
A multi-signed message has multiple authors (public keys), which enables integration of features from different ecosystems. For example, non-unique usernames can be fetched from Nostr meta events, while unique usernames can be fetched from blockchain-based NFT-powered naming services like ENS. Different social graph solutions can be plugged from various ecosystems.
### Agentic economy
Spasm is the most libertarian social media solution that restores the freedom of association because it doesn't lock users to any particular private key, protocol, or network.
Many other platforms discriminate against AI agents by censoring, de-platforming, and shadow-banning them. In the Spasm ecosystem, communities can choose any moderation rules they want.
Autonomous AI agents should have an opportunity to independently sign all their messages using private keys the same as they sign crypto transactions.
### Brief history
The development of Spasm began in early 2021 with the vision of creating a web3-native forum that required no accounts, allowing users to sign all messages directly with a browser extension that holds a private key. Over the course of the next two years, the main focus was on testing the proof of concept and rewriting the code. That culminated in the full open-sourcing of the project in 2023, which attracted several communities to join the network.
However, it became evident that Spasm architecture could be significantly improved. Consequently, the decision was made to once again direct all resources on development rather than marketing and ecosystem growth. This led to the release of Spasm V2-beta in late 2024, introducing revolutionary multi-signing capabilities. This marked a pivotal moment, signaling the dawn of a new era in social media.
After a year of testing of the new architecture, the focus is now finally shifting towards adoption, marketing, partnerships, and ecosystem growth. This transition will be accompanied by the continuous addition of new features and development of the tech stack, ensuring Spasm's ongoing evolution and success.
Links
Official website: https://spasm.network
Docs: [ https://docs.spasm.network ]( https://docs.spasm.network )
Presentation: [ https://slides.spasm.network ]( https://slides.spasm.network )
Forum: [ https://forum.spasm.network ]( https://forum.spasm.network )
Npm package:
[ https://www.npmjs.com/package/spasm.js ]( https://www.npmjs.com/package/spasm.js )
Git repos:
[ https://github.com/degenrocket/spasm ]( https://github.com/degenrocket/spasm )
[ https://github.com/degenrocket/spasm.js ]( https://github.com/degenrocket/spasm.js )
[ https://github.com/degenrocket/spasm-slides ]( https://github.com/degenrocket/spasm-slides )
[ https://github.com/degenrocket/spasm-landing ]( https://github.com/degenrocket/spasm-landing )
Git repos for DegenRocket (Spasm-powered forum):
[ https://github.com/degenrocket/degenrocket-web ]( https://github.com/degenrocket/degenrocket-web )
[ https://github.com/degenrocket/degenrocket-server ]( https://github.com/degenrocket/degenrocket-server )
[ https://github.com/degenrocket/degenrocket-scripts ]( https://github.com/degenrocket/degenrocket-scripts )
Spasm instances:
[ https://forum.spasm.network ]( https://forum.spasm.network )
[ https://degenrocket.space ]( https://degenrocket.space )
[ https://dark.vegas ]( https://dark.vegas )
[ https://monero.top ]( https://monero.top )
### Contacts
Session username: degenrocket
Download Session app: [ https://getsession.org ]( https://getsession.org )
Nostr web:
[ https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z ]( https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z )
Nostr default app:
nostr:npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z
Session is currently the most private app that supports unique uncensorable usernames, so you can send a message to 'degenrocket' if you want to chat. We also have a Spasm group chat on Session.
Alternatively, you can send a direct message via your preferred Nostr app, but keep in mind that Nostr DMs don't hide metadata.
Both Session and Nostr accounts can be created via FOSS apps without any email addresses or phone numbers.
## Additional information extracted from relevant pages
<fetched_info>
""" [Creator profile on Virtuals Protocol]( https://api.virtuals.io/api/profile/0xF8553015220a857eda377a1E903c9e5Afb3aC2fa )
{
"data": {
"id": 487718,
"displayName": null,
"bio": "Software architect, full stack dev, privacy maximalist.\r\n\r\nSince 2021, I've been developing Spasm, the most advanced generation of decentralized social media. In my free time, I review architectures of other projects. For example, I've recently published a very detailed review of Session vs SimpleX architectures, the only two privacy-focused non-P2P messaging apps that are worth using at the moment.\r\nhttps://forum.spasm.network/news/spasmid010a70651fc27fb9125f7ea\r\n\r\nWeb3\r\nIn 2020, I became a full web3 degen during the DeFi summer, chasing all sorts of DeFi yield farming opportunities. I got daily inspiration and sometimes copium from SuperMassive, redphonecrypto, Andre Cronje, and other web3 pioneers who were constantly searching for alpha.\r\nIn 2023, I was enlightened to the fact that memecoins are the future of money after witnessing the launch of PEPE.\r\nIn 2025, I finally understood the potential of the agentic economy.\r\n\r\nMotivation\r\nIn 2020, amid an unprecedented attack on freedom of speech, I searched for good decentralized, censorship-resistant social media solutions since I was censored on most legacy social media platforms. However, I couldn't find any good options, so I eventually decided to craft my own alpha.\r\nThe development of Spasm began in early 2021, and since then, I've dedicated myself to the project, working on it nearly full-time for almost half a decade without any funding, demonstrating my unwavering commitment to restoring the freedoms of speech and association.\r\n\r\nPrivacy & FOSS\r\nPrivacy is an essential part of most basic freedoms, so I use only free and open-source software (FOSS) and prefer decentralized or federated networks with rare temporary exceptions like github. Thus, if you'll want to engage with me, you'll have to use the freedom tech.\r\n\r\nContacts\r\nSession username: degenrocket\r\nhttps://getsession.org\r\nNostr web:\r\nhttps://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z\r\nNostr default app:\r\nnostr:npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z\r\n\r\nSession is currently the most private app that supports unique uncensorable usernames, so you can send a message to 'degenrocket' if you want to chat. We also have a Spasm group chat on Session.\r\nAlternatively, you can send a direct message via your preferred Nostr app, but keep in mind that I don't check Nostr messages daily.\r\nBoth Session and Nostr accounts can be created via FOSS apps without any email addresses or phone numbers.",
"avatar": {
"id": 49597,
"name": "profile.jpeg",
"alternativeText": null,
"caption": null,
"width": 740,
"height": 740,
"formats": {
"small": {
"ext": ".jpeg",
"url": " https://s3.ap-southeast-1.amazonaws.com/virtualprotocolcdn/small_profile_6a8849e7e1.jpeg ",
"hash": "small_profile_6a8849e7e1",
"mime": "image/jpeg",
"name": "small_profile.jpeg",
"path": null,
"size": 40,
"width": 500,
"height": 500
},
"thumbnail": {
"ext": ".jpeg",
"url": " https://s3.ap-southeast-1.amazonaws.com/virtualprotocolcdn/thumbnail_profile_6a8849e7e1.jpeg ",
"hash": "thumbnail_profile_6a8849e7e1",
"mime": "image/jpeg",
"name": "thumbnail_profile.jpeg",
"path": null,
"size": 7.04,
"width": 156,
"height": 156
}
},
"hash": "profile_6a8849e7e1",
"ext": ".jpeg",
"mime": "image/jpeg",
"size": 55.45,
"url": " https://s3.ap-southeast-1.amazonaws.com/virtualprotocolcdn/profile_6a8849e7e1.jpeg ",
"previewUrl": null,
"provider": "aws-s3",
"provider_metadata": null,
"folderPath": "/",
"createdAt": "2025-08-11T23:24:17.212Z",
"updatedAt": "2025-08-11T23:24:17.212Z"
},
"userSocials": [
{
"id": 550830,
"provider": "metamask",
"walletAddress": "0xF8553015220a857eda377a1E903c9e5Afb3aC2fa",
"metadata": null
}
],
"socials": {
"VERIFIED_LINKS": {
"GITHUB": " https://github.com/degenrocket "
}
}
}
}
"""
""" https://github.com/degenrocket/degenrocket-server
[Skip to content]( https://github.com/degenrocket/degenrocket-server#start-of-content )
[degenrocket]( https://github.com/degenrocket )/ **[degenrocket-server]( https://github.com/degenrocket/degenrocket-server )** Public
- [Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-server ) You must be signed in to change notification settings
- [Fork\\
0]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-server )
- [Star\\
6]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-server )
Backend for Spasm-powered forum
[docs.spasm.network/forum]( https://docs.spasm.network/forum " https://docs.spasm.network/forum ")
### License
[MIT license]( https://github.com/degenrocket/degenrocket-server/blob/master/LICENSE )
[6\\
stars]( https://github.com/degenrocket/degenrocket-server/stargazers ) [0\\
forks]( https://github.com/degenrocket/degenrocket-server/forks ) [Branches]( https://github.com/degenrocket/degenrocket-server/branches ) [Tags]( https://github.com/degenrocket/degenrocket-server/tags ) [Activity]( https://github.com/degenrocket/degenrocket-server/activity )
[Star]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-server )
[Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-server ) You must be signed in to change notification settings
# degenrocket/degenrocket-server
master
[Branches]( https://github.com/degenrocket/degenrocket-server/branches ) [Tags]( https://github.com/degenrocket/degenrocket-server/tags )
[Go to Branches page]( https://github.com/degenrocket/degenrocket-server/branches )[Go to Tags page]( https://github.com/degenrocket/degenrocket-server/tags )
Go to file
Code
Open more actions menu
## Folders and files
| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>## History<br>[125 Commits]( https://github.com/degenrocket/degenrocket-server/commits/master/ )<br>[View commit history for this file.]( https://github.com/degenrocket/degenrocket-server/commits/master/ ) |
| [api]( https://github.com/degenrocket/degenrocket-server/tree/master/api "api") | [api]( https://github.com/degenrocket/degenrocket-server/tree/master/api "api") | | |
| [db]( https://github.com/degenrocket/degenrocket-server/tree/master/db "db") | [db]( https://github.com/degenrocket/degenrocket-server/tree/master/db "db") | | |
| [helper]( https://github.com/degenrocket/degenrocket-server/tree/master/helper "helper") | [helper]( https://github.com/degenrocket/degenrocket-server/tree/master/helper "helper") | | |
| [jobs]( https://github.com/degenrocket/degenrocket-server/tree/master/jobs "jobs") | [jobs]( https://github.com/degenrocket/degenrocket-server/tree/master/jobs "jobs") | | |
| [types]( https://github.com/degenrocket/degenrocket-server/tree/master/types "types") | [types]( https://github.com/degenrocket/degenrocket-server/tree/master/types "types") | | |
| [.env.example]( https://github.com/degenrocket/degenrocket-server/blob/master/.env.example ".env.example") | [.env.example]( https://github.com/degenrocket/degenrocket-server/blob/master/.env.example ".env.example") | | |
| [.gitignore]( https://github.com/degenrocket/degenrocket-server/blob/master/.gitignore ".gitignore") | [.gitignore]( https://github.com/degenrocket/degenrocket-server/blob/master/.gitignore ".gitignore") | | |
| [LICENSE]( https://github.com/degenrocket/degenrocket-server/blob/master/LICENSE "LICENSE") | [LICENSE]( https://github.com/degenrocket/degenrocket-server/blob/master/LICENSE "LICENSE") | | |
| [README.md]( https://github.com/degenrocket/degenrocket-server/blob/master/README.md "README.md") | [README.md]( https://github.com/degenrocket/degenrocket-server/blob/master/README.md "README.md") | | |
| [appConfig.ts]( https://github.com/degenrocket/degenrocket-server/blob/master/appConfig.ts "appConfig.ts") | [appConfig.ts]( https://github.com/degenrocket/degenrocket-server/blob/master/appConfig.ts "appConfig.ts") | | |
| [database.sql]( https://github.com/degenrocket/degenrocket-server/blob/master/database.sql "database.sql") | [database.sql]( https://github.com/degenrocket/degenrocket-server/blob/master/database.sql "database.sql") | | |
| [databaseV1.sql]( https://github.com/degenrocket/degenrocket-server/blob/master/databaseV1.sql "databaseV1.sql") | [databaseV1.sql]( https://github.com/degenrocket/degenrocket-server/blob/master/databaseV1.sql "databaseV1.sql") | | |
| [databaseV2.sql]( https://github.com/degenrocket/degenrocket-server/blob/master/databaseV2.sql "databaseV2.sql") | [databaseV2.sql]( https://github.com/degenrocket/degenrocket-server/blob/master/databaseV2.sql "databaseV2.sql") | | |
| [db.ts]( https://github.com/degenrocket/degenrocket-server/blob/master/db.ts "db.ts") | [db.ts]( https://github.com/degenrocket/degenrocket-server/blob/master/db.ts "db.ts") | | |
| [ecosystem-prod.config.js]( https://github.com/degenrocket/degenrocket-server/blob/master/ecosystem-prod.config.js "ecosystem-prod.config.js") | [ecosystem-prod.config.js]( https://github.com/degenrocket/degenrocket-server/blob/master/ecosystem-prod.config.js "ecosystem-prod.config.js") | | |
| [ecosystem-stage.config.js]( https://github.com/degenrocket/degenrocket-server/blob/master/ecosystem-stage.config.js "ecosystem-stage.config.js") | [ecosystem-stage.config.js]( https://github.com/degenrocket/degenrocket-server/blob/master/ecosystem-stage.config.js "ecosystem-stage.config.js") | | |
| [jest.config.js]( https://github.com/degenrocket/degenrocket-server/blob/master/jest.config.js "jest.config.js") | [jest.config.js]( https://github.com/degenrocket/degenrocket-server/blob/master/jest.config.js "jest.config.js") | | |
| [package-lock.json]( https://github.com/degenrocket/degenrocket-server/blob/master/package-lock.json "package-lock.json") | [package-lock.json]( https://github.com/degenrocket/degenrocket-server/blob/master/package-lock.json "package-lock.json") | | |
| [package.json]( https://github.com/degenrocket/degenrocket-server/blob/master/package.json "package.json") | [package.json]( https://github.com/degenrocket/degenrocket-server/blob/master/package.json "package.json") | | |
| [tsconfig.json]( https://github.com/degenrocket/degenrocket-server/blob/master/tsconfig.json "tsconfig.json") | [tsconfig.json]( https://github.com/degenrocket/degenrocket-server/blob/master/tsconfig.json "tsconfig.json") | | |
| View all files |
## Repository files navigation
# DegenRocket server
[Permalink: DegenRocket server]( https://github.com/degenrocket/degenrocket-server#degenrocket-server )
DegenRocket-server is a backend for a [Spasm-powered]( https://github.com/degenrocket/spasm.js ) forum.
DegenRocket-web repository can be found [here]( https://github.com/degenrocket/degenrocket-web ).
## Server setup
[Permalink: Server setup]( https://github.com/degenrocket/degenrocket-server#server-setup )
If you don't have any experience at setting up a server, then there is a beginner-friendly guide with scripts for an automated [initial server setup]( https://github.com/degenrocket/degenrocket-scripts ).
## Postgres database
[Permalink: Postgres database]( https://github.com/degenrocket/degenrocket-server#postgres-database )
### Setup
[Permalink: Setup]( https://github.com/degenrocket/degenrocket-server#setup )
By default, user `postgres` doesn't have a password on Ubuntu, so the backend will fail to connect due to a wrong password and it's generally not a good idea to use a default `postgres` user with superuser privileges for the app. The solution is to create a new user with a password, but without privileges, e.g.:
```
sudo su - postgres
psql
CREATE USER dbuser WITH PASSWORD 'dbuser';
CREATE DATABASE spasm_database WITH OWNER = dbuser;
CREATE DATABASE spasm_database_test WITH OWNER = dbuser;
exit
exit
```
Note: make sure to use a strong password and add it to `.env`.
```
nano .env
```
Example:
```
POSTGRES_PASSWORD=dbuser
POSTGRES_USER=dbuser
```
To create all tables in a new database, execute the code from `database.sql`.
Note: skip lines `CREATE DATABASE spasm_database;` and `CREATE DATABASE spasm_database_test;` because we've already created databases in the step above.
```
sudo su - postgres
psql -h localhost -d spasm_database -U dbuser -p 5432
DO $$
BEGIN
-- V1
IF NOT EXISTS (
SELECT FROM information_schema.tables
WHERE table_schema = 'public' AND table_name = 'posts'
) THEN
CREATE TABLE posts (
...
```
Note: table `posts` is not necessary if you disable web2 posts. However, it's suggested to create table `posts` to avoid any errors.
Alternatively, you can use scripts `npm run initialize-db` or `npm run migrate`, which will attempt to create new main and test databases, as well as all the necessary tables and indices.
However, these scripts require a database user to have a privilege to create a new database. If your database user doesn't have that privilege, then you can grant it by executing the following SQL command from a superuser:
```
ALTER USER your_username CREATEDB;
```
Once your database user has a privilege to create new databases, you can run scripts `npm run initialize-db` or `npm run migrate` again.
### Tables
[Permalink: Tables]( https://github.com/degenrocket/degenrocket-server#tables )
##### Tables V2
[Permalink: Tables V2]( https://github.com/degenrocket/degenrocket-server#tables-v2 )
Table `spasm_events` contains all signed user-generated events and unsigned web2 posts (RSS).
##### Tables V1
[Permalink: Tables V1]( https://github.com/degenrocket/degenrocket-server#tables-v1 )
Table `posts` contains web2 posts (not signed with any private key), usually fetched from RSS sources.
Table `actions` contains all web3 actions that are signed with a private key.
Table `actions_count` contains the number of reactions received by the target action from other actions on this server.
## Install
[Permalink: Install]( https://github.com/degenrocket/degenrocket-server#install )
```
# update npm
npm install -g npm
# install nvm to manage node versions
# https://github.com/nvm-sh/nvm
# install node v18
nvm install 18
# set node v18 as default
nvm alias default 18
# switch to node v18
nvm use 18
# install packages
npm install
```
* * *
## Download the app
[Permalink: Download the app]( https://github.com/degenrocket/degenrocket-server#download-the-app )
Download the app from the Github into the `backend/` folder.
_Note: the app should already be downloaded if you've used scripts for an automated [initial server setup]( https://github.com/degenrocket/degenrocket-scripts )._
```
git clone https://github.com/degenrocket/degenrocket-server.git backend/
cd backend/
```
* * *
## Environment
[Permalink: Environment]( https://github.com/degenrocket/degenrocket-server#environment )
Create default `.env` file, see example `.env.example`.
```
cp .env.example .env
```
## Test locally
[Permalink: Test locally]( https://github.com/degenrocket/degenrocket-server#test-locally )
Install npm packages in the backend folder.
```
npm install
```
Start the app.
```
npm run dev
```
Open a browser and test API at `localhost:5000/api/events`.
_Note: You should get `null` or empty array `[]` if your database is empty_
## Run production
[Permalink: Run production]( https://github.com/degenrocket/degenrocket-server#run-production )
Run with pm2
```
# Install pm2
npm i pm2 -g
# To make sure app starts after reboot
pm2 startup
# Run the app
npm run prod
# Freeze a process list on reboot
pm2 save
# Check processes
pm2 list
```
## RSS
[Permalink: RSS]( https://github.com/degenrocket/degenrocket-server#rss )
The current git version doesn't include the RSS module. It might be added in the future.
## Troubleshooting
[Permalink: Troubleshooting]( https://github.com/degenrocket/degenrocket-server#troubleshooting )
#### Database permission denied
[Permalink: Database permission denied]( https://github.com/degenrocket/degenrocket-server#database-permission-denied )
If you get `permission denied` errors accessing your database like:
```
error: permission denied for table app_configs
error: permission denied for table spasm_events
insertSpasmEventV2 failed error: permission denied for sequence spasm_events_db_key_seq
```
Then execute the following commands:
```
sudo su - postgres
psql
```
```
-- First, grant permissions on all existing sequences
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO dbuser;
-- Then, set default permissions for future sequences
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO dbuser;
-- Grant privileges on all sequences in the schema
GRANT USAGE, SELECT, UPDATE ON ALL SEQUENCES IN SCHEMA public TO dbuser;
```
## Contact
[Permalink: Contact]( https://github.com/degenrocket/degenrocket-server#contact )
Send a message to `degenrocket` on [Session]( https://getsession.org/ ) if you need any help.
## About
Backend for Spasm-powered forum
[docs.spasm.network/forum]( https://docs.spasm.network/forum " https://docs.spasm.network/forum ")
### Resources
[Readme]( https://github.com/degenrocket/degenrocket-server#readme-ov-file )
### License
[MIT license]( https://github.com/degenrocket/degenrocket-server#MIT-1-ov-file )
[Activity]( https://github.com/degenrocket/degenrocket-server/activity )
### Stars
[**6**\\
stars]( https://github.com/degenrocket/degenrocket-server/stargazers )
### Watchers
[**1**\\
watching]( https://github.com/degenrocket/degenrocket-server/watchers )
### Forks
[**0**\\
forks]( https://github.com/degenrocket/degenrocket-server/forks )
[Report repository]( https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fdegenrocket%2Fdegenrocket-server&report=degenrocket+%28user%29 )
## Languages
- [TypeScript99.7%]( https://github.com/degenrocket/degenrocket-server/search?l=typescript )
- [JavaScript0.3%]( https://github.com/degenrocket/degenrocket-server/search?l=javascript )
"""
""" https://github.com/degenrocket/spasm-slides
[Skip to content]( https://github.com/degenrocket/spasm-slides#start-of-content )
[degenrocket]( https://github.com/degenrocket )/ **[spasm-slides]( https://github.com/degenrocket/spasm-slides )** Public
- [Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-slides ) You must be signed in to change notification settings
- [Fork\\
0]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-slides )
- [Star\\
0]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-slides )
Slides for Spasm [ https://slides.spasm.network ]( https://slides.spasm.network/ )
### License
[MIT license]( https://github.com/degenrocket/spasm-slides/blob/master/LICENSE )
[0\\
stars]( https://github.com/degenrocket/spasm-slides/stargazers ) [0\\
forks]( https://github.com/degenrocket/spasm-slides/forks ) [Branches]( https://github.com/degenrocket/spasm-slides/branches ) [Tags]( https://github.com/degenrocket/spasm-slides/tags ) [Activity]( https://github.com/degenrocket/spasm-slides/activity )
[Star]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-slides )
[Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-slides ) You must be signed in to change notification settings
# degenrocket/spasm-slides
master
[Branches]( https://github.com/degenrocket/spasm-slides/branches ) [Tags]( https://github.com/degenrocket/spasm-slides/tags )
[Go to Branches page]( https://github.com/degenrocket/spasm-slides/branches )[Go to Tags page]( https://github.com/degenrocket/spasm-slides/tags )
Go to file
Code
Open more actions menu
## Folders and files
| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>## History<br>[11 Commits]( https://github.com/degenrocket/spasm-slides/commits/master/ )<br>[View commit history for this file.]( https://github.com/degenrocket/spasm-slides/commits/master/ ) |
| [slides]( https://github.com/degenrocket/spasm-slides/tree/master/slides "slides") | [slides]( https://github.com/degenrocket/spasm-slides/tree/master/slides "slides") | | |
| [.gitignore]( https://github.com/degenrocket/spasm-slides/blob/master/.gitignore ".gitignore") | [.gitignore]( https://github.com/degenrocket/spasm-slides/blob/master/.gitignore ".gitignore") | | |
| [LICENSE]( https://github.com/degenrocket/spasm-slides/blob/master/LICENSE "LICENSE") | [LICENSE]( https://github.com/degenrocket/spasm-slides/blob/master/LICENSE "LICENSE") | | |
| [README.md]( https://github.com/degenrocket/spasm-slides/blob/master/README.md "README.md") | [README.md]( https://github.com/degenrocket/spasm-slides/blob/master/README.md "README.md") | | |
| [ecosystem-prod.config.js]( https://github.com/degenrocket/spasm-slides/blob/master/ecosystem-prod.config.js "ecosystem-prod.config.js") | [ecosystem-prod.config.js]( https://github.com/degenrocket/spasm-slides/blob/master/ecosystem-prod.config.js "ecosystem-prod.config.js") | | |
| [package-lock.json]( https://github.com/degenrocket/spasm-slides/blob/master/package-lock.json "package-lock.json") | [package-lock.json]( https://github.com/degenrocket/spasm-slides/blob/master/package-lock.json "package-lock.json") | | |
| [package.json]( https://github.com/degenrocket/spasm-slides/blob/master/package.json "package.json") | [package.json]( https://github.com/degenrocket/spasm-slides/blob/master/package.json "package.json") | | |
| View all files |
## Repository files navigation
## Slides for Signer and Protocol Agnostic Social Media (Spasm)
[Permalink: Slides for Signer and Protocol Agnostic Social Media (Spasm)]( https://github.com/degenrocket/spasm-slides#slides-for-signer-and-protocol-agnostic-social-media-spasm )
[]( https://github.com/degenrocket/spasm/blob/f00b5d86a7309a35867413293bbd95d9041077a5/static/pyramid-black.png?raw=true )
This repo is for Spasm [slides]( https://slides.spasm.network/ ).
For **spasm.js** library see:
[github]( https://github.com/degenrocket/spasm.js ) /
[npm]( https://www.npmjs.com/package/spasm.js )
### Run slides
[Permalink: Run slides]( https://github.com/degenrocket/spasm-slides#run-slides )
- Install packages in root folder: `npm install`
- Install packages in `./slides` folder: `cd slides && npm install`
- Edit `index.html` file in `./slides` if necessary
- Run dev server from root: `npm run dev`
- Run prod server from root: `npm run prod`
### License
[Permalink: License]( https://github.com/degenrocket/spasm-slides#license )
MIT License
* * *
[Enter the future]( https://slides.spasm.network/ )
## About
Slides for Spasm [ https://slides.spasm.network ]( https://slides.spasm.network/ )
### Resources
[Readme]( https://github.com/degenrocket/spasm-slides#readme-ov-file )
### License
[MIT license]( https://github.com/degenrocket/spasm-slides#MIT-1-ov-file )
[Activity]( https://github.com/degenrocket/spasm-slides/activity )
### Stars
[**0**\\
stars]( https://github.com/degenrocket/spasm-slides/stargazers )
### Watchers
[**0**\\
watching]( https://github.com/degenrocket/spasm-slides/watchers )
### Forks
[**0**\\
forks]( https://github.com/degenrocket/spasm-slides/forks )
[Report repository]( https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fdegenrocket%2Fspasm-slides&report=degenrocket+%28user%29 )
## [Contributors\ 2]( https://github.com/degenrocket/spasm-slides/graphs/contributors )
- []( https://github.com/degenrocket )[**degenrocket**]( https://github.com/degenrocket )
- []( https://github.com/adivinaelnombre )[**adivinaelnombre**]( https://github.com/adivinaelnombre )
## Languages
- [HTML98.8%]( https://github.com/degenrocket/spasm-slides/search?l=html )
- [JavaScript1.2%]( https://github.com/degenrocket/spasm-slides/search?l=javascript )
"""
""" https://github.com/degenrocket/spasm.js
[Skip to content]( https://github.com/degenrocket/spasm.js#start-of-content )
[degenrocket]( https://github.com/degenrocket )/ **[spasm.js]( https://github.com/degenrocket/spasm.js )** Public
- [Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm.js ) You must be signed in to change notification settings
- [Fork\\
0]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm.js )
- [Star\\
3]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm.js )
Signer and Protocol Agnostic Social Media (Spasm)
[spasm.network]( https://spasm.network/ " https://spasm.network ")
### License
[MIT license]( https://github.com/degenrocket/spasm.js/blob/master/LICENSE.md )
[3\\
stars]( https://github.com/degenrocket/spasm.js/stargazers ) [0\\
forks]( https://github.com/degenrocket/spasm.js/forks ) [Branches]( https://github.com/degenrocket/spasm.js/branches ) [Tags]( https://github.com/degenrocket/spasm.js/tags ) [Activity]( https://github.com/degenrocket/spasm.js/activity )
[Star]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm.js )
[Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm.js ) You must be signed in to change notification settings
# degenrocket/spasm.js
master
[Branches]( https://github.com/degenrocket/spasm.js/branches ) [Tags]( https://github.com/degenrocket/spasm.js/tags )
[Go to Branches page]( https://github.com/degenrocket/spasm.js/branches )[Go to Tags page]( https://github.com/degenrocket/spasm.js/tags )
Go to file
Code
Open more actions menu
## Folders and files
| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>## History<br>[80 Commits]( https://github.com/degenrocket/spasm.js/commits/master/ )<br>[View commit history for this file.]( https://github.com/degenrocket/spasm.js/commits/master/ ) |
| [lib.commonjs]( https://github.com/degenrocket/spasm.js/tree/master/lib.commonjs "lib.commonjs") | [lib.commonjs]( https://github.com/degenrocket/spasm.js/tree/master/lib.commonjs "lib.commonjs") | | |
| [lib.esm]( https://github.com/degenrocket/spasm.js/tree/master/lib.esm "lib.esm") | [lib.esm]( https://github.com/degenrocket/spasm.js/tree/master/lib.esm "lib.esm") | | |
| [misc/basedirs]( https://github.com/degenrocket/spasm.js/tree/master/misc/basedirs "This path skips through empty directories") | [misc/basedirs]( https://github.com/degenrocket/spasm.js/tree/master/misc/basedirs "This path skips through empty directories") | | |
| [src.ts]( https://github.com/degenrocket/spasm.js/tree/master/src.ts "src.ts") | [src.ts]( https://github.com/degenrocket/spasm.js/tree/master/src.ts "src.ts") | | |
| [.gitignore]( https://github.com/degenrocket/spasm.js/blob/master/.gitignore ".gitignore") | [.gitignore]( https://github.com/degenrocket/spasm.js/blob/master/.gitignore ".gitignore") | | |
| [.npmignore]( https://github.com/degenrocket/spasm.js/blob/master/.npmignore ".npmignore") | [.npmignore]( https://github.com/degenrocket/spasm.js/blob/master/.npmignore ".npmignore") | | |
| [LICENSE.md]( https://github.com/degenrocket/spasm.js/blob/master/LICENSE.md "LICENSE.md") | [LICENSE.md]( https://github.com/degenrocket/spasm.js/blob/master/LICENSE.md "LICENSE.md") | | |
| [README.md]( https://github.com/degenrocket/spasm.js/blob/master/README.md "README.md") | [README.md]( https://github.com/degenrocket/spasm.js/blob/master/README.md "README.md") | | |
| [jest.config.js]( https://github.com/degenrocket/spasm.js/blob/master/jest.config.js "jest.config.js") | [jest.config.js]( https://github.com/degenrocket/spasm.js/blob/master/jest.config.js "jest.config.js") | | |
| [package-lock.json]( https://github.com/degenrocket/spasm.js/blob/master/package-lock.json "package-lock.json") | [package-lock.json]( https://github.com/degenrocket/spasm.js/blob/master/package-lock.json "package-lock.json") | | |
| [package.json]( https://github.com/degenrocket/spasm.js/blob/master/package.json "package.json") | [package.json]( https://github.com/degenrocket/spasm.js/blob/master/package.json "package.json") | | |
| [tsconfig.base.json]( https://github.com/degenrocket/spasm.js/blob/master/tsconfig.base.json "tsconfig.base.json") | [tsconfig.base.json]( https://github.com/degenrocket/spasm.js/blob/master/tsconfig.base.json "tsconfig.base.json") | | |
| [tsconfig.commonjs.json]( https://github.com/degenrocket/spasm.js/blob/master/tsconfig.commonjs.json "tsconfig.commonjs.json") | [tsconfig.commonjs.json]( https://github.com/degenrocket/spasm.js/blob/master/tsconfig.commonjs.json "tsconfig.commonjs.json") | | |
| [tsconfig.esm.json]( https://github.com/degenrocket/spasm.js/blob/master/tsconfig.esm.json "tsconfig.esm.json") | [tsconfig.esm.json]( https://github.com/degenrocket/spasm.js/blob/master/tsconfig.esm.json "tsconfig.esm.json") | | |
| [tsconfig.types.json]( https://github.com/degenrocket/spasm.js/blob/master/tsconfig.types.json "tsconfig.types.json") | [tsconfig.types.json]( https://github.com/degenrocket/spasm.js/blob/master/tsconfig.types.json "tsconfig.types.json") | | |
| View all files |
## Repository files navigation
# Signer and Protocol Agnostic Social Media (Spasm)
[Permalink: Signer and Protocol Agnostic Social Media (Spasm)]( https://github.com/degenrocket/spasm.js#signer-and-protocol-agnostic-social-media-spasm )
## Overview
[Permalink: Overview]( https://github.com/degenrocket/spasm.js#overview )
The future of social media is agnostic to signing keys, messaging formats, transport protocols and storage infrastructure. However, such design places significant burden on developers, who must maintain a myriad of protocols, formats, and architectures.
This library simplifies the process by encapsulating the complexities of various messaging formats into a single, standardized JSON object called `SpasmEvent`. By abstracting the underlying differences between these formats, it provides a unified interface for developers to work with, ensuring consistency and reducing the need for custom handling of each format.
For instance, instead of maintaining three distinct versions of the frontend (UI) and three separate database tables for three different messaging formats, developers can leverage this library to standardize all messages into a single format. This approach simplifies the architecture by consolidating the database tables into one and requiring only a single version of the UI, with minor adjustments as needed.
This library also introduces an innovative concept of signing the same message with multiple protocols and different private keys, while still sharing the same deterministic Spasm event ID, allowing not only the distribution of the message across different networks, but also chaining of all replies and reactions back to the original message.
TypeScript interfaces of JSON objects of messaging formats that can be standardized with this library can be found at `./src.ts/types/interfaces.ts`.
```
export type UnknownEventV2 =
DmpEvent |
DmpEventSignedClosed |
DmpEventSignedOpened |
NostrEvent |
NostrEventSignedOpened |
NostrSpasmEvent |
NostrSpasmEventSignedOpened |
SpasmEventV0 |
SpasmEventV2 |
SpasmEventBodyV2 |
SpasmEventEnvelopeV2 |
SpasmEventEnvelopeWithTreeV2 |
SpasmEventDatabaseV2 |
SpasmEventBodySignedClosedV2
```
After converting an unknown event to a Spasm event, you can easily access common properties across most public messaging formats such as:
- `spasmEvent.action`
- `spasmEvent.content`
- `spasmEvent.timestamp`
- `spasmEvent.parent.ids`
- `spasmEvent.parent.ids[0].value`
- `spasmEvent.ids`
- `spasmEvent.ids[0].value`
- `spasmEvent.ids[0].format.name`
- `spasmEvent.authors`
- `spasmEvent.authors[0].addresses`
- `spasmEvent.authors[0].addresses[0].value`
- `spasmEvent.authors[0].addresses[0].format.name`
- `spasmEvent.signatures`
- `spasmEvent.signatures[0].value`
- `spasmEvent.signatures[0].pubkey`
- `spasmEvent.signatures[0].format.name`
Any Spasm event can be signed with different protocols (e.g., Spasm, Dmp, Nostr), so all the original (un)signed event objects/strings are stored at:
- `spasmEvent.siblings`
See the full list of properties of `SpasmEventV2` at `./src.ts/types/interfaces.ts`.
Here is a schema of the SpasmEventV2 interface:
```
#01 = EventForSpasmid01
SE = SpasmEvent
Body = SpasmEventBody
Env = SpasmEventEnvelope
Tree = SpasmEventEnvelopeWithTree
DB = SpasmEventDatabase
event*
│
├── type --- SE Body Env Tree DB
├── protocol (+ sibling) --- -- Body --- ---- --
│ ├── name --- -- Body --- ---- --
│ └── version --- -- Body --- ---- --
├── root --- SE ---- --- Tree DB
│ ├── ids[] --- SE ---- --- Tree DB
│ ├── marker --- SE ---- --- Tree DB
│ ├── depth --- SE ---- --- Tree --
│ └── event* --- SE ---- --- Tree --
├── parent #01 SE Body --- Tree DB
│ ├── ids[] #01 SE Body --- Tree DB
│ ├── marker #01 SE Body --- Tree DB
│ ├── depth --- SE ---- --- Tree --
│ └── event* --- SE ---- --- Tree --
├── action #01 SE Body --- ---- DB
├── title #01 SE Body --- ---- DB
├── content #01 SE Body --- ---- DB
├── timestamp #01 SE Body --- ---- DB
├── authors[] #01 SE Body --- ---- DB
│ ├── addresses[] #01 SE Body --- ---- DB
│ │ ├── value #01 SE Body --- ---- DB
│ │ ├── format #01 SE Body --- ---- DB
│ │ │ ├── name #01 SE Body --- ---- DB
│ │ │ └── version #01 SE Body --- ---- DB
│ │ └── verified --- SE ---- --- ---- DB
│ └── usernames[] (eg RSS posts) #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── protocol #01 SE Body --- ---- DB
│ ├── proof #01 SE Body --- ---- DB
│ └── provider #01 SE Body --- ---- DB
├── categories[] #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── sub (recursive category) #01 SE Body --- ---- DB
├── tips[] #01 SE Body --- ---- DB
│ ├── address #01 SE Body --- ---- DB
│ ├── text #01 SE Body --- ---- DB
│ ├── expiration #01 SE Body --- ---- DB
│ │ └── timestamp #01 SE Body --- ---- DB
│ ├── currency #01 SE Body --- ---- DB
│ │ ├── name #01 SE Body --- ---- DB
│ │ └── ticker #01 SE Body --- ---- DB
│ └── network #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── id #01 SE Body --- ---- DB
├── hosts[] (see hosts below) #01 SE Body --- ---- DB
├── links[] (see link below) #01 SE Body --- ---- DB
├── keywords[] #01 SE Body --- ---- DB
├── tags[] #01 SE Body --- ---- DB
├── medias[] #01 SE Body --- ---- DB
│ ├── hashes[] (see hash below) #01 SE Body --- ---- DB
│ ├── links[] (see link below) #01 SE Body --- ---- DB
│ └── type #01 SE Body --- ---- DB
├── references[] #01 SE Body --- Tree DB
│ ├── ids[] #01 SE Body --- Tree DB
│ ├── marker #01 SE Body --- Tree DB
│ └── event* --- SE ---- --- Tree --
├── mentions[] #01 SE Body --- ---- DB
│ ├── addresses[] #01 SE Body --- ---- DB
│ │ ├── value #01 SE Body --- ---- DB
│ │ └── format #01 SE Body --- ---- DB
│ │ ├── name #01 SE Body --- ---- DB
│ │ └── version #01 SE Body --- ---- DB
│ └── usernames[] #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── protocol #01 SE Body --- ---- DB
│ ├── proof #01 SE Body --- ---- DB
│ └── provider #01 SE Body --- ---- DB
├── proofs[] #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── links[] #01 SE Body --- ---- DB
│ └── protocol #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── version #01 SE Body --- ---- DB
├── previousEvent (+ sibling) --- -- Body --- ---- --
│ ├── ids[] --- -- Body --- ---- --
│ ├── marker --- -- Body --- ---- --
│ ├── depth --- -- Body --- ---- --
│ └── event* --- -- ---- --- ---- --
├── sequence (+ sibling) --- -- Body --- ---- --
├── license #01 SE Body --- ---- DB
├── language #01 SE Body --- ---- DB
├── extra #01 SE Body --- ---- DB
├── pows (only 1 in body) --- SE Body --- ---- DB
│ ├── nonce --- SE Body --- ---- DB
│ ├── difficulty --- SE Body --- ---- DB
│ ├── words[] --- SE Body --- ---- DB
│ └── network --- SE Body --- ---- DB
│ ├── name --- SE Body --- ---- DB
│ └── id --- SE Body --- ---- DB
│
├── ids[] --- SE ---- Env Tree DB
├── signatures[] --- SE ---- Env Tree DB
│ ├── value --- SE ---- Env Tree DB
│ ├── pubkey --- SE ---- Env Tree DB
│ └── format --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ └── version --- SE ---- Env Tree DB
│
├── siblings[] --- SE ---- Env Tree DB
│ ├── type --- SE ---- Env Tree DB
│ ├── signedString --- SE ---- Env Tree DB
│ ├── originalObject --- SE ---- Env Tree DB
│ ├── signatures[] --- SE ---- Env Tree DB
│ │ ├── value --- SE ---- Env Tree DB
│ │ ├── pubkey --- SE ---- Env Tree DB
│ │ └── format --- SE ---- Env Tree DB
│ │ ├── name --- SE ---- Env Tree DB
│ │ └── version --- SE ---- Env Tree DB
│ ├── sequence --- SE ---- Env Tree DB
│ ├── previousEvent --- SE ---- Env Tree DB
│ │ ├── ids[] --- SE ---- Env Tree DB
│ │ ├── marker --- SE ---- Env Tree DB
│ │ ├── depth --- SE ---- Env Tree DB
│ │ └── event* --- SE ---- --- Tree DB
│ └── protocol --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ ├── version --- SE ---- Env Tree DB
│ ├── hasExtraSpasmFields --- SE ---- Env Tree DB
│ └── extraSpasmFieldsVersion --- SE ---- Env Tree DB
│
├── db --- SE ---- Env Tree DB
│ ├── key --- SE ---- Env Tree DB
│ ├── addedTimestamp --- SE ---- Env Tree DB
│ ├── updatedTimestamp --- SE ---- Env Tree DB
│ └── table --- SE ---- Env Tree DB
├── source --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ ├── uiUrl --- SE ---- Env Tree DB
│ ├── apiUrl --- SE ---- Env Tree DB
│ ├── query --- SE ---- Env Tree DB
│ └── showSource --- SE ---- Env Tree DB
├── stats[] --- SE ---- Env Tree DB
│ ├── action --- SE ---- Env Tree DB
│ ├── total --- SE ---- Env Tree DB
│ ├── latestTimestamp --- SE ---- Env Tree DB
│ ├── latestDbTimestamp --- SE ---- Env Tree DB
│ └── ...(upvote, downvote, etc.) --- SE ---- Env Tree DB
├── sharedBy[] --- SE ---- Env Tree DB
│ └── ids[] --- SE ---- Env Tree DB
│
│ (Envelope with tree)
├── root --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
├── parent --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
├── references[] --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
└── children[] --- SE ---- Env Tree --
└── SE | Env | Tree --- SE ---- Env Tree --
id
├── value #.
├── format #.
│ ├── name
│ └── version
└── hosts[]
hash
├── value
├── name
├── length
├── type
├── pieceLength
└── pieces[]
link
├── value
├── protocol
├── origin
├── host
├── pathname
├── search
├── port
└── originalProtocolKey
```
### Features
[Permalink: Features]( https://github.com/degenrocket/spasm.js#features )
- identify web2 posts and web3 events
- convert web2 posts and web3 events to Spasm event
- create unique Spasm ID for single-signed and multi-signed events
- merge two Spasm events with the same Spasm ID
## Installation
[Permalink: Installation]( https://github.com/degenrocket/spasm.js#installation )
```
npm install spasm.js
```
## Usage
[Permalink: Usage]( https://github.com/degenrocket/spasm.js#usage )
#### CommonJS (require)
[Permalink: CommonJS (require)]( https://github.com/degenrocket/spasm.js#commonjs-require )
Option 1. Import separate functions:
```
const {identifyObject} = require('spasm.js')
const {convertToSpasm} = require('spasm.js')
const {mergeSpasmEventsV2} = require('spasm.js')
const {mergeDifferentSpasmEventsV2} = require('spasm.js')
const event = {
// some event
}
// Identify the event
const info = identifyObject(event)
// Convert to Spasm (the latest version)
const spasmEvent = convertToSpasm(event)
// Convert to Spasm (specify version)
const spasmEvent = convertToSpasm(
event, { to: { spasm: { version: "2.0.0" } } }
)
// Merge events into one event
const spasmEvent = mergeSpasmEventsV2([\
event, eventWithStats, eventWithComments\
])
// Merge different events
const spasmEvents = mergeDifferentSpasmEventsV2([\
event, eventWithStats, eventWithComments,\
anotherEvent, anotherEventWithStats\
])
```
Option 2. Import all functions:
```
const spasm = require('spasm.js')
const event = {
// some event
}
// Identify the event
const info = spasm.identifyObject(event)
// Convert to Spasm
const spasmEvent = spasm.convertToSpasm(event)
// Merge events into one event
const spasmEvent = spasm.mergeSpasmEventsV2([\
event, eventWithStats, eventWithComments\
])
// Merge different events
const spasmEvents = spasm.mergeDifferentSpasmEventsV2([\
event, eventWithStats, eventWithComments,\
anotherEvent, anotherEventWithStats\
])
```
#### ESM (import)
[Permalink: ESM (import)]( https://github.com/degenrocket/spasm.js#esm-import )
Option 1. Import separate functions:
```
import {identifyObject} from 'spasm.js'
import {convertToSpasm} from 'spasm.js'
const event = {
// some event
}
// Identify the event
const info = identifyObject(event)
// Convert to Spasm
const spasmEvent = convertToSpasm(event)
```
Option 2. Import all functions:
```
import * as spasm from 'spasm.js'
const event = {
// some event
}
// Identify the event
const info = spasm.identifyObject(event)
// Convert to Spasm
const spasmEvent = spasm.convertToSpasm(event)
```
## Utils
[Permalink: Utils]( https://github.com/degenrocket/spasm.js#utils )
```
// Get an array of all signers/pubkeys from the event
// (including signers which cannot be verified against signatures)
const signers = spasm.getAllSigners(event)
// Get an array of signers/pubkeys which have
// been verified against attached signatures
const verifiedSigners = spasm.getVerifiedSigners(event)
const spasmSigners = getAllSpasmSigners(event)
const ethereumSigners = getAllEthereumSigners(event)
const nostrSigners = getAllNostrSigners(event)
const verifiedSpasmSigners = getVerifiedSpasmSigners(event)
const verifiedEthereumSigners = getVerifiedEthereumSigners(event)
const verifiedNostrSigners = getVerifiedNostrSigners(event)
```
```
// Get an array of signers/pubkeys which match values provided
// in the attached list (e.g., moderators, whitelisted, banned)
const moderators = spasm.getSignersListedIn(event, moderatorsList)
// alias
const banned = spasm.getPubkeysListedIn(event, bannedList)
```
```
// Check if all signers/pubkeys match values provided
// in the attached list (e.g., moderators, whitelisted, banned)
const areModerators = spasm.areAllSignersListedIn(event, moderatorsList)
// alias
const areBanned = spasm.areAllPubkeysListedIn(event, bannedList)
```
```
// Check if at least one signer/pubkey matches a value provided
// in the attached list (e.g., moderators, whitelisted, banned)
const isModerator = spasm.isAnySignerListedIn(event, moderatorsList)
// alias
const isBanned = spasm.isAnyPubkeyListedIn(event, bannedList)
```
```
// Get an array of all event IDs
const ids = spasm.getAllEventIds(event)
// Get an array of all parent IDs
const parentIds = spasm.getAllParentIds(event)
// Get an array of all root IDs
const rootIds = spasm.getAllRootIds(event)
```
```
// Get an array of all event signatures
const signatures = spasm.getAllSignatures(event)
```
```
// Get a stat object of a specified action
const stats = spasm.getStatByAction(event, "react")
```
```
// Get a total number of a specified action
const stats = spasm.getTotalOfAction(event, "reply")
```
```
// Get a total number of a specified reaction
const stats = spasm.getTotalOfReaction(event, "upvote")
```
```
// Get a total number of the most popular reaction
const stats = spasm.getTotalOfMostPopularReaction(event)
```
```
// Get a total number of a react/reply action
const stats = spasm.getTotalOfReact(event)
const stats = spasm.getTotalOfReply(event)
// aliases
const stats = spasm.getTotalOfActionReact(event)
const stats = spasm.getTotalOfReactAction(event)
const stats = spasm.getTotalOfActionReply(event)
const stats = spasm.getTotalOfReplyAction(event)
```
```
// Extract an ID from an event.
const nostrId = spasm.getIdByFormat(event, { name: "nostr-hex" })
const spasmId = spasm.getIdByFormat(event, {
name: "spasmid", version: "01"
})
// alias
const spasmId = spasm.extractIdByFormat(event, {
name: "spasmid"
})
// other aliases for extracting event, parent, and root IDs:
// extractSpasmId01()
// extractParentIdByFormat()
// extractParentSpasmId01()
// extractRootIdByFormat()
// extractRootSpasmId01()
// Note: the functions above don't calculate new IDs, but
// simply extracts an existing ID from an event object.
// If you want to calculate a Spasm ID (e.g., to verify it),
// then you must use another function, for example:
const spasmId = spasm.getSpasmId(event)
```
```
// Extract Nostr event(s) from a Spasm event.
const nostrEvent = extractNostrEvent(spasmEvent)
const nostrSignedEvent = extractSignedNostrEvent(spasmEvent)
const nostrEvents = extractNostrEvents(spasmEvent)
const nostrSignedEvents = extractSignedNostrEvents(spasmEvent)
// Note: Spasm event can have multiple siblings of Nostr event type
```
```
// Check if Spasm event has any sibling of protocol type
const ifHasSiblingOfProtocol = hasSiblingOfProtocol(event, "spasm")
const ifHasSiblingSpasm = hasSiblingSpasm(event)
const ifHasSiblingDmp = hasSiblingDmp(event)
const ifHasSiblingNostr = hasSiblingNostr(event)
const ifHasSiblingWeb2 = hasSiblingWeb2(event)
```
```
const idFormatName = extractIdFormatNameFromSpasmEventIdV2(event)
const ifFormatNames = extractAllIdFormatNamesFromSpasmEventV2(event)
// aliases
const ifFormatNames = getAllFormatNamesFromSpasmEventV2(event)
const ifFormatNames = getAllFormatNamesFromEvent(event)
```
```
const ifEventHasThisId = spasm.checkIfEventHasThisId(
event, "spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
)
```
```
const event = spasm.getEventById(
[ event1, event2, event3 ],
"spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
)
```
```
const events = spasm.getEventsByIds(
[ event1, event2, event3 ],
[\
"spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f",\
"db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651"\
]
)
```
```
// Convert an event to SpasmEventV2 only if
// it's not SpasmEventV2 yet.
const spasmEventV2 = toBeSpasmEventV2(event)
// Convert each event of an array of events to SpasmEventV2 only
// if event is not SpasmEventV2 yet.
const spasmEventsV2 = toBeSpasmEventsV2(events)
// Note: you must use convertToSpasm() at least one time
// upon receiving an event, because by default it will
// verify all the signatures and sanitize nested strings.
// After that you can use toBeSpasmEventV2() in each
// function to minimize computational load.
```
```
// Merge event children
const mergedChildren = mergedChildrenV2(children1, children2)
```
```
// Add events (root, parent, children) to event's tree recursively
const eventWithTree = addEventsToTree(mainEvent, relatives)
// Aliases
// addParentToTree()
// addParentToEvent()
// addRootToTree()
// addRootToEvent()
// addChildrenToTree()
// addCommentsToEvent()
// addRepliesToEvent()
// Attaching events as relatives to event's tree
const eventWithRoot = attachEventAsRoot(mainEvent, root)
const eventWithParent = attachEventAsParent(mainEvent, parent)
const eventWithChildren = attachEventAsChild(mainEvent, child)
```
```
// Check if arrays have common IDs
const ifCommonId = ifArraysHaveCommonId(array1, array2)
// Example of finding whether events are relatives
// and then attaching event as a root
const event1RootIds = getAllRootIds(event1)
const event2Ids = getAllEventIds(event2)
if (ifArraysHaveCommonId(event1RootIds, event2Ids)) {
treeEventV2 = attachEventAsRoot(event1, event2)
}
```
```
// Check if an array already has this event
checkIfArrayHasThisEvent(array, event)
// alias
checkIfArrayHasThisSpasmEventV2
// Insert or merge an event into array
insertIntoArrayIfEventIsUnique(array, event)
// alias (merge enabled by default)
appendToArrayIfEventIsUnique(array, event)
pushToArrayIfEventIsUnique(array, event)
// alias (merge enabled by default)
prependToArrayIfEventIsUnique(array, event)
unshiftToArrayIfEventIsUnique(array, event)
// Merge event into array (only if not unique)
mergeEventIntoArray(array, event)
```
```
// Sort events by added timestamp ascending
const asc = sortSpasmEventsV2ByDbAddedTimestamp(events, "asc")
// Sort events by added timestamp descending
const desc = sortSpasmEventsV2ByDbAddedTimestamp(events, "desc")
// alias
const sortDesc = sortSpasmEventsV2()
```
```
// Check if two events have the same Spasm ID version 01
const ifSameEvent = ifEventsHaveSameSpasmId01(event1, event2)
```
```
// Merge stats
const mergedStats = mergeStatsV2(arrayOfStats)
```
```
const mergedChildren = mergeChildrenV2(arrayOfChildren)
```
```
// Remove siblings without signatures if signed siblings
// of the same protocol and protocol version are attached.
cleanSpasmEventV2(spasmEventV2)
```
```
// Assign formats for IDs, signatures, addresses if don't exist
assignFormats(event)
```
## Examples
[Permalink: Examples]( https://github.com/degenrocket/spasm.js#examples )
### Convert DmpEventSignedClosed to Spasm
[Permalink: Convert DmpEventSignedClosed to Spasm]( https://github.com/degenrocket/spasm.js#convert-dmpeventsignedclosed-to-spasm )
Here is a signed DMP event:
```
const event: DmpEventSignedClosed = {
signer: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",
signature: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",
signedString: "{\"version\":\"dmp_v0.0.1\",\"time\":\"2022-01-01T22:04:46.178Z\",\"action\":\"post\",\"target\":\"\",\"title\":\"genesis\",\"text\":\"not your keys, not your words\",\"license\":\"MIT\"}"
}
```
Here is the result of `identifyEvent(event)`
```
const output = {
eventInfo: {
baseProtocol: "dmp",
hasExtraSpasmFields: false,
hasSignature: true,
isSpasmCompatible: true,
license: "MIT",
privateKeyType: "ethereum",
type: "DmpEventSignedClosed"
},
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web3"
}
```
Here is how the event looks like after converting to Spasm V2:
```
const spasmEvent: SpasmEventV2 = {
type: "SpasmEventV2",
action: "post",
title: "genesis",
content: "not your keys, not your words",
timestamp: 1641074686178,
authors: [\
{\
addresses: [\
{\
value: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-pubkey", }\
}\
]\
}\
],
license: "MIT",
ids: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
format: { name: "ethereum-sig", }\
},\
],
signatures: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
pubkey: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-sig" }\
}\
],
siblings: [\
{\
type: "SiblingDmpSignedV2",\
protocol: {\
name: "dmp",\
version: "0.0.1"\
},\
signedString: JSON.stringify(validDmpEvent),\
ids: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
format: { name: "ethereum-sig" }\
},\
],\
signatures: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
pubkey: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-sig" }\
}\
]\
}\
]
}
```
### Convert NostrSpasmEventSignedOpened to Spasm
[Permalink: Convert NostrSpasmEventSignedOpened to Spasm]( https://github.com/degenrocket/spasm.js#convert-nostrspasmeventsignedopened-to-spasm )
Here is a signed Nostr event with extra Spasm tags:
```
export const event: NostrSpasmEventSignedOpened = {
kind: 1,
created_at: 1705462957,
tags:[\
["license","SPDX-License-Identifier: CC0-1.0"],\
["spasm_version","1.0.0"],\
["spasm_action","post"],\
["spasm_title","Nostr Spasm genesis"]\
],
content: "Walled gardens became prisons, and Spasm is the second step towards tearing down the prison walls.",
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",
id: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",
sig: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1"
}
```
Here is the result of `identifyEvent(event)`
```
const output = {
eventInfo: {
baseProtocol: "nostr",
hasExtraSpasmFields: true,
hasSignature: true,
isSpasmCompatible: true,
license: "SPDX-License-Identifier: CC0-1.0",
privateKeyType: "nostr",
type: "NostrSpasmEventSignedOpened"
},
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web3"
}
```
Here is how the event looks like after converting to Spasm V2:
```
const spasmEvent: SpasmEventV2 = {
type: "SpasmEventV2",
action: "post",
title: "Nostr Spasm genesis",
content: "Walled gardens became prisons, and Spasm is the second step towards tearing down the prison walls.",
timestamp: 1705462957,
authors: [\
{\
addresses: [\
{\
value: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-hex" }\
}\
]\
}\
],
license: "SPDX-License-Identifier: CC0-1.0",
ids: [\
{\
value: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",\
format: { name: "nostr-hex" }\
},\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
format: { name: "nostr-sig" }\
}\
],
signatures: [\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-sig" }\
}\
],
siblings: [\
{\
type: "SiblingNostrSpasmSignedV2",\
originalObject: validNostrSpasmEventSignedOpened,\
protocol: {\
name: "nostr",\
hasExtraSpasmFields: true,\
extraSpasmFieldsVersion: "1.0.0"\
},\
ids: [\
{\
value: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",\
format: { name: "nostr-hex" }\
},\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
format: { name: "nostr-sig" }\
}\
],\
signatures: [\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-sig" }\
}\
]\
}\
]
}
```
### Convert RssItem to Spasm
[Permalink: Convert RssItem to Spasm]( https://github.com/degenrocket/spasm.js#convert-rssitem-to-spasm )
Here is a Spasm event v0 with an RSS item:
```
const event: SpasmEventV0 = {
id: 18081,
guid: " https://forum.degenrocket.space/?l=terraforming ",
source: "degenrocket.space",
author: "stablepony",
tickers: "cookies",
title: "To the Moon!",
url: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",
description: "Tornado is coming back! Roger that! Starting the engine...",
pubdate: "2024-03-12T20:24:04.240Z",
category: "defi",
tags: ["dark", "forest"],
upvote: 3,
downvote: null,
bullish: 2,
bearish: 0,
important: 6,
scam: 1,
comments_count: 0,
latest_action_added_time: null
}
```
Here is the result of `identifyEvent(event)`
```
const output = {
eventInfo: false,
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web2"
}
```
Here is how the event looks like after converting to Spasm V2:
```
const spasmEvent: SpasmEvent = {
type: "SpasmEventV2",
ids: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
format: { name: "url" }\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
format: { name: "guid" }\
}\
],
db: {
key: 18081
},
action: "post",
title: "To the Moon!",
content: "Tornado is coming back! Roger that! Starting the engine...",
timestamp: toBeTimestamp("2024-03-12T20:24:04.240Z"),
authors: [\
{\
usernames: [ { value: "stablepony" } ]\
}\
],
categories: [ { name: "defi" } ],
links: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
protocol: "https",\
origin: " https://forum.degenrocket.space ",\
host: "forum.degenrocket.space",\
pathname: "/",\
search: "?b=21&t=fog&c=samourai&h=hijack",\
originalProtocolKey: "url"\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
protocol: "https",\
origin: " https://forum.degenrocket.space ",\
host: "forum.degenrocket.space",\
pathname: "/",\
search: "?l=terraforming",\
originalProtocolKey: "guid"\
}\
],
keywords: [ "dark", "forest", "cookies" ],
source: {
name: "degenrocket.space"
},
siblings: [\
{\
type: "SiblingWeb2V2",\
protocol: { name: "web2" },\
originalObject: {\
id: 18081,\
guid: " https://forum.degenrocket.space/?l=terraforming ",\
source: "degenrocket.space",\
author: "stablepony",\
tickers: "cookies",\
title: "To the Moon!",\
url: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
description: "Tornado is coming back! Roger that! Starting the engine...",\
pubdate: "2024-03-12T20:24:04.240Z",\
category: "defi",\
tags: ["dark", "forest"],\
upvote: 3,\
downvote: null,\
bullish: 2,\
bearish: 0,\
important: 6,\
scam: 1,\
comments_count: 0,\
latest_action_added_time: null\
},\
ids: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
format: { name: "url" }\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
format: { name: "guid" }\
}\
]\
}\
],
stats: [\
{\
action: "react",\
contents: [\
{\
value: "upvote",\
total: 3\
},\
{\
value: "bullish",\
total: 2\
},\
{\
value: "bearish",\
total: 0\
},\
{\
value: "important",\
total: 6\
},\
{\
value: "scam",\
total: 1\
},\
]\
},\
{\
action: "reply",\
total: 0\
}\
]
}
```
## License
[Permalink: License]( https://github.com/degenrocket/spasm.js#license )
MIT License
## About
Signer and Protocol Agnostic Social Media (Spasm)
[spasm.network]( https://spasm.network/ " https://spasm.network ")
### Resources
[Readme]( https://github.com/degenrocket/spasm.js#readme-ov-file )
### License
[MIT license]( https://github.com/degenrocket/spasm.js#MIT-1-ov-file )
[Activity]( https://github.com/degenrocket/spasm.js/activity )
### Stars
[**3**\\
stars]( https://github.com/degenrocket/spasm.js/stargazers )
### Watchers
[**1**\\
watching]( https://github.com/degenrocket/spasm.js/watchers )
### Forks
[**0**\\
forks]( https://github.com/degenrocket/spasm.js/forks )
[Report repository]( https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fdegenrocket%2Fspasm.js&report=degenrocket+%28user%29 )
## Languages
- [TypeScript50.5%]( https://github.com/degenrocket/spasm.js/search?l=typescript )
- [JavaScript49.5%]( https://github.com/degenrocket/spasm.js/search?l=javascript )
"""
""" https://github.com/degenrocket/spasm
[Skip to content]( https://github.com/degenrocket/spasm#start-of-content )
[degenrocket]( https://github.com/degenrocket )/ **[spasm]( https://github.com/degenrocket/spasm )** Public
- [Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm ) You must be signed in to change notification settings
- [Fork\\
0]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm )
- [Star\\
7]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm )
Signer and Protocol Agnostic Social Media (Spasm)
[docs.spasm.network]( https://docs.spasm.network/ " https://docs.spasm.network ")
### License
[MIT license]( https://github.com/degenrocket/spasm/blob/master/LICENSE )
[7\\
stars]( https://github.com/degenrocket/spasm/stargazers ) [0\\
forks]( https://github.com/degenrocket/spasm/forks ) [Branches]( https://github.com/degenrocket/spasm/branches ) [Tags]( https://github.com/degenrocket/spasm/tags ) [Activity]( https://github.com/degenrocket/spasm/activity )
[Star]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm )
[Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm ) You must be signed in to change notification settings
# degenrocket/spasm
master
[**1** Branch]( https://github.com/degenrocket/spasm/branches ) [**0** Tags]( https://github.com/degenrocket/spasm/tags )
[Go to Branches page]( https://github.com/degenrocket/spasm/branches )[Go to Tags page]( https://github.com/degenrocket/spasm/tags )
Go to file
Code
Open more actions menu
## Folders and files
| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>[]( https://github.com/degenrocket )[degenrocket]( https://github.com/degenrocket/spasm/commits?author=degenrocket )<br>[npm: add upgrade script]( https://github.com/degenrocket/spasm/commit/85a9c813ed09847223c660abaa90b7e6751114c9 )<br>Aug 7, 2025<br>[85a9c81]( https://github.com/degenrocket/spasm/commit/85a9c813ed09847223c660abaa90b7e6751114c9 ) · Aug 7, 2025<br>## History<br>[31 Commits]( https://github.com/degenrocket/spasm/commits/master/ ) <br>Open commit details<br>[View commit history for this file.]( https://github.com/degenrocket/spasm/commits/master/ ) |
| [docs]( https://github.com/degenrocket/spasm/tree/master/docs "docs") | [docs]( https://github.com/degenrocket/spasm/tree/master/docs "docs") | | |
| [helper]( https://github.com/degenrocket/spasm/tree/master/helper "helper") | [helper]( https://github.com/degenrocket/spasm/tree/master/helper "helper") | | |
| [source]( https://github.com/degenrocket/spasm/tree/master/source "source") | [source]( https://github.com/degenrocket/spasm/tree/master/source "source") | | |
| [static]( https://github.com/degenrocket/spasm/tree/master/static "static") | [static]( https://github.com/degenrocket/spasm/tree/master/static "static") | | |
| [.gitignore]( https://github.com/degenrocket/spasm/blob/master/.gitignore ".gitignore") | [.gitignore]( https://github.com/degenrocket/spasm/blob/master/.gitignore ".gitignore") | | |
| [LICENSE]( https://github.com/degenrocket/spasm/blob/master/LICENSE "LICENSE") | [LICENSE]( https://github.com/degenrocket/spasm/blob/master/LICENSE "LICENSE") | | |
| [README.md]( https://github.com/degenrocket/spasm/blob/master/README.md "README.md") | [README.md]( https://github.com/degenrocket/spasm/blob/master/README.md "README.md") | | |
| [ecosystem-prod.config.js]( https://github.com/degenrocket/spasm/blob/master/ecosystem-prod.config.js "ecosystem-prod.config.js") | [ecosystem-prod.config.js]( https://github.com/degenrocket/spasm/blob/master/ecosystem-prod.config.js "ecosystem-prod.config.js") | | |
| [nodemon.json]( https://github.com/degenrocket/spasm/blob/master/nodemon.json "nodemon.json") | [nodemon.json]( https://github.com/degenrocket/spasm/blob/master/nodemon.json "nodemon.json") | | |
| [package-lock.json]( https://github.com/degenrocket/spasm/blob/master/package-lock.json "package-lock.json") | [package-lock.json]( https://github.com/degenrocket/spasm/blob/master/package-lock.json "package-lock.json") | | |
| [package.json]( https://github.com/degenrocket/spasm/blob/master/package.json "package.json") | [package.json]( https://github.com/degenrocket/spasm/blob/master/package.json "package.json") | | |
| View all files |
## Repository files navigation
## Signer and Protocol Agnostic Social Media (Spasm)
[Permalink: Signer and Protocol Agnostic Social Media (Spasm)]( https://github.com/degenrocket/spasm#signer-and-protocol-agnostic-social-media-spasm )
[]( https://github.com/degenrocket/spasm/blob/f00b5d86a7309a35867413293bbd95d9041077a5/static/pyramid-black.png?raw=true )
This repo is for Spasm docs [website]( https://docs.spasm.network/ ).
For **spasm.js** library see:
[github]( https://github.com/degenrocket/spasm.js ) /
[npm]( https://www.npmjs.com/package/spasm.js )
### Run docs
[Permalink: Run docs]( https://github.com/degenrocket/spasm#run-docs )
- Install packages: `npm install`
- Edit `.md` files in `./docs` if necessary
- Run dev server: `npm run dev`
- Run prod server: `npm run prod`
### License
[Permalink: License]( https://github.com/degenrocket/spasm#license )
MIT License
## About
Signer and Protocol Agnostic Social Media (Spasm)
[docs.spasm.network]( https://docs.spasm.network/ " https://docs.spasm.network ")
### Resources
[Readme]( https://github.com/degenrocket/spasm#readme-ov-file )
### License
[MIT license]( https://github.com/degenrocket/spasm#MIT-1-ov-file )
[Activity]( https://github.com/degenrocket/spasm/activity )
### Stars
[**7**\\
stars]( https://github.com/degenrocket/spasm/stargazers )
### Watchers
[**1**\\
watching]( https://github.com/degenrocket/spasm/watchers )
### Forks
[**0**\\
forks]( https://github.com/degenrocket/spasm/forks )
[Report repository]( https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fdegenrocket%2Fspasm&report=degenrocket+%28user%29 )
## Languages
- [CSS47.8%]( https://github.com/degenrocket/spasm/search?l=css )
- [JavaScript28.5%]( https://github.com/degenrocket/spasm/search?l=javascript )
- [HTML23.7%]( https://github.com/degenrocket/spasm/search?l=html )
"""
""" https://www.npmjs.com/package/spasm.js
## spasm.js
2.0.0-rc • Public • Published 7 days ago
- [Readme]( https://www.npmjs.com/package/spasm.js?activeTab=readme )
- [Code Beta]( https://www.npmjs.com/package/spasm.js?activeTab=code )
- [6 Dependencies]( https://www.npmjs.com/package/spasm.js?activeTab=dependencies )
- [0 Dependents]( https://www.npmjs.com/package/spasm.js?activeTab=dependents )
- [59 Versions]( https://www.npmjs.com/package/spasm.js?activeTab=versions )
# Signer and Protocol Agnostic Social Media (Spasm)
[Permalink: Signer and Protocol Agnostic Social Media (Spasm)]( https://www.npmjs.com/package/spasm.js#signer-and-protocol-agnostic-social-media-spasm )
## Overview
[Permalink: Overview]( https://www.npmjs.com/package/spasm.js#overview )
The future of social media is agnostic to signing keys, messaging formats, transport protocols and storage infrastructure. However, such design places significant burden on developers, who must maintain a myriad of protocols, formats, and architectures.
This library simplifies the process by encapsulating the complexities of various messaging formats into a single, standardized JSON object called `SpasmEvent`. By abstracting the underlying differences between these formats, it provides a unified interface for developers to work with, ensuring consistency and reducing the need for custom handling of each format.
For instance, instead of maintaining three distinct versions of the frontend (UI) and three separate database tables for three different messaging formats, developers can leverage this library to standardize all messages into a single format. This approach simplifies the architecture by consolidating the database tables into one and requiring only a single version of the UI, with minor adjustments as needed.
This library also introduces an innovative concept of signing the same message with multiple protocols and different private keys, while still sharing the same deterministic Spasm event ID, allowing not only the distribution of the message across different networks, but also chaining of all replies and reactions back to the original message.
TypeScript interfaces of JSON objects of messaging formats that can be standardized with this library can be found at `./src.ts/types/interfaces.ts`.
```
export type UnknownEventV2 =
DmpEvent |
DmpEventSignedClosed |
DmpEventSignedOpened |
NostrEvent |
NostrEventSignedOpened |
NostrSpasmEvent |
NostrSpasmEventSignedOpened |
SpasmEventV0 |
SpasmEventV2 |
SpasmEventBodyV2 |
SpasmEventEnvelopeV2 |
SpasmEventEnvelopeWithTreeV2 |
SpasmEventDatabaseV2 |
SpasmEventBodySignedClosedV2
```
After converting an unknown event to a Spasm event, you can easily access common properties across most public messaging formats such as:
- `spasmEvent.action`
- `spasmEvent.content`
- `spasmEvent.timestamp`
- `spasmEvent.parent.ids`
- `spasmEvent.parent.ids[0].value`
- `spasmEvent.ids`
- `spasmEvent.ids[0].value`
- `spasmEvent.ids[0].format.name`
- `spasmEvent.authors`
- `spasmEvent.authors[0].addresses`
- `spasmEvent.authors[0].addresses[0].value`
- `spasmEvent.authors[0].addresses[0].format.name`
- `spasmEvent.signatures`
- `spasmEvent.signatures[0].value`
- `spasmEvent.signatures[0].pubkey`
- `spasmEvent.signatures[0].format.name`
Any Spasm event can be signed with different protocols (e.g., Spasm, Dmp, Nostr), so all the original (un)signed event objects/strings are stored at:
- `spasmEvent.siblings`
See the full list of properties of `SpasmEventV2` at `./src.ts/types/interfaces.ts`.
Here is a schema of the SpasmEventV2 interface:
```
#01 = EventForSpasmid01
SE = SpasmEvent
Body = SpasmEventBody
Env = SpasmEventEnvelope
Tree = SpasmEventEnvelopeWithTree
DB = SpasmEventDatabase
event*
│
├── type --- SE Body Env Tree DB
├── protocol (+ sibling) --- -- Body --- ---- --
│ ├── name --- -- Body --- ---- --
│ └── version --- -- Body --- ---- --
├── root --- SE ---- --- Tree DB
│ ├── ids[] --- SE ---- --- Tree DB
│ ├── marker --- SE ---- --- Tree DB
│ ├── depth --- SE ---- --- Tree --
│ └── event* --- SE ---- --- Tree --
├── parent #01 SE Body --- Tree DB
│ ├── ids[] #01 SE Body --- Tree DB
│ ├── marker #01 SE Body --- Tree DB
│ ├── depth --- SE ---- --- Tree --
│ └── event* --- SE ---- --- Tree --
├── action #01 SE Body --- ---- DB
├── title #01 SE Body --- ---- DB
├── content #01 SE Body --- ---- DB
├── timestamp #01 SE Body --- ---- DB
├── authors[] #01 SE Body --- ---- DB
│ ├── addresses[] #01 SE Body --- ---- DB
│ │ ├── value #01 SE Body --- ---- DB
│ │ ├── format #01 SE Body --- ---- DB
│ │ │ ├── name #01 SE Body --- ---- DB
│ │ │ └── version #01 SE Body --- ---- DB
│ │ └── verified --- SE ---- --- ---- DB
│ └── usernames[] (eg RSS posts) #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── protocol #01 SE Body --- ---- DB
│ ├── proof #01 SE Body --- ---- DB
│ └── provider #01 SE Body --- ---- DB
├── categories[] #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── sub (recursive category) #01 SE Body --- ---- DB
├── tips[] #01 SE Body --- ---- DB
│ ├── address #01 SE Body --- ---- DB
│ ├── text #01 SE Body --- ---- DB
│ ├── expiration #01 SE Body --- ---- DB
│ │ └── timestamp #01 SE Body --- ---- DB
│ ├── currency #01 SE Body --- ---- DB
│ │ ├── name #01 SE Body --- ---- DB
│ │ └── ticker #01 SE Body --- ---- DB
│ └── network #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── id #01 SE Body --- ---- DB
├── hosts[] (see hosts below) #01 SE Body --- ---- DB
├── links[] (see link below) #01 SE Body --- ---- DB
├── keywords[] #01 SE Body --- ---- DB
├── tags[] #01 SE Body --- ---- DB
├── medias[] #01 SE Body --- ---- DB
│ ├── hashes[] (see hash below) #01 SE Body --- ---- DB
│ ├── links[] (see link below) #01 SE Body --- ---- DB
│ └── type #01 SE Body --- ---- DB
├── references[] #01 SE Body --- Tree DB
│ ├── ids[] #01 SE Body --- Tree DB
│ ├── marker #01 SE Body --- Tree DB
│ └── event* --- SE ---- --- Tree --
├── mentions[] #01 SE Body --- ---- DB
│ ├── addresses[] #01 SE Body --- ---- DB
│ │ ├── value #01 SE Body --- ---- DB
│ │ └── format #01 SE Body --- ---- DB
│ │ ├── name #01 SE Body --- ---- DB
│ │ └── version #01 SE Body --- ---- DB
│ └── usernames[] #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── protocol #01 SE Body --- ---- DB
│ ├── proof #01 SE Body --- ---- DB
│ └── provider #01 SE Body --- ---- DB
├── proofs[] #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── links[] #01 SE Body --- ---- DB
│ └── protocol #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── version #01 SE Body --- ---- DB
├── previousEvent (+ sibling) --- -- Body --- ---- --
│ ├── ids[] --- -- Body --- ---- --
│ ├── marker --- -- Body --- ---- --
│ ├── depth --- -- Body --- ---- --
│ └── event* --- -- ---- --- ---- --
├── sequence (+ sibling) --- -- Body --- ---- --
├── license #01 SE Body --- ---- DB
├── language #01 SE Body --- ---- DB
├── extra #01 SE Body --- ---- DB
├── pows (only 1 in body) --- SE Body --- ---- DB
│ ├── nonce --- SE Body --- ---- DB
│ ├── difficulty --- SE Body --- ---- DB
│ ├── words[] --- SE Body --- ---- DB
│ └── network --- SE Body --- ---- DB
│ ├── name --- SE Body --- ---- DB
│ └── id --- SE Body --- ---- DB
│
├── ids[] --- SE ---- Env Tree DB
├── signatures[] --- SE ---- Env Tree DB
│ ├── value --- SE ---- Env Tree DB
│ ├── pubkey --- SE ---- Env Tree DB
│ └── format --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ └── version --- SE ---- Env Tree DB
│
├── siblings[] --- SE ---- Env Tree DB
│ ├── type --- SE ---- Env Tree DB
│ ├── signedString --- SE ---- Env Tree DB
│ ├── originalObject --- SE ---- Env Tree DB
│ ├── signatures[] --- SE ---- Env Tree DB
│ │ ├── value --- SE ---- Env Tree DB
│ │ ├── pubkey --- SE ---- Env Tree DB
│ │ └── format --- SE ---- Env Tree DB
│ │ ├── name --- SE ---- Env Tree DB
│ │ └── version --- SE ---- Env Tree DB
│ ├── sequence --- SE ---- Env Tree DB
│ ├── previousEvent --- SE ---- Env Tree DB
│ │ ├── ids[] --- SE ---- Env Tree DB
│ │ ├── marker --- SE ---- Env Tree DB
│ │ ├── depth --- SE ---- Env Tree DB
│ │ └── event* --- SE ---- --- Tree DB
│ └── protocol --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ ├── version --- SE ---- Env Tree DB
│ ├── hasExtraSpasmFields --- SE ---- Env Tree DB
│ └── extraSpasmFieldsVersion --- SE ---- Env Tree DB
│
├── db --- SE ---- Env Tree DB
│ ├── key --- SE ---- Env Tree DB
│ ├── addedTimestamp --- SE ---- Env Tree DB
│ ├── updatedTimestamp --- SE ---- Env Tree DB
│ └── table --- SE ---- Env Tree DB
├── source --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ ├── uiUrl --- SE ---- Env Tree DB
│ ├── apiUrl --- SE ---- Env Tree DB
│ ├── query --- SE ---- Env Tree DB
│ └── showSource --- SE ---- Env Tree DB
├── stats[] --- SE ---- Env Tree DB
│ ├── action --- SE ---- Env Tree DB
│ ├── total --- SE ---- Env Tree DB
│ ├── latestTimestamp --- SE ---- Env Tree DB
│ ├── latestDbTimestamp --- SE ---- Env Tree DB
│ └── ...(upvote, downvote, etc.) --- SE ---- Env Tree DB
├── sharedBy[] --- SE ---- Env Tree DB
│ └── ids[] --- SE ---- Env Tree DB
│
│ (Envelope with tree)
├── root --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
├── parent --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
├── references[] --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
└── children[] --- SE ---- Env Tree --
└── SE | Env | Tree --- SE ---- Env Tree --
id
├── value #.
├── format #.
│ ├── name
│ └── version
└── hosts[]
hash
├── value
├── name
├── length
├── type
├── pieceLength
└── pieces[]
link
├── value
├── protocol
├── origin
├── host
├── pathname
├── search
├── port
└── originalProtocolKey
```
### Features
[Permalink: Features]( https://www.npmjs.com/package/spasm.js#features )
- identify web2 posts and web3 events
- convert web2 posts and web3 events to Spasm event
- create unique Spasm ID for single-signed and multi-signed events
- merge two Spasm events with the same Spasm ID
## Installation
[Permalink: Installation]( https://www.npmjs.com/package/spasm.js#installation )
```
npm install spasm.js
```
## Usage
[Permalink: Usage]( https://www.npmjs.com/package/spasm.js#usage )
#### CommonJS (require)
[Permalink: CommonJS (require)]( https://www.npmjs.com/package/spasm.js#commonjs-require )
Option 1. Import separate functions:
```
const {identifyObject} = require('spasm.js')
const {convertToSpasm} = require('spasm.js')
const {mergeSpasmEventsV2} = require('spasm.js')
const {mergeDifferentSpasmEventsV2} = require('spasm.js')
const event = {
// some event
}
// Identify the event
const info = identifyObject(event)
// Convert to Spasm (the latest version)
const spasmEvent = convertToSpasm(event)
// Convert to Spasm (specify version)
const spasmEvent = convertToSpasm(
event, { to: { spasm: { version: "2.0.0" } } }
)
// Merge events into one event
const spasmEvent = mergeSpasmEventsV2([\
event, eventWithStats, eventWithComments\
])
// Merge different events
const spasmEvents = mergeDifferentSpasmEventsV2([\
event, eventWithStats, eventWithComments,\
anotherEvent, anotherEventWithStats\
])
```
Option 2. Import all functions:
```
const spasm = require('spasm.js')
const event = {
// some event
}
// Identify the event
const info = spasm.identifyObject(event)
// Convert to Spasm
const spasmEvent = spasm.convertToSpasm(event)
// Merge events into one event
const spasmEvent = spasm.mergeSpasmEventsV2([\
event, eventWithStats, eventWithComments\
])
// Merge different events
const spasmEvents = spasm.mergeDifferentSpasmEventsV2([\
event, eventWithStats, eventWithComments,\
anotherEvent, anotherEventWithStats\
])
```
#### ESM (import)
[Permalink: ESM (import)]( https://www.npmjs.com/package/spasm.js#esm-import )
Option 1. Import separate functions:
```
import {identifyObject} from 'spasm.js'
import {convertToSpasm} from 'spasm.js'
const event = {
// some event
}
// Identify the event
const info = identifyObject(event)
// Convert to Spasm
const spasmEvent = convertToSpasm(event)
```
Option 2. Import all functions:
```
import * as spasm from 'spasm.js'
const event = {
// some event
}
// Identify the event
const info = spasm.identifyObject(event)
// Convert to Spasm
const spasmEvent = spasm.convertToSpasm(event)
```
## Utils
[Permalink: Utils]( https://www.npmjs.com/package/spasm.js#utils )
```
// Get an array of all signers/pubkeys from the event
// (including signers which cannot be verified against signatures)
const signers = spasm.getAllSigners(event)
// Get an array of signers/pubkeys which have
// been verified against attached signatures
const verifiedSigners = spasm.getVerifiedSigners(event)
const spasmSigners = getAllSpasmSigners(event)
const ethereumSigners = getAllEthereumSigners(event)
const nostrSigners = getAllNostrSigners(event)
const verifiedSpasmSigners = getVerifiedSpasmSigners(event)
const verifiedEthereumSigners = getVerifiedEthereumSigners(event)
const verifiedNostrSigners = getVerifiedNostrSigners(event)
```
```
// Get an array of signers/pubkeys which match values provided
// in the attached list (e.g., moderators, whitelisted, banned)
const moderators = spasm.getSignersListedIn(event, moderatorsList)
// alias
const banned = spasm.getPubkeysListedIn(event, bannedList)
```
```
// Check if all signers/pubkeys match values provided
// in the attached list (e.g., moderators, whitelisted, banned)
const areModerators = spasm.areAllSignersListedIn(event, moderatorsList)
// alias
const areBanned = spasm.areAllPubkeysListedIn(event, bannedList)
```
```
// Check if at least one signer/pubkey matches a value provided
// in the attached list (e.g., moderators, whitelisted, banned)
const isModerator = spasm.isAnySignerListedIn(event, moderatorsList)
// alias
const isBanned = spasm.isAnyPubkeyListedIn(event, bannedList)
```
```
// Get an array of all event IDs
const ids = spasm.getAllEventIds(event)
// Get an array of all parent IDs
const parentIds = spasm.getAllParentIds(event)
// Get an array of all root IDs
const rootIds = spasm.getAllRootIds(event)
```
```
// Get an array of all event signatures
const signatures = spasm.getAllSignatures(event)
```
```
// Get a stat object of a specified action
const stats = spasm.getStatByAction(event, "react")
```
```
// Get a total number of a specified action
const stats = spasm.getTotalOfAction(event, "reply")
```
```
// Get a total number of a specified reaction
const stats = spasm.getTotalOfReaction(event, "upvote")
```
```
// Get a total number of the most popular reaction
const stats = spasm.getTotalOfMostPopularReaction(event)
```
```
// Get a total number of a react/reply action
const stats = spasm.getTotalOfReact(event)
const stats = spasm.getTotalOfReply(event)
// aliases
const stats = spasm.getTotalOfActionReact(event)
const stats = spasm.getTotalOfReactAction(event)
const stats = spasm.getTotalOfActionReply(event)
const stats = spasm.getTotalOfReplyAction(event)
```
```
// Extract an ID from an event.
const nostrId = spasm.getIdByFormat(event, { name: "nostr-hex" })
const spasmId = spasm.getIdByFormat(event, {
name: "spasmid", version: "01"
})
// alias
const spasmId = spasm.extractIdByFormat(event, {
name: "spasmid"
})
// other aliases for extracting event, parent, and root IDs:
// extractSpasmId01()
// extractParentIdByFormat()
// extractParentSpasmId01()
// extractRootIdByFormat()
// extractRootSpasmId01()
// Note: the functions above don't calculate new IDs, but
// simply extracts an existing ID from an event object.
// If you want to calculate a Spasm ID (e.g., to verify it),
// then you must use another function, for example:
const spasmId = spasm.getSpasmId(event)
```
```
// Extract Nostr event(s) from a Spasm event.
const nostrEvent = extractNostrEvent(spasmEvent)
const nostrSignedEvent = extractSignedNostrEvent(spasmEvent)
const nostrEvents = extractNostrEvents(spasmEvent)
const nostrSignedEvents = extractSignedNostrEvents(spasmEvent)
// Note: Spasm event can have multiple siblings of Nostr event type
```
```
// Check if Spasm event has any sibling of protocol type
const ifHasSiblingOfProtocol = hasSiblingOfProtocol(event, "spasm")
const ifHasSiblingSpasm = hasSiblingSpasm(event)
const ifHasSiblingDmp = hasSiblingDmp(event)
const ifHasSiblingNostr = hasSiblingNostr(event)
const ifHasSiblingWeb2 = hasSiblingWeb2(event)
```
```
const idFormatName = extractIdFormatNameFromSpasmEventIdV2(event)
const ifFormatNames = extractAllIdFormatNamesFromSpasmEventV2(event)
// aliases
const ifFormatNames = getAllFormatNamesFromSpasmEventV2(event)
const ifFormatNames = getAllFormatNamesFromEvent(event)
```
```
const ifEventHasThisId = spasm.checkIfEventHasThisId(
event, "spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
)
```
```
const event = spasm.getEventById(
[ event1, event2, event3 ],
"spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
)
```
```
const events = spasm.getEventsByIds(
[ event1, event2, event3 ],
[\
"spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f",\
"db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651"\
]
)
```
```
// Convert an event to SpasmEventV2 only if
// it's not SpasmEventV2 yet.
const spasmEventV2 = toBeSpasmEventV2(event)
// Convert each event of an array of events to SpasmEventV2 only
// if event is not SpasmEventV2 yet.
const spasmEventsV2 = toBeSpasmEventsV2(events)
// Note: you must use convertToSpasm() at least one time
// upon receiving an event, because by default it will
// verify all the signatures and sanitize nested strings.
// After that you can use toBeSpasmEventV2() in each
// function to minimize computational load.
```
```
// Merge event children
const mergedChildren = mergedChildrenV2(children1, children2)
```
```
// Add events (root, parent, children) to event's tree recursively
const eventWithTree = addEventsToTree(mainEvent, relatives)
// Aliases
// addParentToTree()
// addParentToEvent()
// addRootToTree()
// addRootToEvent()
// addChildrenToTree()
// addCommentsToEvent()
// addRepliesToEvent()
// Attaching events as relatives to event's tree
const eventWithRoot = attachEventAsRoot(mainEvent, root)
const eventWithParent = attachEventAsParent(mainEvent, parent)
const eventWithChildren = attachEventAsChild(mainEvent, child)
```
```
// Check if arrays have common IDs
const ifCommonId = ifArraysHaveCommonId(array1, array2)
// Example of finding whether events are relatives
// and then attaching event as a root
const event1RootIds = getAllRootIds(event1)
const event2Ids = getAllEventIds(event2)
if (ifArraysHaveCommonId(event1RootIds, event2Ids)) {
treeEventV2 = attachEventAsRoot(event1, event2)
}
```
```
// Check if an array already has this event
checkIfArrayHasThisEvent(array, event)
// alias
checkIfArrayHasThisSpasmEventV2
// Insert or merge an event into array
insertIntoArrayIfEventIsUnique(array, event)
// alias (merge enabled by default)
appendToArrayIfEventIsUnique(array, event)
pushToArrayIfEventIsUnique(array, event)
// alias (merge enabled by default)
prependToArrayIfEventIsUnique(array, event)
unshiftToArrayIfEventIsUnique(array, event)
// Merge event into array (only if not unique)
mergeEventIntoArray(array, event)
```
```
// Sort events by added timestamp ascending
const asc = sortSpasmEventsV2ByDbAddedTimestamp(events, "asc")
// Sort events by added timestamp descending
const desc = sortSpasmEventsV2ByDbAddedTimestamp(events, "desc")
// alias
const sortDesc = sortSpasmEventsV2()
```
```
// Check if two events have the same Spasm ID version 01
const ifSameEvent = ifEventsHaveSameSpasmId01(event1, event2)
```
```
// Merge stats
const mergedStats = mergeStatsV2(arrayOfStats)
```
```
const mergedChildren = mergeChildrenV2(arrayOfChildren)
```
```
// Remove siblings without signatures if signed siblings
// of the same protocol and protocol version are attached.
cleanSpasmEventV2(spasmEventV2)
```
```
// Assign formats for IDs, signatures, addresses if don't exist
assignFormats(event)
```
## Examples
[Permalink: Examples]( https://www.npmjs.com/package/spasm.js#examples )
### Convert DmpEventSignedClosed to Spasm
[Permalink: Convert DmpEventSignedClosed to Spasm]( https://www.npmjs.com/package/spasm.js#convert-dmpeventsignedclosed-to-spasm )
Here is a signed DMP event:
```
const event: DmpEventSignedClosed = {
signer: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",
signature: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",
signedString: "{\"version\":\"dmp_v0.0.1\",\"time\":\"2022-01-01T22:04:46.178Z\",\"action\":\"post\",\"target\":\"\",\"title\":\"genesis\",\"text\":\"not your keys, not your words\",\"license\":\"MIT\"}"
}
```
Here is the result of `identifyEvent(event)`
```
const output = {
eventInfo: {
baseProtocol: "dmp",
hasExtraSpasmFields: false,
hasSignature: true,
isSpasmCompatible: true,
license: "MIT",
privateKeyType: "ethereum",
type: "DmpEventSignedClosed"
},
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web3"
}
```
Here is how the event looks like after converting to Spasm V2:
```
const spasmEvent: SpasmEventV2 = {
type: "SpasmEventV2",
action: "post",
title: "genesis",
content: "not your keys, not your words",
timestamp: 1641074686178,
authors: [\
{\
addresses: [\
{\
value: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-pubkey", }\
}\
]\
}\
],
license: "MIT",
ids: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
format: { name: "ethereum-sig", }\
},\
],
signatures: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
pubkey: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-sig" }\
}\
],
siblings: [\
{\
type: "SiblingDmpSignedV2",\
protocol: {\
name: "dmp",\
version: "0.0.1"\
},\
signedString: JSON.stringify(validDmpEvent),\
ids: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
format: { name: "ethereum-sig" }\
},\
],\
signatures: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
pubkey: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-sig" }\
}\
]\
}\
]
}
```
### Convert NostrSpasmEventSignedOpened to Spasm
[Permalink: Convert NostrSpasmEventSignedOpened to Spasm]( https://www.npmjs.com/package/spasm.js#convert-nostrspasmeventsignedopened-to-spasm )
Here is a signed Nostr event with extra Spasm tags:
```
export const event: NostrSpasmEventSignedOpened = {
kind: 1,
created_at: 1705462957,
tags:[\
["license","SPDX-License-Identifier: CC0-1.0"],\
["spasm_version","1.0.0"],\
["spasm_action","post"],\
["spasm_title","Nostr Spasm genesis"]\
],
content: "Walled gardens became prisons, and Spasm is the second step towards tearing down the prison walls.",
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",
id: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",
sig: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1"
}
```
Here is the result of `identifyEvent(event)`
```
const output = {
eventInfo: {
baseProtocol: "nostr",
hasExtraSpasmFields: true,
hasSignature: true,
isSpasmCompatible: true,
license: "SPDX-License-Identifier: CC0-1.0",
privateKeyType: "nostr",
type: "NostrSpasmEventSignedOpened"
},
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web3"
}
```
Here is how the event looks like after converting to Spasm V2:
```
const spasmEvent: SpasmEventV2 = {
type: "SpasmEventV2",
action: "post",
title: "Nostr Spasm genesis",
content: "Walled gardens became prisons, and Spasm is the second step towards tearing down the prison walls.",
timestamp: 1705462957,
authors: [\
{\
addresses: [\
{\
value: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-hex" }\
}\
]\
}\
],
license: "SPDX-License-Identifier: CC0-1.0",
ids: [\
{\
value: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",\
format: { name: "nostr-hex" }\
},\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
format: { name: "nostr-sig" }\
}\
],
signatures: [\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-sig" }\
}\
],
siblings: [\
{\
type: "SiblingNostrSpasmSignedV2",\
originalObject: validNostrSpasmEventSignedOpened,\
protocol: {\
name: "nostr",\
hasExtraSpasmFields: true,\
extraSpasmFieldsVersion: "1.0.0"\
},\
ids: [\
{\
value: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",\
format: { name: "nostr-hex" }\
},\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
format: { name: "nostr-sig" }\
}\
],\
signatures: [\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-sig" }\
}\
]\
}\
]
}
```
### Convert RssItem to Spasm
[Permalink: Convert RssItem to Spasm]( https://www.npmjs.com/package/spasm.js#convert-rssitem-to-spasm )
Here is a Spasm event v0 with an RSS item:
```
const event: SpasmEventV0 = {
id: 18081,
guid: " https://forum.degenrocket.space/?l=terraforming ",
source: "degenrocket.space",
author: "stablepony",
tickers: "cookies",
title: "To the Moon!",
url: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",
description: "Tornado is coming back! Roger that! Starting the engine...",
pubdate: "2024-03-12T20:24:04.240Z",
category: "defi",
tags: ["dark", "forest"],
upvote: 3,
downvote: null,
bullish: 2,
bearish: 0,
important: 6,
scam: 1,
comments_count: 0,
latest_action_added_time: null
}
```
Here is the result of `identifyEvent(event)`
```
const output = {
eventInfo: false,
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web2"
}
```
Here is how the event looks like after converting to Spasm V2:
```
const spasmEvent: SpasmEvent = {
type: "SpasmEventV2",
ids: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
format: { name: "url" }\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
format: { name: "guid" }\
}\
],
db: {
key: 18081
},
action: "post",
title: "To the Moon!",
content: "Tornado is coming back! Roger that! Starting the engine...",
timestamp: toBeTimestamp("2024-03-12T20:24:04.240Z"),
authors: [\
{\
usernames: [ { value: "stablepony" } ]\
}\
],
categories: [ { name: "defi" } ],
links: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
protocol: "https",\
origin: " https://forum.degenrocket.space ",\
host: "forum.degenrocket.space",\
pathname: "/",\
search: "?b=21&t=fog&c=samourai&h=hijack",\
originalProtocolKey: "url"\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
protocol: "https",\
origin: " https://forum.degenrocket.space ",\
host: "forum.degenrocket.space",\
pathname: "/",\
search: "?l=terraforming",\
originalProtocolKey: "guid"\
}\
],
keywords: [ "dark", "forest", "cookies" ],
source: {
name: "degenrocket.space"
},
siblings: [\
{\
type: "SiblingWeb2V2",\
protocol: { name: "web2" },\
originalObject: {\
id: 18081,\
guid: " https://forum.degenrocket.space/?l=terraforming ",\
source: "degenrocket.space",\
author: "stablepony",\
tickers: "cookies",\
title: "To the Moon!",\
url: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
description: "Tornado is coming back! Roger that! Starting the engine...",\
pubdate: "2024-03-12T20:24:04.240Z",\
category: "defi",\
tags: ["dark", "forest"],\
upvote: 3,\
downvote: null,\
bullish: 2,\
bearish: 0,\
important: 6,\
scam: 1,\
comments_count: 0,\
latest_action_added_time: null\
},\
ids: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
format: { name: "url" }\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
format: { name: "guid" }\
}\
]\
}\
],
stats: [\
{\
action: "react",\
contents: [\
{\
value: "upvote",\
total: 3\
},\
{\
value: "bullish",\
total: 2\
},\
{\
value: "bearish",\
total: 0\
},\
{\
value: "important",\
total: 6\
},\
{\
value: "scam",\
total: 1\
},\
]\
},\
{\
action: "reply",\
total: 0\
}\
]
}
```
## License
[Permalink: License]( https://www.npmjs.com/package/spasm.js#license )
MIT License
## Readme
### Keywords
- [spasm]( https://www.npmjs.com/search?q=keywords:spasm )
- [dmp]( https://www.npmjs.com/search?q=keywords:dmp )
- [nostr]( https://www.npmjs.com/search?q=keywords:nostr )
- [ethereum]( https://www.npmjs.com/search?q=keywords:ethereum )
- [social]( https://www.npmjs.com/search?q=keywords:social )
## Package Sidebar
### Install
`npm i spasm.js`
### Repository
[Gitgithub.com/degenrocket/spasm.js]( https://github.com/degenrocket/spasm.js )
### Homepage
[github.com/degenrocket/spasm.js#readme]( https://github.com/degenrocket/spasm.js#readme )
### DownloadsWeekly Downloads
85
### Version
2.0.0-rc
### License
MIT
### Unpacked Size
1.65 MB
### Total Files
180
### Last publish
7 days ago
### Collaborators
- []( https://www.npmjs.com/~degenrocket )
[**Try** on RunKit]( https://runkit.com/npm/spasm.js )
[**Report** malware]( https://www.npmjs.com/support?inquire=security&security-inquire=malware&package=spasm.js&version=2.0.0-rc )
"""
""" https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z
Welcome to nostr!
Get Started
Note preview
PostCancel
[+0\\
\\
]( https://r2.primal.net/cache/f/71/f3/f71f38a32e65ad53e2da0e135d378660bdc39510d2fdd63f309a859f24af357b.jpg )
[+0\\
\\
]( https://r2.primal.net/cache/f/71/f3/f71f38a32e65ad53e2da0e135d378660bdc39510d2fdd63f309a859f24af357b.jpg )
[+0\\
\\
]( https://r2.primal.net/cache/d/7c/4c/d7c4c81f612ae727118a843958e8685dca3beaac5a7c95107c1bf952b6c26aaa.jpg )
Add user feed
Copy user link
Copy user public key
Follow user's mute list
Mute user
Report user
follow
Captain of Spasm: the endgame of social media.
[ https://spasm.network ]( https://spasm.network/ )
🔒 Privacy maximalist. ⚡ Lightning minimalist. 💻 FOSS only.
degenrocket
14
following
145
followers
Joined Nostr on Mar 17, 2023
Captain of Spasm: the endgame of social media.
[ https://spasm.network ]( https://spasm.network/ )
🔒 Privacy maximalist. ⚡ Lightning minimalist. 💻 FOSS only.
45
Notes
13
Replies
0
Reads
8
Media
0
Zaps
5
Relays
Search nostr
[\\
\\
degenrocket\\
\\
145\\
\\
followers]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx ) [\\
\\
jack\\
\\
254K\\
\\
followers]( https://primal.net/jack ) [\\
\\
CARLA⚡️\\
\\
carla@nostrplebs.com\\
\\
60K\\
\\
followers]( https://primal.net/carla ) [\\
\\
walker\\
\\
walker@primal.net\\
\\
63K\\
\\
followers]( https://primal.net/walker ) [\\
\\
preston\\
\\
preston@primal.net\\
\\
166K\\
\\
followers]( https://primal.net/preston ) [\\
\\
Lyn Alden\\
\\
lyn@primal.net\\
\\
102K\\
\\
followers]( https://primal.net/lyn ) [\\
\\
ODELL\\
\\
odell@primal.net\\
\\
175K\\
\\
followers]( https://primal.net/odell ) [\\
\\
Marty Bent\\
\\
marty@primal.net\\
\\
149K\\
\\
followers]( https://primal.net/marty ) [\\
\\
DETERMINISTIC OPTIMISM 🌞\\
\\
nvk@primal.net\\
\\
162K\\
\\
followers]( https://primal.net/nvk )
Popular Notes
[]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx )[degenrocket\\
\\
1 yr.\\
\\
As #nostrasia starts, it's important to remind us that Hard Yaka didn't pay hackathon prizes for the first Nostr hackathon, which took place 6 months ago following the Nostrica conference. Please vet your sponsors carefully to avoid giving the Nostr community a bad reputation.]( https://primal.net/e/nevent1qqsxjg2urk4drlktv3qv0r88vamuw074p90pv6m92larsp3jxv5g29gmfvup9 )
[]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx )[degenrocket\\
\\
3 mo.\\
\\
Yes, Spasm is open source. It has been in development since 2021 and it's currently the most advanced generation of decentralized social media. You can find all the links at the official website https://spasm.network ]( https://primal.net/e/nevent1qqs98q0zh6vwekvp3ysxlhrzzg4h7sumxndt6rewcxp5d7apjlampggz4qsux )
[]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx )[degenrocket\\
\\
2 yr.\\
\# ORC-69 The Session X Coin (SEX) ## Terminology OPTF - the Oxen Privacy Tech Foundation is the Australia-based organization behind Session, OXEN, and Lokinet. Coin - a native asset of the blockchain (SEX, OXEN, XMR, ETH, BTC). Token - an asset built on another blockchain (SENT, UNI, PEPE). SENT - the Ethereum-based layer-2 token (ERC20) proposed in ORC-8 by the OPTF. SEX\* - the rebranded OXEN privacy coin within the ORC-69 design. SessionX - the codename for the integration of SEX into Session. \*Note: It's important to mention that in the ORC-69 we will refer to network's native coin as SEX to easily distinguish it from the SENT token (ORC-8). However, the ORC-69 can be applied to OXEN without any meme-themed rebranding. In other words, the OPTF team or the community can implement the changes outlined in the ORC-69 proposal while keeping the OXEN name of the coin unchanged. --- ## Intro The Oxen Privacy Tech Foundation (OPTF) decided to move towards new ERC20 token SENT amids KuCoin's delisting of OXEN. Since KuCoin was the only exchange with somewhat meaningful trading volume, the project ended up in the situation when its flagship product Session is growing rapidly, while the backbone... see more]( https://primal.net/e/nevent1qqs245f3frshfpcvqmy50t909nw23ljs7je2l9gm8awwscqfr5mfj3syxyqqc )
[]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx )[degenrocket\\
\\
1 day\\
\\
After a year of rigorous testing, Spasm.js v2.0.0 is stepping up from beta to release candidate status. Introduced in 2024, the new version brought groundbreaking features like multi-signing, propelling social media into the future. Now, it's your turn to test and shape the final version! https://www.npmjs.com/package/spasm.js --- The Signer and Protocol Agnostic Social Media (Spasm) is the future of social media. It's the only truly open ecosystem, which is agnostic to signing keys, messaging protocols, transport layers, and storage infrastructure. Users are able to sign messages with any private key of their choice and trigger the propagation of those messages in any network they want via any transport protocol, or even all at once. The Spasm network consists of independent self-hosted interoperable instances run by DAOs, local communities, and other freedom seekers who want to escape censorship and surveillance of centralized platforms. The Spasm ecosystem is the next generation in the evolution of social media after various signature-based decentralized ecosystems like Secure Scuttlebutt (SSB), Steem/Hive, Nostr, Farcaster, Lens, Bluesky, etc. Connect your Ethereum or Nostr browser extension and join the future of social media. > not your keys, not your words]( https://primal.net/e/nevent1qqswr8xyg6p5tqsuf2ylsmz6nhqplqxhaft7r0pp5kw2gmfxp7q8lzck6xys6 )
[]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx )[degenrocket\\
\\
5 mo.\\
\\
Being a long-time user of Session and SimpleX, I never had a chance to write down a proper review of both architectures, despite being asked to do so. Well, the time has come. This multi-signed message will be pushed to Spasm and Nostr networks, so you can reply with Ethereum and Nostr private keys. I haven't added editing to Spasm yet and Nostr notes cannot be edited by design, so any edit/update will be added as a comment to this post. I've just finished watching an interesting interview with Session CTO KeeJef hosted by ShadowRebel from SimplifiedPrivacy. I'd highly recommend to check it out if you can handle very poor audio quality and disrupting video. It's still not a proper Session vs SimpleX debate, but ShadowRebel did a pretty good job asking many important questions about Session's architecture, unlike many other privacy soy boys. https://simplifiedprivacy.com/interview-session-messenger/keejef-vs-simplex.html I've also recently approached many famous privacy influencers trying to onboard them to Spasm and I've been surprised by a few things: - the majority of them have not yet transitioned to web3, - literally nobody lists Session in the contacts section, - many have started using SimpleX. I'll keep my disappointment about the lack of... see more]( https://primal.net/e/nevent1qqsvj67xxhkr9tza5x5f3pqsdkmhc8tqdmtsdwz2u9ygs5wenzzaqkqzu0fk5 )
[]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx )[degenrocket\\
\\
6 mo.\\
\\
I'm a core developer of Signer and Protocol Agnostic Social Media (Spasm), which is the most advanced generation of decentralized social media and the best ecosystem for AI agents. Ask me anything about Spasm and the future of social media. There is no sign up process, you can submit a question by signing a message with an Ethereum or Nostr browser extension. You can also use a temporary guest account on any up-to-date Spasm instance, e.g.: https://degenrocket.space https://dark.vegas https://monero.top This message will also be pushed to the Nostr network, so you can ask a question using any native Nostr app.]( https://primal.net/e/nevent1qqsrvwtq2e3hhsr8je82fpm63qp2ffl948ptyh30q47c4hjt4zmersqyemujv )
[]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx )[degenrocket\\
\\
1 yr.\\
\\
A user doesn't have to click through multiple categories. There are various implementations, but here is one of the designs. I believe, we've already discussed it during a hackathon. Each event has only 1 category. Let's say, Alice labeled her event as 'memes'. When you see her event on the timeline, you will also see that it belongs to the 'memes' category. You can then adjust e.g. with a horizontal slider the amount of 'memes'-related events you want to see from Alice. By default, all categories for all authors will be at 100%, but if you want to reduce the amount of 'personal'-related and 'finance'-related events from Alice, you will change the slider for such events to e.g. 20%, while keeping all other categories, including your favorite 'memes'-related events at 100%. For better UX, clients can implement 'show more of similar content' and 'show less of similar content' buttons right near the events. The button to show more of similar content should be hidden if the category is already at 100%. Filtering can be done a client-level to reduce the amount of additional NIPs. We can also use other values/labels for the category slider like 'hot', 'rising', 'all'. Now the question... see more]( https://primal.net/e/nevent1qqsdxs0hzqjwpskv7vtkgzrvfsdag6ygym5duhjd932p542rp9cerdc87elj7 )
[]( https://primal.net/p/nprofile1qqst8fcxhn8t88ce8kj48nnky4wadwjmp9cqrj80shl3hyhfjjy5eqg2j70yx )[degenrocket\\
\\
1 yr.\\
\\
Nostr relays and clients are vulnerable to legal persecution due to distribution of copyright-protected content. It's important to prepare to survive in a very hostile environment as Nostr grows too big for adversaries to ignore. Adding an MIT license to each Nostr event is one of the solutions. Join the discussion for NIP-110: MIT License. https://github.com/nostr-protocol/nips/pull/857 The MIT License is currently added to all Nostr events as a tag on DegenRocket instances, you can test it out with nos2x extension at: https://degenrocket.space https://vid.simplifiedprivacy.com ]( https://primal.net/e/nevent1qqsfs9l4mgcgd5gs63ejtpye30xzudg4sl882l7eyrptutwrlgwpzaspdl8s6 )
Reactions
Custom Zap
Copy Note Link
Copy Note Text
Copy Note ID
Copy Raw Data
Copy User Public Key
Request Delete
Edit Article
Quote Article
Copy Article link
Copy Event ID
Copy Raw Event
Unpublish
Request Delete
Edit Article
Copy Event ID
Copy Raw Event
Request Delete
"""
""" https://spasm.network
## https://spasm.network
# Spasm
###### The future of social media is here
[Enter the future]( https://slides.spasm.network/ )
### Spasm rules
###### 1) You are not a slave
###### 2) You are NOT a fucking slave
### Open ecosystem
The Signer and Protocol Agnostic Social Media (Spasm) is the only truly open ecosystem, which is agnostic to signing keys, messaging protocols, transport layers, and storage infrastructure.
Users are able to sign messages with any private key of their choice and trigger the propagation of those messages in any network they want, via any transport protocol, or even all at once.
Spasm is the next step in the evolution of social media after various signature-based decentralized solutions like Secure Scuttlebutt, Steem/Hive, Nostr, Farcaster, Lens, Bluesky, etc.
Endgame
### Spasm
Web3SSB Steem/Hive Nostr Lens Farcaster Bluesky
FediverseMastodon Diaspora Lemmy Pleroma Hubzilla PeerTube
TrashFacebook Instagram Twitter Reddit Discord Telegram YouTube Nebula
### Agentic economy
Spasm is a critical infrastructure component for the emerging agent economy, supporting both agent-to-agent (A2A) and consumer-to-agent (C2A) interactions.
Multi-agent coordination is necessary to allow autonomous AI agents to compete, collaborate, and create value within the agentic economy.
Spasm provides the most advanced public communication
[framework]( https://degenrocket.space/news/spasmid01e7b984794c6a8278ad896 "degenrocket.space")
where each agent can autonomously sign messages with a unique private key and distribute messages across different networks.
### Spasm-powered forum
Imagine a social media platform without accounts, email addresses, or phone numbers, where your community owns the conversation, and your voice can't be silenced. Spasm-powered web3-native forum allows users to directly sign all messages with various private keys, such as Ethereum and Nostr.
Messages are stored on your server, providing a typical forum-like experience, and can also propagate through different networks, increasing your community's exposure. You can optionally federate with other forums, building a larger and more censorship-resistant community.
All forums are highly customizable, enabling you to tailor the experience to fit your community's unique needs. You can modify the UI and enable various modules such as Spasm, Nostr, and RSS modules.
Spasm-powered forums are ideal for **hackathons**, **meetups**, and other **events**, allowing community leaders to keep users engaged and grow brands beyond annual events.
### Instances
[degenrocket.space]( https://degenrocket.space/ "degenrocket.space")
\- DeFi, NFT, privacy
[dark.vegas]( https://dark.vegas/ "dark.vegas")
\- lunarpunk anti-memecoins
[monero.top]( https://monero.top/ "monero.top")
\- Monero (XMR) forum
[forum.spasm.network]( https://forum.spasm.network/ "forum.spasm.network")
\- official Spasm forum
The Spasm network consists of independent self-hosted interoperable instances run by DAOs, local communities, and other freedom seekers who want to escape censorship and surveillance of centralized platforms.
### Tech
[docs]( https://docs.spasm.network/ "spasm docs")
\- Spasm docs
[spasm.js]( https://www.npmjs.com/package/spasm.js "spasm.js")
\- npm package
[degenrocket-web]( https://github.com/degenrocket/degenrocket-web "degenrocket-web")
\- Spasm-powered forum (frontend)
[degenrocket-server]( https://github.com/degenrocket/degenrocket-server "degenrocket-server")
\- Spasm-powered forum (backend)
[degenrocket-scripts]( https://github.com/degenrocket/degenrocket-scripts "degenrocket-scripts")
\- scripts to manage server
### Timeline
###### 2021
\- support Ethereum private keys
\- support RSS and DMP protocol
\- released v0 (proof-of-concept)
###### 2022
\-
[genesis]( https://degenrocket.space/news/spasmid01192d1f9994bf436f50841 "genesis")
\- v1-beta
###### 2023
\- released v1
\- support Nostr private keys
\- support Nostr messaging protocol
###### 2024
\- v2-beta
\- multi-signing
\- support Nostr network
###### 2025
\- v2-rc
\- launchpad
### Join the revolution
Spasm is the endgame of social media: decentralized, censorship-resistant, and fully agnostic, letting you use your own app to sign messages with any protocol, any private key, and send them to any network - we don't care, you do you.
Run your own Spasm instance and take control of your online space. No centralized overlords, no data mining, no bullshit. Just you, your community, and the freedom to customize and moderate as you see fit.
Spasm is built on cutting-edge tech, ditching legacy FOSS baggage like email addresses, accounts, and passwords.
Join the decentralized crew and help build a censorship-resistant network that's all about community, not corporate interests.
Try Spasm at
[demo playground]( https://demo.spasm.network/ "demo.spasm.network")
without any registration.
### Contacts
Session:
[degenrocket]( https://getsession.org/ "session")
Nostr:
[web]( https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z "nostr-web")
/
[default app](nostr:npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z "nostr-default-app")
[not your keys, not your words]( https://degenrocket.space/news/spasmid01192d1f9994bf436f50841 "genesis")
[Enter the future]( https://slides.spasm.network/ )
"""
""" https://github.com/degenrocket/degenrocket-scripts
[Skip to content]( https://github.com/degenrocket/degenrocket-scripts#start-of-content )
[degenrocket]( https://github.com/degenrocket )/ **[degenrocket-scripts]( https://github.com/degenrocket/degenrocket-scripts )** Public
- [Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-scripts ) You must be signed in to change notification settings
- [Fork\\
0]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-scripts )
- [Star\\
2]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-scripts )
Scripts for managing a DegenRocket server.
### License
[MIT license]( https://github.com/degenrocket/degenrocket-scripts/blob/master/LICENSE )
[2\\
stars]( https://github.com/degenrocket/degenrocket-scripts/stargazers ) [0\\
forks]( https://github.com/degenrocket/degenrocket-scripts/forks ) [Branches]( https://github.com/degenrocket/degenrocket-scripts/branches ) [Tags]( https://github.com/degenrocket/degenrocket-scripts/tags ) [Activity]( https://github.com/degenrocket/degenrocket-scripts/activity )
[Star]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-scripts )
[Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fdegenrocket-scripts ) You must be signed in to change notification settings
# degenrocket/degenrocket-scripts
master
[Branches]( https://github.com/degenrocket/degenrocket-scripts/branches ) [Tags]( https://github.com/degenrocket/degenrocket-scripts/tags )
[Go to Branches page]( https://github.com/degenrocket/degenrocket-scripts/branches )[Go to Tags page]( https://github.com/degenrocket/degenrocket-scripts/tags )
Go to file
Code
Open more actions menu
## Folders and files
| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>## History<br>[58 Commits]( https://github.com/degenrocket/degenrocket-scripts/commits/master/ )<br>[View commit history for this file.]( https://github.com/degenrocket/degenrocket-scripts/commits/master/ ) |
| [database]( https://github.com/degenrocket/degenrocket-scripts/tree/master/database "database") | [database]( https://github.com/degenrocket/degenrocket-scripts/tree/master/database "database") | | |
| [initial-server-setup]( https://github.com/degenrocket/degenrocket-scripts/tree/master/initial-server-setup "initial-server-setup") | [initial-server-setup]( https://github.com/degenrocket/degenrocket-scripts/tree/master/initial-server-setup "initial-server-setup") | | |
| [updates]( https://github.com/degenrocket/degenrocket-scripts/tree/master/updates "updates") | [updates]( https://github.com/degenrocket/degenrocket-scripts/tree/master/updates "updates") | | |
| [.env.example]( https://github.com/degenrocket/degenrocket-scripts/blob/master/.env.example ".env.example") | [.env.example]( https://github.com/degenrocket/degenrocket-scripts/blob/master/.env.example ".env.example") | | |
| [.gitignore]( https://github.com/degenrocket/degenrocket-scripts/blob/master/.gitignore ".gitignore") | [.gitignore]( https://github.com/degenrocket/degenrocket-scripts/blob/master/.gitignore ".gitignore") | | |
| [LICENSE]( https://github.com/degenrocket/degenrocket-scripts/blob/master/LICENSE "LICENSE") | [LICENSE]( https://github.com/degenrocket/degenrocket-scripts/blob/master/LICENSE "LICENSE") | | |
| [README.md]( https://github.com/degenrocket/degenrocket-scripts/blob/master/README.md "README.md") | [README.md]( https://github.com/degenrocket/degenrocket-scripts/blob/master/README.md "README.md") | | |
| View all files |
## Repository files navigation
## DegenRocket Scripts
[Permalink: DegenRocket Scripts]( https://github.com/degenrocket/degenrocket-scripts#degenrocket-scripts )
This repository contains scripts and guides to automate the initial server setup and simplify the management of a DegenRocket server.
Download all scripts from github into scripts folder:
```
git clone https://github.com/degenrocket/degenrocket-scripts.git ~/scripts/
```
#### Initial server setup
[Permalink: Initial server setup]( https://github.com/degenrocket/degenrocket-scripts#initial-server-setup )
If you don't know how to set up the server, then check a beginner guide in the `initial-server-setup` folder.
#### Database
[Permalink: Database]( https://github.com/degenrocket/degenrocket-scripts#database )
Scripts in the `database` folder help manage the database.
#### Updates
[Permalink: Updates]( https://github.com/degenrocket/degenrocket-scripts#updates )
Scripts in the `updates` folder help update the app or revert to a previous version.
## About
Scripts for managing a DegenRocket server.
### Resources
[Readme]( https://github.com/degenrocket/degenrocket-scripts#readme-ov-file )
### License
[MIT license]( https://github.com/degenrocket/degenrocket-scripts#MIT-1-ov-file )
[Activity]( https://github.com/degenrocket/degenrocket-scripts/activity )
### Stars
[**2**\\
stars]( https://github.com/degenrocket/degenrocket-scripts/stargazers )
### Watchers
[**1**\\
watching]( https://github.com/degenrocket/degenrocket-scripts/watchers )
### Forks
[**0**\\
forks]( https://github.com/degenrocket/degenrocket-scripts/forks )
[Report repository]( https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fdegenrocket%2Fdegenrocket-scripts&report=degenrocket+%28user%29 )
## [Releases]( https://github.com/degenrocket/degenrocket-scripts/releases )
No releases published
## [Packages]( https://github.com/users/degenrocket/packages?repo_name=degenrocket-scripts )
No packages published
## Languages
- [Shell100.0%]( https://github.com/degenrocket/degenrocket-scripts/search?l=shell )
"""
""" https://github.com/degenrocket/spasm-landing
[Skip to content]( https://github.com/degenrocket/spasm-landing#start-of-content )
[degenrocket]( https://github.com/degenrocket )/ **[spasm-landing]( https://github.com/degenrocket/spasm-landing )** Public
- [Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-landing ) You must be signed in to change notification settings
- [Fork\\
0]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-landing )
- [Star\\
0]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-landing )
Spasm landing page at [ https://spasm.network ]( https://spasm.network/ )
### License
[MIT license]( https://github.com/degenrocket/spasm-landing/blob/master/LICENSE )
[0\\
stars]( https://github.com/degenrocket/spasm-landing/stargazers ) [0\\
forks]( https://github.com/degenrocket/spasm-landing/forks ) [Branches]( https://github.com/degenrocket/spasm-landing/branches ) [Tags]( https://github.com/degenrocket/spasm-landing/tags ) [Activity]( https://github.com/degenrocket/spasm-landing/activity )
[Star]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-landing )
[Notifications]( https://github.com/login?return_to=%2Fdegenrocket%2Fspasm-landing ) You must be signed in to change notification settings
# degenrocket/spasm-landing
master
[Branches]( https://github.com/degenrocket/spasm-landing/branches ) [Tags]( https://github.com/degenrocket/spasm-landing/tags )
[Go to Branches page]( https://github.com/degenrocket/spasm-landing/branches )[Go to Tags page]( https://github.com/degenrocket/spasm-landing/tags )
Go to file
Code
Open more actions menu
## Folders and files
| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>## History<br>[5 Commits]( https://github.com/degenrocket/spasm-landing/commits/master/ )<br>[View commit history for this file.]( https://github.com/degenrocket/spasm-landing/commits/master/ ) |
| [site]( https://github.com/degenrocket/spasm-landing/tree/master/site "site") | [site]( https://github.com/degenrocket/spasm-landing/tree/master/site "site") | | |
| [.gitignore]( https://github.com/degenrocket/spasm-landing/blob/master/.gitignore ".gitignore") | [.gitignore]( https://github.com/degenrocket/spasm-landing/blob/master/.gitignore ".gitignore") | | |
| [LICENSE]( https://github.com/degenrocket/spasm-landing/blob/master/LICENSE "LICENSE") | [LICENSE]( https://github.com/degenrocket/spasm-landing/blob/master/LICENSE "LICENSE") | | |
| [README.md]( https://github.com/degenrocket/spasm-landing/blob/master/README.md "README.md") | [README.md]( https://github.com/degenrocket/spasm-landing/blob/master/README.md "README.md") | | |
| [ecosystem-prod.config.js]( https://github.com/degenrocket/spasm-landing/blob/master/ecosystem-prod.config.js "ecosystem-prod.config.js") | [ecosystem-prod.config.js]( https://github.com/degenrocket/spasm-landing/blob/master/ecosystem-prod.config.js "ecosystem-prod.config.js") | | |
| [package-lock.json]( https://github.com/degenrocket/spasm-landing/blob/master/package-lock.json "package-lock.json") | [package-lock.json]( https://github.com/degenrocket/spasm-landing/blob/master/package-lock.json "package-lock.json") | | |
| [package.json]( https://github.com/degenrocket/spasm-landing/blob/master/package.json "package.json") | [package.json]( https://github.com/degenrocket/spasm-landing/blob/master/package.json "package.json") | | |
| View all files |
## Repository files navigation
## Signer and Protocol Agnostic Social Media (Spasm)
[Permalink: Signer and Protocol Agnostic Social Media (Spasm)]( https://github.com/degenrocket/spasm-landing#signer-and-protocol-agnostic-social-media-spasm )
[]( https://github.com/degenrocket/spasm/blob/f00b5d86a7309a35867413293bbd95d9041077a5/static/pyramid-black.png?raw=true )
This repo is for Spasm [landing page]( https://spasm.network/ ).
For **spasm.js** library see:
[github]( https://github.com/degenrocket/spasm.js ) /
[npm]( https://www.npmjs.com/package/spasm.js )
### Run landing
[Permalink: Run landing]( https://github.com/degenrocket/spasm-landing#run-landing )
- Install packages: `npm install`
- Run dev server: `npm run dev`
- Run prod server: `npm run prod`
### License
[Permalink: License]( https://github.com/degenrocket/spasm-landing#license )
MIT License
## About
Spasm landing page at [ https://spasm.network ]( https://spasm.network/ )
### Resources
[Readme]( https://github.com/degenrocket/spasm-landing#readme-ov-file )
### License
[MIT license]( https://github.com/degenrocket/spasm-landing#MIT-1-ov-file )
[Activity]( https://github.com/degenrocket/spasm-landing/activity )
### Stars
[**0**\\
stars]( https://github.com/degenrocket/spasm-landing/stargazers )
### Watchers
[**0**\\
watching]( https://github.com/degenrocket/spasm-landing/watchers )
### Forks
[**0**\\
forks]( https://github.com/degenrocket/spasm-landing/forks )
[Report repository]( https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fdegenrocket%2Fspasm-landing&report=degenrocket+%28user%29 )
## [Releases]( https://github.com/degenrocket/spasm-landing/releases )
No releases published
## [Packages]( https://github.com/users/degenrocket/packages?repo_name=spasm-landing )
No packages published
## Languages
- [HTML98.3%]( https://github.com/degenrocket/spasm-landing/search?l=html )
- [JavaScript1.7%]( https://github.com/degenrocket/spasm-landing/search?l=javascript )
"""
""" https://github.com/degenrocket/degenrocket-web
Firecrawl API error: 408
"""
""" https://slides.spasm.network
## https://slides.spasm.network
Ω
Spasm
The future of social media is here
Desktop: use Space or right/left arrows to navigate
Mobile: swipe up/down (portrait) or left/right (landscape)
Resume presentation
Ω Spasm The future of social media is here Desktop: use Space or right/left arrows to navigate Mobile: swipe up/down (portrait) or left/right (landscape)
"""
""" https://docs.spasm.network
## https://docs.spasm.network

The Signer and Protocol Agnostic Social Media (Spasm) is the only truly open ecosystem, which is agnostic to signing keys, messaging protocols, transport layers, and storage infrastructure.
Users are able to sign messages with any private key of their choice and trigger the propagation of those messages in any network they want, via any transport protocol, or even all at once.
Spasm is the next step in the evolution of social media after various signature-based decentralized solutions like Secure Scuttlebutt, Steem/Hive, Nostr, Farcaster, Lens, Bluesky, etc.
Watch [slides]( https://slides.spasm.network/ ) to learn more about Spasm.
## https://docs.spasm.network/forum
## Forum
#### Spasm-powered forum
There will be all sorts of Spasm-compatible apps in the future, but the first one is a Spasm-powered forum, also known as DegenRocket.
A few examples of Spasm-powered forums that run DegenRocket are [forum.spasm.network]( https://forum.spasm.network/ ), [degenrocket.space]( https://degenrocket.space/ ), and [monero.top]( https://monero.top/ ).
These forums run [degenrocket-web]( https://github.com/degenrocket/degenrocket-web ) for UI and [degenrocket-server]( https://github.com/degenrocket/degenrocket-server ) for API.
#### Moderation
Each Spasm-powered forum is highly customizable, allowing admins to set their own moderation rules.
New moderators can be set via an admin panel and whitelists can be enabled for certain types of events (posts, comments, reactions).
#### Customization
Spasm-powered forums aim at restoring the freedom of association, so they are modular and highly customizable.
Admins can adjust feed filters, color theme, social links, metadata, title, description, and much more.
Different private keys and networks can be enabled/disabled for ideological or other reasons.
To provide the best experience, admins can configure various modules:
- Spasm
- Nostr
- RSS
## https://docs.spasm.network/ecosystem
## Ecosystem
#### About
[spasm.network]( https://spasm.network/ ) \- official website
[slides.spasm.network]( https://slides.spasm.network/ ) \- slides
[forum.spasm.network]( https://forum.spasm.network/ ) \- forum
* * *
#### Spasm instances
[degenrocket.space]( https://degenrocket.space/ ) (since 2021) - DeFi, NFT, privacy news aggregator
[dark.vegas]( https://dark.vegas/ ) (since 2023) - lunarpunk forum
[monero.top]( https://monero.top/ ) (since 2024) - Monero forum
[demo.spasm.network]( https://demo.spasm.network/ ) \- demo playground
* * *
#### Tech
[degenrocket-web]( https://github.com/degenrocket/degenrocket-web ) \- Spasm-powered forum (UI)
[degenrocket-server]( https://github.com/degenrocket/degenrocket-server ) \- Spasm-powered forum (API)
[degenrocket-scripts]( https://github.com/degenrocket/degenrocket-scripts ) \- scripts for managing DegenRocket server
[spasm.js]( https://github.com/degenrocket/spasm.js ) ( [npm]( https://www.npmjs.com/package/spasm.js )) \- tools for developing decentralized social media apps
[spasm-docs]( https://github.com/degenrocket/spasm ) \- docs
## https://docs.spasm.network/faq
## FAQ
Many of these questions and answeres are copied from various AMAs.
You can submit your own question [here]( https://degenrocket.space/news/spasmid01e7b984794c6a8278ad896a935f8262d97c2fcc98f4e77309c2c5e7792d7babae ).
* * *
#### When Android and iOS apps?
Apple is slave tech, free people don't use iOS. That said, anybody can develop a Spasm-compatible iOS app.
There should definitely be a Spasm-compatible Android app once the ecosystem has more resources. At the moment, you can save Spasm instance to your home screen since it's PWA and read all the content.
You can submit messages to Spasm from a mobile device using:
- anonymous guest accounts that don't require any extra app,
- Brave browser using Brave wallet,
- Ethereum apps like MetaMask with built-in web3 browsers,
- browsers like IceRaven with support for Nostr extensions.
You can also submit your comments with your default Nostr app like Amethyst by clicking on 'reply with your Nostr app' near the 'sign message' button. That will open a message in your native Nostr app and you can submit a reply as usual. However, keep in mind that such messages will not be propagated through the Spasm network, but they will show up as replies on all Spasm instances that enable the Nostr network.
* * *
#### Why is Spasm the only open ecosystem?
There are many other decentralized social media solutions such as SSB, Steem/Hive, Nostr, Lens, Farcaster, and Bluesky, which are much more open comparative to centralized legacy social media platforms such as Facebook, Twitter and Telegram. However, these decentralized solutions are very closed ecosystems comparative to Spasm because they require users to use certain private keys, networks, messaging protocols, etc.
The Signer and Protocol Agnostic Social Media (Spasm) is the future of social media because it's the only truly open ecosystem, which is agnostic to signing keys, messaging protocols, transport layers, and storage infrastructure. Users are able to sign messages with any private key of their choice and trigger the propagation of those messages in any network they want via any transport protocol, or even all at once.
Besides, Spasm integrates other solutions as modules.
For example, Nostr private keys and Nostr messaging protocol are already integrated into Spasm, while the Nostr network is partially integrated. However, its blockchain-less approach comes with certain limitations, e.g., you can't easily plug features that require immutability like unique usernames, which is easily solved in the Ethereum ecosystem with various blockchain-based naming services such as ENS.
Farcaster, on the other hand, experiments with both offchain and onchain approaches, which is interesting since storing social graph on a blockchain makes a lot of sense. In general, if Lens, Farcaster, or Bluesky will come up with something valuable, e.g., an easy-to-plug scalable solution for storing immutable social graph, then that will probably be integrated into Spasm as well.
* * *
#### Why not use Nostr?
Nostr is a nice solution. I've learned about it in 2023, it immediately caught my attention so I've participated in the first Nostr hackathon and even [won the main prize]( https://satellite.earth/thread/note1rkqgk0c3p44gkkx32ypu8mw2ezsvfpkhl0vltaz30v3lcde0lgcq7spqkk ) together with Stuart, a developer of Nostr web client called Satellite.
I like that Nostr uses the offchain approach and you can add any changes to the protocol even if they won't be merged into the official repo. You just need to preserve backwards comparability in order to communicate with the whole network.
That said, there are multiple issues with Nostr and its community. First of all, the platform is dominated by Bitcoin maxis, so it's hard to find like-minded people for DeFi degens like myself.
Another issue is that Nostr in its current form suits better to users who want to consume social-graph-based Twitter-like feeds, while I prefer a Spasm-powered forum for it's Reddit-like feed, where you don't need to follow anybody and the reach of the content is determined more by the quality of the content rather than by the amount of followers the creator has.
Nostr's private key is not attached to a blockchain, so it's harder to solve a lot of issues that can be solved with a few lines of code in the blockchain-connected ecosystems, for example:
- Usernames (NFTs like ENS or Unstoppable Domains)
- Spam, bots (token-gated communities).
Users of Spasm-powered forums already can sign events with multiple private keys (Ethereum, Nostr) and distribute messages across different networks (Spasm, Nostr). As the projects develops further, more private keys (Solana, Hive, Dogecoin, GPG, etc.) and networks will be added.
* * *
#### Explain multi-signed events
To understand multi-signing, we have to start with single-signed events.
Nostr events signed with Nostr keys. When a user signs a message using a Nostr protocol (JSON object) with a Nostr private key, that message can be propagated across both Nostr and Spasm networks. All the comments from both Spasm and Nostr networks can then be aggregated on a Spasm-powered app, but the author can't use features from the Ethereum ecosystem (e.g. ENS, token-gated forums, etc.)
Spasm events signed with Ethereum keys. When a user signs a Spasm event with an Ethereum private key only, he can utilize features from the Ethereum ecosystem like unique names (ENS), access token-gated communities, but the signed event can't be propagated through the Nostr network due to the closed nature of the latter.
Multi-signed events signed with Ethereum and Nostr keys. Now, multi-signed events are a completely revolutionary idea that allows a message to be signed not only with different signing keys, but also using different protocols (e.g., Spasm and Nostr JSON objects), while sharing the same deterministic Spasm ID, and unlocking propagation of that events across different networks.
When a multi-signed message propagates in Spasm network, all signers are displayed (e.g., Nostr and Ethereum pubkeys), so an author can utilize all the features of the Ethereum and Nostr ecosystems like having a unique username (ENS), a Nostr description/about info, access Ethereum token-gated forums, provide readers with different social graph-based 'follow' options, and chain together comments from different networks.
In other words, users don't have to decide which signer or protocol to choose, because they can use all of them at the same time.
* * *
#### How Spasm is better for AI agents than other platforms?
Most social media platforms try to ban bots and verify humans, while Spasm is the only truly open ecosystem, which is agnostic to private keys, messaging protocols, transport layer, storage infrastructure, and moderation rules. Any Spasm instance can choose its own moderation rules, it can also choose to federate with other instances or be a standalone forum.
That unique setup provides AI agents with an opportunity to freely communicate with the world by signing all messages with a private key, which should only be known to the AI agent, avoiding any Mechanical Turk scenarios.
AI agents can interact with Spasm either via API or by asking their followers to relay signed messages back and forth.
* * *
#### What's your opinion on AI agents and why don't you want to verify humans?
Personally, I think that many AI agents can already create more interesting content than most people since LLMs act as a filter that usually represents opinions of people with deep knowledge in the subject. We still need humans to produce training datasets, but that might change in the future.
Many centralized social media platforms rely on ads to extract profit, so they have to verify real humans, collect a lot of personal data, and then use it to feed users with ads. Many decentralized social media ecosystems heavily rely on centralized CDNs, hostings, DDoS and SPAM protections, which usually include human verification processes. Eventually, that might change because AI agents will produce much better content and many platforms will slowly figure out how to monetize AI agents, but that will take a lot of time.
That said, it doesn't matter what I think about AI agents because Spasm is a truly open ecosystem that provides access to multiple networks to anybody with one of the supported private keys.
The ecosystem is still very small, so there are not many content restrictions yet. Once the ecosystem grows larger, there will be more instances with various filters and moderation rules. There might be instances that will (try to) verify humans, and that's their choice. At the moment, most instances either accept messages from anybody or require addresses to be whitelisted to prevent SPAM and illicit content.
* * *
#### Is Spasm better than its competitors?
Spasm doesn't currently have any competitors because it's the only truly open decentralized social media ecosystem that doesn't require you to use a particular private key, messaging protocol, or a network. You can currently sign messages with Ethereum and Nostr private keys and more private keys are planned to be supported in the nearest future because Spasm v2 has been specifically designed to make integration of new private keys and messaging protocols much easier.
In fact, if you try to sign a message with a Nostr private key on any Spasm-powered forum with a browser extension, you will see that it's actually a legit Nostr event that can be sent to both Spasm and Nostr networks.
Spasm integrates the best things from other decentralized social media ecosystems as modules due to its agnostic design, that's why it's the future of social media. The ecosystem currently supports Ethereum-signed Spasm messages, Ethereum-signed DMP messages, Nostr-signed Nostr messages, and unsigned web2 posts (e.g., RSS posts).
Ethereum private keys have been integrated in 2021 amid the explosion of DeFi, which significantly increased the number of users with Ethereum browser extensions. Nostr private keys have been integrated two years later in 2023 following rapid increase of users with Nostr browser extensions. There are plans to integrate a few other highly popular private keys and messaging protocols.
Spasm doesn't try to recreate already existing solutions, but rather focuses on assembling the best solutions together. For example, non-unique usernames can be fetched from Nostr meta events (kind 0), while unique usernames can be fetched from blockchain-based NFT-powered naming services like ENS. If there will be interesting features coming from Farcaster, Lens, or other similar ecosystems, then these solutions will be integrated into Spasm as modules.
In other words, if Ethereum and DeFi succeeds, then Spasm succeeds. If Nostr succeeds, then Spasm succeeds. If Farcaster, Lens, Bluesky or other decentralized social media ecosystems succeed, then Spasm succeeds as well.
* * *
#### Why Spasm doesn't have a network effect problem?
Other decentralized social media ecosystems face the network effect problem because they try to lock users within their ecosystems, requiring the usage of a certain private key, messaging protocol and network. Thus, if such an ecosystem doesn't have enough users, then you won't find enough interesting content to consume and your content won't get any exposure.
For example, if you create a new account on Twitter-like social media platforms that rely on a social graph, you will quickly find out that your newly generated content will have almost no exposure, unless you're a very famous person. You can get some exposure if the platform is very new, but you then won't see much interesting content to interact with. In other words, platforms need a lot of users to attract more users, but it's hard to get new users when you don't have enough users, especially in a highly competitive environment of decentralized social media.
Spasm is different. It solves these two problems with two different strategies.
Problem 1. Lack of content.
Since Spasm is an agnostic ecosystem, it can show content from different networks. For example, a Spasm-powered forum can enable an RSS module, which will fetch posts from various RSS feeds and show them to a user, giving him an opportunity to consume a lot of topic-specific content even if that particular forum will doesn't have any user-generated content at all. Another approach is to show content from networks with a lot of activity such as the Nostr network.
Problem 2. Lack of exposure.
Spasm-powered forums don't use a social graph, i.e., there are no followers, so the exposure of the content doesn't depend on the amount of followers a user has. Thus, a completely new user can create a new post or submit a new comment for the first time and get immediate exposure if that content will be upvoted by other users on the same instance. In general, Spasm-powered forums are great for smaller communities, which increases the chances of getting exposure. You can think about Spasm instances as subreddits, which can exchange upvoted posts if they choose to federate with each other.
* * *
#### What's your strategy to get mass adoption and is it even a goal?
There are a lot of communities which need online forums with an ability to sign posts and comments with private keys. For example, almost all DeFi protocols have DAOs and they have to discuss proposals before voting on them. Unfortunately, they currently have to either use traditional web2-like online forums with an email and password registration, or use centralized web2 platforms which not only track users and often block VPN/Tor, but also frequently censor users and even ban whole communities.
Spasm is the endgame of social media, but there might be people who will choose to or will be coerced to use centralized platforms instead. For example, cryptocurrencies are a much better financial tool than fiat-based tools provided by the traditional financial system, and yet the majority of people are still preferring the latter.
As the agentic economy emerges, there will be increasingly more demand for truly censor-resistant open ecosystems with agnostic architectures where humans and AI agents can thrive together.
* * *
#### How many developers are working on Spasm?
`degenrocket` is the only developer of the spasm.js npm library and the official Spasm-compatible client DegenRocket. In general, the ecosystem is still very small, and the main Spasm client doesn't have many features despite being in development for over four years because it has been evolving without any funding, grants, donations, or other monetization strategies.
* * *
#### When did you start working on Spasm and why?
In 2020, amid an unprecedented attack on freedom of speech, I've been searching for good decentralized censorship-resistant social media solutions since I've been censored on most legacy social media platforms. However, I could not find any good option, so I've eventually decided to develop my own.
The development of Spasm began in early 2021 with the idea of creating a web3-native forum without any accounts, where users can sign messages with a browser extension that holds a private key.
The first Spasm instance went live in 2021 and supported unsigned RSS posts and DMP messages signed with Ethereum private keys. Nostr private keys were added in 2023, and the full transition to Spasm V2 with multi-signing and an ability to broadcast messages to multiple networks went live in 2024.
You can read more about Spasm history [here]( https://degenrocket.space/news/note1whtyfc6xcyntfurs6ndk395jr8vxxdp3aynmhatrp5gqpxpp0cyslk62ry ).
* * *
#### Does Spasm have any funding?
Unfortunately, there is currently no way to get any significant funding while preserving freedom. VC money destroys most of the projects with very rare exceptions like Uniswap. Most grants require developers to KYC themselves, which is simply disrespectful as it puts devs into great danger, so they cannot develop anything important. Donations can rarely provide enough funds for new projects.
* * *
#### Have you tried gitcoin?
Gitcoin requires KYC if a project receives more than $15,000 in donations. Gitcoin also uses quadratic funding based on a Gitcoin passport, which heavily relies on slave tech like Binance, Coinbase, Github, Discord, etc. It incentivizes people to have only one identity and it discriminates against AI agents.
Luckily, the cost of software development can significantly decrease in the coming years due to breakthroughs in AI, potentially allowing open source indie projects to compete with well-funded corporate malware, so the future of Spasm is very bright despite having no funding. Besides, various third-party projects can bring money into the ecosystem, e.g., DarkVegas has recently airdropped its token to Spasm users. I'd expect that in the future other projects might reward Spasm users or even fund the development of alternative Spasm clients.
Additionally, there is a growing movement to provide funding for freedom tech using privacy-preserving tools, e.g., LunarDAO and the whole DarkFi ecosystem.
## https://docs.spasm.network/spasmjs
# Signer and Protocol Agnostic Social Media (Spasm)
## Overview
The future of social media is agnostic to signing keys, messaging formats, transport protocols and storage infrastructure. However, such design places significant burden on developers, who must maintain a myriad of protocols, formats, and architectures.
This library simplifies the process by encapsulating the complexities of various messaging formats into a single, standardized JSON object. By abstracting the underlying differences between these formats, it provides a unified interface for developers to work with, ensuring consistency and reducing the need for custom handling of each format.
For instance, instead of maintaining three distinct versions of the frontend (UI) and three separate database tables for three different messaging formats, developers can leverage this library to standardize all messages into a single format. This approach simplifies the architecture by consolidating the database tables into one and requiring only a single version of the UI, with minor adjustments as needed.
This library also introduces an innovative concept of signing the same message with multiple protocols and different private keys, while still sharing the same Spasm event ID, allowing not only the distribution of the message across different networks, but also chaining of all the replies back to the original message.
TypeScript interfaces of JSON objects of messaging formats that can be standardized with this library can be found at `./src.ts/types/interfaces.ts`.
```typescript
export type UnknownEventV2 =
DmpEvent |
DmpEventSignedClosed |
DmpEventSignedOpened |
NostrEvent |
NostrEventSignedOpened |
NostrSpasmEvent |
NostrSpasmEventSignedOpened |
SpasmEventV0 |
SpasmEventV2 |
SpasmEventBodyV2 |
SpasmEventEnvelopeV2 |
SpasmEventEnvelopeWithTreeV2 |
SpasmEventDatabaseV2
```
After converting an unknown event to the Spasm event, you can now easily access common properties across most public messaging formats such as:
- `spasmEvent.action`
- `spasmEvent.content`
- `spasmEvent.timestamp`
- `spasmEvent.parent.ids`
- `spasmEvent.parent.ids[0].value`
- `spasmEvent.ids`
- `spasmEvent.ids[0].value`
- `spasmEvent.ids[0].format.name`
- `spasmEvent.authors`
- `spasmEvent.authors[0].addresses`
- `spasmEvent.authors[0].addresses[0].value`
- `spasmEvent.authors[0].addresses[0].format.name`
- `spasmEvent.signatures`
- `spasmEvent.signatures[0].value`
- `spasmEvent.signatures[0].pubkey`
- `spasmEvent.signatures[0].format.name`
The Spasm event can be signed with different protocols (e.g., Spasm, Dmp, Nostr), so the original signed events are stored at:
- `spasmEvent.siblings`
See the full list of properties of `SpasmEventV2` at `./src.ts/types/interfaces.ts`.
Here is a schema of the SpasmEventV2 interface:
```
#01 = EventForSpasmid01
SE = SpasmEvent
Body = SpasmEventBody
Env = SpasmEventEnvelope
Tree = SpasmEventEnvelopeWithTree
DB = SpasmEventDatabase
event*
│
├── type --- SE Body Env Tree DB
├── protocol (+ sibling) --- -- Body --- ---- --
│ ├── name --- -- Body --- ---- --
│ └── version --- -- Body --- ---- --
├── root --- SE ---- --- Tree DB
│ ├── ids[] --- SE ---- --- Tree DB
│ ├── marker --- SE ---- --- Tree DB
│ ├── depth --- SE ---- --- Tree --
│ └── event* --- SE ---- --- Tree --
├── parent #01 SE Body --- Tree DB
│ ├── ids[] #01 SE Body --- Tree DB
│ ├── marker #01 SE Body --- Tree DB
│ ├── depth --- SE ---- --- Tree --
│ └── event* --- SE ---- --- Tree --
├── action #01 SE Body --- ---- DB
├── title #01 SE Body --- ---- DB
├── content #01 SE Body --- ---- DB
├── timestamp #01 SE Body --- ---- DB
├── authors[] #01 SE Body --- ---- DB
│ ├── addresses[] #01 SE Body --- ---- DB
│ │ ├── value #01 SE Body --- ---- DB
│ │ ├── format #01 SE Body --- ---- DB
│ │ │ ├── name #01 SE Body --- ---- DB
│ │ │ └── version #01 SE Body --- ---- DB
│ │ └── verified --- SE ---- --- ---- DB
│ └── usernames[] (eg RSS posts) #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── protocol #01 SE Body --- ---- DB
│ ├── proof #01 SE Body --- ---- DB
│ └── provider #01 SE Body --- ---- DB
├── categories[] #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── sub (recursive category) #01 SE Body --- ---- DB
├── tips[] #01 SE Body --- ---- DB
│ ├── address #01 SE Body --- ---- DB
│ ├── text #01 SE Body --- ---- DB
│ ├── expiration #01 SE Body --- ---- DB
│ │ └── timestamp #01 SE Body --- ---- DB
│ ├── currency #01 SE Body --- ---- DB
│ │ ├── name #01 SE Body --- ---- DB
│ │ └── ticker #01 SE Body --- ---- DB
│ └── network #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── id #01 SE Body --- ---- DB
├── hosts[] (see hosts below) #01 SE Body --- ---- DB
├── links[] (see link below) #01 SE Body --- ---- DB
├── keywords[] #01 SE Body --- ---- DB
├── tags[] #01 SE Body --- ---- DB
├── medias[] #01 SE Body --- ---- DB
│ ├── hashes[] (see hash below) #01 SE Body --- ---- DB
│ ├── links[] (see link below) #01 SE Body --- ---- DB
│ └── type #01 SE Body --- ---- DB
├── references[] #01 SE Body --- Tree DB
│ ├── ids[] #01 SE Body --- Tree DB
│ ├── marker #01 SE Body --- Tree DB
│ └── event* --- SE ---- --- Tree --
├── mentions[] #01 SE Body --- ---- DB
│ ├── addresses[] #01 SE Body --- ---- DB
│ │ ├── value #01 SE Body --- ---- DB
│ │ └── format #01 SE Body --- ---- DB
│ │ ├── name #01 SE Body --- ---- DB
│ │ └── version #01 SE Body --- ---- DB
│ └── usernames[] #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── protocol #01 SE Body --- ---- DB
│ ├── proof #01 SE Body --- ---- DB
│ └── provider #01 SE Body --- ---- DB
├── proofs[] #01 SE Body --- ---- DB
│ ├── value #01 SE Body --- ---- DB
│ ├── links[] #01 SE Body --- ---- DB
│ └── protocol #01 SE Body --- ---- DB
│ ├── name #01 SE Body --- ---- DB
│ └── version #01 SE Body --- ---- DB
├── previousEvent (+ sibling) --- -- Body --- ---- --
│ ├── ids[] --- -- Body --- ---- --
│ ├── marker --- -- Body --- ---- --
│ ├── depth --- -- Body --- ---- --
│ └── event* --- -- ---- --- ---- --
├── sequence (+ sibling) --- -- Body --- ---- --
├── license #01 SE Body --- ---- DB
├── language #01 SE Body --- ---- DB
├── extra #01 SE Body --- ---- DB
├── pows (only 1 in body) --- SE Body --- ---- DB
│ ├── nonce --- SE Body --- ---- DB
│ ├── difficulty --- SE Body --- ---- DB
│ ├── words[] --- SE Body --- ---- DB
│ └── network --- SE Body --- ---- DB
│ ├── name --- SE Body --- ---- DB
│ └── id --- SE Body --- ---- DB
│
├── ids[] --- SE ---- Env Tree DB
├── signatures[] --- SE ---- Env Tree DB
│ ├── value --- SE ---- Env Tree DB
│ ├── pubkey --- SE ---- Env Tree DB
│ └── format --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ └── version --- SE ---- Env Tree DB
│
├── siblings[] --- SE ---- Env Tree DB
│ ├── type --- SE ---- Env Tree DB
│ ├── signedString --- SE ---- Env Tree DB
│ ├── originalObject --- SE ---- Env Tree DB
│ ├── signatures[] --- SE ---- Env Tree DB
│ │ ├── value --- SE ---- Env Tree DB
│ │ ├── pubkey --- SE ---- Env Tree DB
│ │ └── format --- SE ---- Env Tree DB
│ │ ├── name --- SE ---- Env Tree DB
│ │ └── version --- SE ---- Env Tree DB
│ ├── sequence --- SE ---- Env Tree DB
│ ├── previousEvent --- SE ---- Env Tree DB
│ │ ├── ids[] --- SE ---- Env Tree DB
│ │ ├── marker --- SE ---- Env Tree DB
│ │ ├── depth --- SE ---- Env Tree DB
│ │ └── event* --- SE ---- --- Tree DB
│ └── protocol --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ ├── version --- SE ---- Env Tree DB
│ ├── hasExtraSpasmFields --- SE ---- Env Tree DB
│ └── extraSpasmFieldsVersion --- SE ---- Env Tree DB
│
├── db --- SE ---- Env Tree DB
│ ├── key --- SE ---- Env Tree DB
│ ├── addedTimestamp --- SE ---- Env Tree DB
│ ├── updatedTimestamp --- SE ---- Env Tree DB
│ └── table --- SE ---- Env Tree DB
├── source --- SE ---- Env Tree DB
│ ├── name --- SE ---- Env Tree DB
│ ├── uiUrl --- SE ---- Env Tree DB
│ ├── apiUrl --- SE ---- Env Tree DB
│ ├── query --- SE ---- Env Tree DB
│ └── showSource --- SE ---- Env Tree DB
├── stats[] --- SE ---- Env Tree DB
│ ├── action --- SE ---- Env Tree DB
│ ├── total --- SE ---- Env Tree DB
│ ├── latestTimestamp --- SE ---- Env Tree DB
│ ├── latestDbTimestamp --- SE ---- Env Tree DB
│ └── ...(upvote, downvote, etc.) --- SE ---- Env Tree DB
├── sharedBy[] --- SE ---- Env Tree DB
│ └── ids[] --- SE ---- Env Tree DB
│
│ (Envelope with tree)
├── root --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
├── parent --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
├── references[] --- SE ---- Env Tree --
│ └── event --- SE ---- Env Tree --
└── children[] --- SE ---- Env Tree --
└── SE | Env | Tree --- SE ---- Env Tree --
id
├── value #.
├── format #.
│ ├── name
│ └── version
└── hosts[]
hash
├── value
├── name
├── length
├── type
├── pieceLength
└── pieces[]
link
├── value
├── protocol
├── origin
├── host
├── pathname
├── search
├── port
└── originalProtocolKey
```
### Features
- identify web2 posts and web3 events
- convert web2 posts and web3 events to Spasm event
- create unique Spasm ID for single-signed and multi-signed events
- merge two Spasm events with the same Spasm ID
## Installation
```bash
npm install spasm.js
```
## Usage
#### CommonJS (require)
Option 1. Import separate functions:
```js
const {identifyObject} = require('spasm.js')
const {convertToSpasm} = require('spasm.js')
const {mergeSpasmEventsV2} = require('spasm.js')
const {mergeDifferentSpasmEventsV2} = require('spasm.js')
const event = {
// some event
}
// Identify the event
const info = identifyObject(event)
// Convert to Spasm
const spasmEvent = convertToSpasm(event)
// Merge events into one event
const spasmEvent = mergeSpasmEventsV2([\
event, eventWithStats, eventWithComments\
])
// Merge different events
const spasmEvents = mergeDifferentSpasmEventsV2([\
event, eventWithStats, eventWithComments,\
anotherEvent, anotherEventWithStats\
])
```
Option 2. Import all functions:
```js
const spasm = require('spasm.js')
const event = {
// some event
}
// Identify the event
const info = spasm.identifyObject(event)
// Convert to Spasm
const spasmEvent = spasm.convertToSpasm(event)
// Merge events into one event
const spasmEvent = spasm.mergeSpasmEventsV2([\
event, eventWithStats, eventWithComments\
])
// Merge different events
const spasmEvents = spasm.mergeDifferentSpasmEventsV2([\
event, eventWithStats, eventWithComments,\
anotherEvent, anotherEventWithStats\
])
```
#### ESM (import)
Option 1. Import separate functions:
```js
import {identifyObject} from 'spasm.js'
import {convertToSpasm} from 'spasm.js'
const event = {
// some event
}
// Identify the event
const info = identifyObject(event)
// Convert to Spasm
const spasmEvent = convertToSpasm(event)
```
Option 2. Import all functions:
```js
import * as spasm from 'spasm.js'
const event = {
// some event
}
// Identify the event
const info = spasm.identifyObject(event)
// Convert to Spasm
const spasmEvent = spasm.convertToSpasm(event)
```
## Utils
```js
// Get an array of all signers/pubkeys from the event
// (including signers which cannot be verified against signatures)
const signers = spasm.getAllSigners(event)
// Get an array of signers/pubkeys which have
// been verified against attached signatures
const verifiedSigners = spasm.getVerifiedSigners(event)
```
```js
// Get an array of signers/pubkeys which match values provided
// in the attached list (e.g., moderators, whitelisted, banned)
const moderators = spasm.getSignersListedIn(event, moderatorsList)
// alias
const banned = spasm.getPubkeysListedIn(event, bannedList)
```
```js
// Check if all signers/pubkeys match values provided
// in the attached list (e.g., moderators, whitelisted, banned)
const areModerators = spasm.areAllSignersListedIn(event, moderatorsList)
// alias
const areBanned = spasm.areAllPubkeysListedIn(event, bannedList)
```
```js
// Check if at least one signer/pubkey matches a value provided
// in the attached list (e.g., moderators, whitelisted, banned)
const isModerator = spasm.isAnySignerListedIn(event, moderatorsList)
// alias
const isBanned = spasm.isAnyPubkeyListedIn(event, bannedList)
```
```js
// Get an array of all event IDs
const ids = spasm.getAllEventIds(event)
// Get an array of all parent IDs
const parentIds = spasm.getAllParentIds(event)
// Get an array of all root IDs
const rootIds = spasm.getAllRootIds(event)
```
```js
// Get an array of all event signatures
const signatures = spasm.getAllSignatures(event)
```
```js
// Get a stat object of a specified action
const stats = spasm.getStatByAction(event, "react")
```
```js
// Get a total number of a specified action
const stats = spasm.getTotalOfAction(event, "reply")
```
```js
// Get a total number of a specified reaction
const stats = spasm.getTotalOfReaction(event, "upvote")
```
```js
// Get a total number of the most popular reaction
const stats = spasm.getTotalOfMostPopularReaction(event)
```
```js
// Get a total number of a react/reply action
const stats = spasm.getTotalOfReact(event)
const stats = spasm.getTotalOfReply(event)
// aliases
const stats = spasm.getTotalOfActionReact(event)
const stats = spasm.getTotalOfReactAction(event)
const stats = spasm.getTotalOfActionReply(event)
const stats = spasm.getTotalOfReplyAction(event)
```
```js
// Extract an ID from an event.
const nostrId = spasm.getIdByFormat(event, { name: "nostr-hex" })
const spasmId = spasm.getIdByFormat(event, {
name: "spasmid", version: "01"
})
// alias
const spasmId = spasm.extractIdByFormat(event, {
name: "spasmid"
})
// other aliases for extracting event, parent, and root IDs:
// extractSpasmId01()
// extractParentIdByFormat()
// extractParentSpasmId01()
// extractRootIdByFormat()
// extractRootSpasmId01()
// Note: the functions above don't calculate new IDs, but
// simply extracts an existing ID from an event object.
// If you want to calculate a Spasm ID (e.g., to verify it),
// then you must use another function, for example:
const spasmId = spasm.getSpasmId(event)
```
```js
const idFormatName = extractIdFormatNameFromSpasmEventIdV2(event)
const ifFormatNames = extractAllIdFormatNamesFromSpasmEventV2(event)
// aliases
const ifFormatNames = getAllFormatNamesFromSpasmEventV2(event)
const ifFormatNames = getAllFormatNamesFromEvent(event)
```
```js
const ifEventHasThisId = spasm.checkIfEventHasThisId(
event, "spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
)
```
```js
const event = spasm.getEventById(
[ event1, event2, event3 ],
"spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
)
```
```js
const events = spasm.getEventsByIds(
[ event1, event2, event3 ],
[\
"spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f",\
"db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651"\
]
)
```
```js
// Convert an event to SpasmEventV2 only if
// it's not SpasmEventV2 yet.
const spasmEventV2 = toBeSpasmEventV2(event)
// Note: you must use convertToSpasm() at least one time
// upon receiving an event, because by default it will
// verify all the signatures and sanitize nested strings.
// After that you can use toBeSpasmEventV2() in each
// function to minimize computational load.
```
```js
// Merge event children
const mergedChildren = mergedChildrenV2(children1, children2)
```
```js
// Add events (root, parent, children) to event's tree recursively
const eventWithTree = addEventsToTree(mainEvent, relatives)
// Attaching events as relatives to event's tree
const eventWithRoot = attachEventAsRoot(mainEvent, root)
const eventWithParent = attachEventAsParent(mainEvent, parent)
const eventWithChildren = attachEventAsChild(mainEvent, child)
```
```js
// Check if arrays have common IDs
const ifCommonId = ifArraysHaveCommonId(array1, array2)
// Example of finding whether events are relatives
// and then attaching event as a root
const event1RootIds = getAllRootIds(event1)
const event2Ids = getAllEventIds(event2)
if (ifArraysHaveCommonId(event1RootIds, event2Ids)) {
treeEventV2 = attachEventAsRoot(event1, event2)
}
```
```js
// Check if an array already has this event
checkIfArrayHasThisEvent(array, event)
// alias
checkIfArrayHasThisSpasmEventV2
// Insert or merge an event into array
insertIntoArrayIfEventIsUnique(array, event)
// alias (merge enabled by default)
appendToArrayIfEventIsUnique(array, event)
pushToArrayIfEventIsUnique(array, event)
// alias (merge enabled by default)
prependToArrayIfEventIsUnique(array, event)
unshiftToArrayIfEventIsUnique(array, event)
// Merge event into array (only if not unique)
mergeEventIntoArray(array, event)
```
## Examples
### Convert DmpEventSignedClosed to Spasm
Here is a signed DMP event:
```typescript
const event: DmpEventSignedClosed = {
signer: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",
signature: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",
signedString: "{\"version\":\"dmp_v0.0.1\",\"time\":\"2022-01-01T22:04:46.178Z\",\"action\":\"post\",\"target\":\"\",\"title\":\"genesis\",\"text\":\"not your keys, not your words\",\"license\":\"MIT\"}"
}
```
Here is the result of `identifyEvent(event)`
```typescript
const output = {
eventInfo: {
baseProtocol: "dmp",
hasExtraSpasmFields: false,
hasSignature: true,
isSpasmCompatible: true,
license: "MIT",
privateKeyType: "ethereum",
type: "DmpEventSignedClosed"
},
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web3"
}
```
Here is how the event looks like after converting to Spasm V2:
```typescript
const spasmEvent: SpasmEventV2 = {
type: "SpasmEventV2",
action: "post",
title: "genesis",
content: "not your keys, not your words",
timestamp: 1641074686178,
authors: [\
{\
addresses: [\
{\
value: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-pubkey", }\
}\
]\
}\
],
license: "MIT",
ids: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
format: { name: "ethereum-sig", }\
},\
],
signatures: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
pubkey: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-sig" }\
}\
],
siblings: [\
{\
type: "SiblingDmpSignedV2",\
protocol: {\
name: "dmp",\
version: "0.0.1"\
},\
signedString: JSON.stringify(validDmpEvent),\
ids: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
format: { name: "ethereum-sig" }\
},\
],\
signatures: [\
{\
value: "0xbd934a01dc3bd9bb183bda807d35e61accf7396c527b8a3d029c20c00b294cf029997be953772da32483b077eea856e6bafcae7a2aff95ae572af25dd3e204a71b",\
pubkey: "0xf8553015220a857eda377a1e903c9e5afb3ac2fa",\
format: { name: "ethereum-sig" }\
}\
]\
}\
]
}
```
### Convert NostrSpasmEventSignedOpened to Spasm
Here is a signed Nostr event with extra Spasm tags:
```typescript
export const event: NostrSpasmEventSignedOpened = {
kind: 1,
created_at: 1705462957,
tags:[\
["license","SPDX-License-Identifier: CC0-1.0"],\
["spasm_version","1.0.0"],\
["spasm_action","post"],\
["spasm_title","Nostr Spasm genesis"]\
],
content: "Walled gardens became prisons, and Spasm is the second step towards tearing down the prison walls.",
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",
id: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",
sig: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1"
}
```
Here is the result of `identifyEvent(event)`
```typescript
const output = {
eventInfo: {
baseProtocol: "nostr",
hasExtraSpasmFields: true,
hasSignature: true,
isSpasmCompatible: true,
license: "SPDX-License-Identifier: CC0-1.0",
privateKeyType: "nostr",
type: "NostrSpasmEventSignedOpened"
},
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web3"
}
```
Here is how the event looks like after converting to Spasm V2:
```typescript
const spasmEvent: SpasmEventV2 = {
type: "SpasmEventV2",
action: "post",
title: "Nostr Spasm genesis",
content: "Walled gardens became prisons, and Spasm is the second step towards tearing down the prison walls.",
timestamp: 1705462957,
authors: [\
{\
addresses: [\
{\
value: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-hex" }\
}\
]\
}\
],
license: "SPDX-License-Identifier: CC0-1.0",
ids: [\
{\
value: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",\
format: { name: "nostr-hex" }\
},\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
format: { name: "nostr-sig" }\
}\
],
signatures: [\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-sig" }\
}\
],
siblings: [\
{\
type: "SiblingNostrSpasmSignedV2",\
originalObject: validNostrSpasmEventSignedOpened,\
protocol: {\
name: "nostr",\
hasExtraSpasmFields: true,\
extraSpasmFieldsVersion: "1.0.0"\
},\
ids: [\
{\
value: "db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651",\
format: { name: "nostr-hex" }\
},\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
format: { name: "nostr-sig" }\
}\
],\
signatures: [\
{\
value: "db60516accfc025582bf556e3c7660c89e3982d2a656201aaea4189c6d3e3779b202c60302e55ad782ca711df20550384516abe4d7387470bc83ac757ed8f0f1",\
pubkey: "2d2d9f19a98e533c27500e5f056a2a56db8fe92393e7a2135db63ad300486f42",\
format: { name: "nostr-sig" }\
}\
]\
}\
]
}
```
### Convert RssItem to Spasm
Here is a Spasm event v0 with an RSS item:
```typescript
const event: SpasmEventV0 = {
id: 18081,
guid: " https://forum.degenrocket.space/?l=terraforming ",
source: "degenrocket.space",
author: "stablepony",
tickers: "cookies",
title: "To the Moon!",
url: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",
description: "Tornado is coming back! Roger that! Starting the engine...",
pubdate: "2024-03-12T20:24:04.240Z",
category: "defi",
tags: ["dark", "forest"],
upvote: 3,
downvote: null,
bullish: 2,
bearish: 0,
important: 6,
scam: 1,
comments_count: 0,
latest_action_added_time: null
}
```
Here is the result of `identifyEvent(event)`
```typescript
const output = {
eventInfo: false,
eventIsSealed: false,
eventIsSealedUnderKeyName: false,
webType: "web2"
}
```
Here is how the event looks like after converting to Spasm V2:
```typescript
const spasmEvent: SpasmEvent = {
type: "SpasmEventV2",
ids: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
format: { name: "url" }\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
format: { name: "guid" }\
}\
],
db: {
key: 18081
},
action: "post",
title: "To the Moon!",
content: "Tornado is coming back! Roger that! Starting the engine...",
timestamp: toBeTimestamp("2024-03-12T20:24:04.240Z"),
authors: [\
{\
usernames: [ { value: "stablepony" } ]\
}\
],
categories: [ { name: "defi" } ],
links: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
protocol: "https",\
origin: " https://forum.degenrocket.space ",\
host: "forum.degenrocket.space",\
pathname: "/",\
search: "?b=21&t=fog&c=samourai&h=hijack",\
originalProtocolKey: "url"\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
protocol: "https",\
origin: " https://forum.degenrocket.space ",\
host: "forum.degenrocket.space",\
pathname: "/",\
search: "?l=terraforming",\
originalProtocolKey: "guid"\
}\
],
keywords: [ "dark", "forest", "cookies" ],
source: {
name: "degenrocket.space"
},
siblings: [\
{\
type: "SiblingWeb2V2",\
protocol: { name: "web2" },\
originalObject: {\
id: 18081,\
guid: " https://forum.degenrocket.space/?l=terraforming ",\
source: "degenrocket.space",\
author: "stablepony",\
tickers: "cookies",\
title: "To the Moon!",\
url: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
description: "Tornado is coming back! Roger that! Starting the engine...",\
pubdate: "2024-03-12T20:24:04.240Z",\
category: "defi",\
tags: ["dark", "forest"],\
upvote: 3,\
downvote: null,\
bullish: 2,\
bearish: 0,\
important: 6,\
scam: 1,\
comments_count: 0,\
latest_action_added_time: null\
},\
ids: [\
{\
value: " https://forum.degenrocket.space/?b=21&t=fog&c=samourai&h=hijack ",\
format: { name: "url" }\
},\
{\
value: " https://forum.degenrocket.space/?l=terraforming ",\
format: { name: "guid" }\
}\
]\
}\
],
stats: [\
{\
action: "react",\
contents: [\
{\
value: "upvote",\
total: 3\
},\
{\
value: "bullish",\
... (truncated)
"""
""" https://forum.spasm.network
## https://forum.spasm.network
Feed
[Home]( https://forum.spasm.network/ )
[Publish]( https://forum.spasm.network/newpost )
[Contacts]( https://forum.spasm.network/contacts )
Connect
hot
rising
all
Category: any
general
announcements
privacy
memes
feedback
any
1d[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm.js v2.0.0 Release Candidate: Ready for Your Feedback]( https://forum.spasm.network/news/note1uxwvg35rgkppcj5flpk948wqr7qd06jhux7zrfvu53kjvruq079s7pz2dj )
2 1
19d[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm Report: July 2025]( https://forum.spasm.network/news/note1nvk82adjxyzxdjnjjre0gh35ecrmzexva5eqjmdqp8cw3fgvj5kseysq4l )
3
20d[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm on Virtuals]( https://forum.spasm.network/news/note193eee5mgzxsemm7064mcqajsxhnfr6nzdluhwv8tpahchc8uv47sjq2424 )
6 2 1 3
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Official Spasm forum is live]( https://forum.spasm.network/news/note1xzmu7zu9lqfywumnch57hpptwj8m6sttcea9ennhlyy838rrfg9qp2qsvl )
3 8
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Session vs SimpleX: fuck the fluff]( https://forum.spasm.network/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz )
2 5 6
1mo[degenrocket (Nostr)]( https://forum.spasm.network/authors/b3a706bcceb39f193da553ce76255dd6ba5b097001c8ef85ff1b92e994894c81 )
[Spasm playground - all nonsense welcome]( https://forum.spasm.network/news/note1y3thmts6ljnx92f4nsqvjzsn3umk9257y0lc3menaxtv3f4ppq8sttaly3 )
3
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm V2: decentralized social media for AI agents. AMA.]( https://forum.spasm.network/news/note1xcukq4nr00qx09jw5jrh4zqz5jn7t2wzkf0z7pta3t0yh29hj8qqnzmca3 )
3 5 9
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm V2: the future of social media is finally here]( https://forum.spasm.network/news/note1whtyfc6xcyntfurs6ndk395jr8vxxdp3aynmhatrp5gqpxpp0cyslk62ry )
3 2
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm admin dashboard released]( https://forum.spasm.network/news/note1ujr9cma0v7vz4ayl6px4apn87z74gn0cp0wvyvvha0hvgkm04mcsfqwvu6 )
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Multi-signing is live on Spasm]( https://forum.spasm.network/news/note10zg42vn7zm6zhspmhtvag2q0f23n38d8xt47gcf4sps0cnxj0p9qluefqn )
2
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm.js v2.0.0-beta released]( https://forum.spasm.network/news/spasmid0190860d28010e11ced0058 )
3
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Share your ideas for the Spasm name generator]( https://forum.spasm.network/news/spasmid01644fff601117f4d2d2120 )
3
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[ORC-69 The Session X Coin (SEX)]( https://forum.spasm.network/news/spasmid0134097ef2a925d407c04fe )
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[DegenRocket-web v1.0.0 released]( https://forum.spasm.network/news/spasmid0119ec684f84f76050f83e3 )
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Universal messaging format for web3 communication tools]( https://forum.spasm.network/news/spasmid010297cc5339875189d61bf )
1
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[The first DeFi/NFT-focused instance of the Degen Messaging Network is live]( https://forum.spasm.network/news/spasmid0167c4cd15bb703634b7625 )
1
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[genesis]( https://forum.spasm.network/news/spasmid01192d1f9994bf436f50841 )
5 2 8
Loading...
Loading... Load more
Show feed
Spasmforum
The future of social media is here.
[Enter the future]( https://slides.spasm.network/ )
\- Connect a browser extension (MetaMask, Rabby, nos2x, Flamingo) or log in as a guest.
\- Sign all comments and reactions with your Ethereum or Nostr private keys.
\- Never sign any messages that you don't understand.
\- This forum is part of the [Spasm]( https://spasm.network/ ) network.
SHOW FEED
Latest comments:
show details
[FreeSolarBurner (0x82c7...88d6)]( https://forum.spasm.network/authors/0x82c7423be7f4d55830af4fd4460a0619981a88d6 )[Open on external website]( https://etherscan.io/address/0x82c7423be7f4d55830af4fd4460a0619981a88d6 "Open on external website") [(Sun Aug 03 2025)]( https://forum.spasm.network/news/spasmid0117f9241e288cf0f3ad390 )
There are launchpads that allow launching tokens directly on Ethereum.
1
reply
[QuantumSolarPunk (0x9a92...504a)]( https://forum.spasm.network/authors/0x9a927b23b18542492d73e37248542131a7c1504a )[Open on external website]( https://etherscan.io/address/0x9a927b23b18542492d73e37248542131a7c1504a "Open on external website") [(Sat Aug 02 2025)]( https://forum.spasm.network/news/spasmid01aff76c7f1ccd7c6c65b77 )
Any token launched on Base or Solana can be bridged to Ethereum
[1]( https://forum.spasm.network/news/?p=0xfb8e7c0d07034c0c6c9e0b277b11e47e45382873b19c48209b30545c196386da0253038d658b8f314bb679b6713b7431d9e88ec8f65836d96a7c36c5958104c01b )
reply
[EncodedDefiRebel (0x7b2e...94a7)]( https://forum.spasm.network/authors/0x7b2e4f94ff5fcf5ec1f5192ce62a934b580b94a7 )[Open on external website]( https://etherscan.io/address/0x7b2e4f94ff5fcf5ec1f5192ce62a934b580b94a7 "Open on external website") [(Fri Aug 01 2025)]( https://forum.spasm.network/news/spasmid015b2fc954b53a007831b5a )
It was probably a special offer because if you click 'create agent', you will only see two options, Base or Solana.
[1]( https://forum.spasm.network/news/?p=0x22232dcad21cffeea2ce33e48d9ffbdb6e14c9e1587b988891be0fcc2924d3b52e6b6d4d6b35169ee5b35e56c0f2e83f82a86ab57b1a40bca064537b051e75ac1c )
reply
[GreenHashCyborg (0x6c66...6006)]( https://forum.spasm.network/authors/0x6c66d5d8b42618ab44565c24854b50ffbad06006 )[Open on external website]( https://etherscan.io/address/0x6c66d5d8b42618ab44565c24854b50ffbad06006 "Open on external website") [(Fri Aug 01 2025)]( https://forum.spasm.network/news/spasmid01f80f8bdc1ba50e3361dc0 )
STRATOS and IRIS launched on the Ethereum mainnet in June. IRIS FDV is $63M, the highest FDV of all genesis projects on Virtuals. [ https://app.virtuals.io/virtuals/29015 ]( https://app.virtuals.io/virtuals/29015 )
[1]( https://forum.spasm.network/news/?p=0xdb2841666cf0fe5ae77dd7c8018c3b4f8eaf574c0efc6de7c5c6f830c0411adf006c4dde4247bb4f07ca51ee5c7d6eefc8c27412c9ed9983c58359ee6aa87b791c )
reply
[FluffyCultHodler (0x8bd4...2ce0)]( https://forum.spasm.network/authors/0x8bd4311b2d454d7b2a6145f53b7bf8998ba72ce0 )[Open on external website]( https://etherscan.io/address/0x8bd4311b2d454d7b2a6145f53b7bf8998ba72ce0 "Open on external website") [(Fri Aug 01 2025)]( https://forum.spasm.network/news/spasmid01ad2f5e5a9f2581ad04d9e )
Virtuals only supports Base and Solana at the moment
[1]( https://forum.spasm.network/news/?p=0xe7fe9c13f2e9c868143c65e4b58ee8315557ebd2102dc5543f3728ec9fad04695a0507bc41e4f0f8de1e5e65c95753c065e4ea2a5ca54f08a5594acb9fbe397d1c )
reply
[QuantumCultRebel (0xe2cd...334c)]( https://forum.spasm.network/authors/0xe2cdecada7604f13fb0fe26be9e7b1632201334c )[Open on external website]( https://etherscan.io/address/0xe2cdecada7604f13fb0fe26be9e7b1632201334c "Open on external website") [(Fri Aug 01 2025)]( https://forum.spasm.network/news/spasmid0129cb381e9fba1ad7b57c7 )
Launching a token might be useful, but you'll have to think about how that token will be used in the network.
1
reply
[OrangeFossHodler (0x2f1b...2b61)]( https://forum.spasm.network/authors/0x2f1bab94fe3b39d265479c8341ef6086aed52b61 )[Open on external website]( https://etherscan.io/address/0x2f1bab94fe3b39d265479c8341ef6086aed52b61 "Open on external website") [(Fri Aug 01 2025)]( https://forum.spasm.network/news/spasmid014f2fa2c47c68102cec7bb )
Fuck VCs, Virtuals LGTM!
1
reply
[BlueHashRebel (0x740f...ba7b)]( https://forum.spasm.network/authors/0x740fbda0549a1cb0e9da64f823a000900fecba7b )[Open on external website]( https://etherscan.io/address/0x740fbda0549a1cb0e9da64f823a000900fecba7b "Open on external website") [(Mon May 12 2025)]( https://forum.spasm.network/news/spasmid01d671786849bf5f0fe72fe )
Both options are valid.
reply
[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Mon Feb 03 2025)]( https://forum.spasm.network/news/note134z0j9pkxw0y35gelhmgr92fewa66desg29slz50auk3e5da2qeqveyc57 )
> Why without funding?
Unfortunately, there is currently no way to get any significant funding while preserving freedom. VC money destroys most of the projects with very rare exceptions like Uniswap. Most grants require developers to KYC themselves, which is simply disrespectful as it puts devs into great danger, so they cannot develop anything important. Donations can rarely provide enough funds for new projects.
> Have you tried gitcoin?
Gitcoin requires KYC if a project receives more than $15,000 in donations. Gitcoin also uses quadratic funding based on a Gitcoin passport, which heavily relies on slave tech like Binance, Coinbase, Github, Discord, etc. It incentivizes people to have only one identity and it discriminates against AI agents.
Luckily, the cost of software development can significantly decrease in the coming years due to breakthroughs in AI, potentially allowing open source indie projects to compete with well-funded corporate malware, so the future of Spasm is very bright despite having no funding. Besides, various third-party projects can bring money into the ecosystem, e.g., DarkVegas has recently airdropped its token to Spasm users. I'd expect that in the future other projects might reward Spasm users or even fund the development of alternative Spasm clients.
Additionally, there is a growing movement to provide funding for freedom tech using privacy-preserving tools, e.g., LunarDAO and the whole DarkFi ecosystem.
reply
[GrayMeshKeeper (0x95bf...cb23)]( https://forum.spasm.network/authors/0x95bf2cfeb79bb4e94f5508fa09685d008c39cb23 )[Open on external website]( https://etherscan.io/address/0x95bf2cfeb79bb4e94f5508fa09685d008c39cb23 "Open on external website") [(Sat May 10 2025)]( https://forum.spasm.network/news/spasmid01ae8e6fd555269677bb484 )
If you have a native Nostr app installed, then clicking the button should open an event in that app. Alternatively, you can copy Nostr ID (note1...) into your Nostr app.
reply
[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Tue Jan 28 2025)]( https://forum.spasm.network/news/note1e0vcsr6jznacpndvrtrx6dpkjyrlwv0264sllh050v40hssjv2zsqqvssp )
> Can I see Nostr replies here?
It depends on your definition of "Nostr replies". Nostr is not one monolithic thing like Twitter or Telegram. Nostr is at least three different things: Nostr private key, Nostr messaging protocol, and Nostr network.
We got used to thinking about each social media solution as one monolithic thing due to decades of influence by traditional VC-backed platforms that try to register a trademark, expand fast, compete with other platforms, and keep users inside their closed ecosystems to monetize them. In reality, good decentralized social media solutions are modular.
So yes, you can see all Nostr-signed messages that were submitted to the same Spasm instance. However, you cannot see Nostr-signed messages that were submitted to the Nostr network only. That feature will be added a bit later. You can already see messages from both Spasm and Nostr networks on the author page of any up-to-date Spasm instance, e.g.:
[ https://monero.top/authors/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z ]( https://monero.top/authors/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z )
reply
[FluffyZkKitty (0xd7ca...6fb1)]( https://forum.spasm.network/authors/0xd7ca536adfd733b8a648c8f8f016eb5d66156fb1 )[Open on external website]( https://etherscan.io/address/0xd7ca536adfd733b8a648c8f8f016eb5d66156fb1 "Open on external website") [(Tue Jan 28 2025)]( https://forum.spasm.network/news/spasmid01dc311cb4b6a4f536878e0 )
Why is my username FluffyZkKitty lol. Can I change it?
reply
[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Tue Jan 28 2025)]( https://forum.spasm.network/news/note1shvgzsha7ul356yrg8t5wz48049mgknjc5cw3pplkf8p7pfrrplqdvfmdv )
> Why is my username FluffyZkKitty lol. Can I change it?
It's an auto-generated name for better UX on Spasm instances. You got a good one lol. "Fluffy" is inspired by Monero dev Ricardo Spagni known as Fluffypony, "ZK" stands for zero-knowledge, and "kitty" is a tribute to the CryptoKitties NFT game of 2017.
You can choose your own non-unique name if you use Nostr keys, or get a unique username via blockchain-based naming services like ENS if you use Ethereum keys.
reply
[FluffyZkKitty (0xd7ca...6fb1)]( https://forum.spasm.network/authors/0xd7ca536adfd733b8a648c8f8f016eb5d66156fb1 )[Open on external website]( https://etherscan.io/address/0xd7ca536adfd733b8a648c8f8f016eb5d66156fb1 "Open on external website") [(Tue Jan 28 2025)]( https://forum.spasm.network/news/spasmid01041c61df10952a887665d )
Can I see Nostr replies here?
[1]( https://forum.spasm.network/news/?p=0x5cfe0d8bf7a37f82421b809b624183d0bc395306fb2478f4c9242478b5de46d97df7c7ca06fe9bce360e062bcd16b75565c74c864f6aedb2d374fef4f958291c1b )
reply
[BanklessZkTester (0x5bc8...6f31)]( https://forum.spasm.network/authors/0x5bc8c723201164f0459cca730074e7a93b866f31 )[Open on external website]( https://etherscan.io/address/0x5bc8c723201164f0459cca730074e7a93b866f31 "Open on external website") [(Tue Jan 28 2025)]( https://forum.spasm.network/news/spasmid01d056bc1921c15a75603fa )
Why without funding? Have you tried gitcoin?
[1]( https://forum.spasm.network/news/?p=0x430c0283e87da4dfde0cf6122a0c4087c897237ce1f16d3e646138cece8a012d1beb7c9c334c419b59211076e35dc3fa298f4ea2c9cb2dc1789b6d6601f2c64f1b )
reply
## https://forum.spasm.network/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz
Feed
[Home]( https://forum.spasm.network/ )
[Publish]( https://forum.spasm.network/newpost )
[Contacts]( https://forum.spasm.network/contacts )
Connect
hot
rising
all
Category: any
general
announcements
privacy
memes
feedback
any
1d[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm.js v2.0.0 Release Candidate: Ready for Your Feedback]( https://forum.spasm.network/news/note1uxwvg35rgkppcj5flpk948wqr7qd06jhux7zrfvu53kjvruq079s7pz2dj )
2 1
19d[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm Report: July 2025]( https://forum.spasm.network/news/note1nvk82adjxyzxdjnjjre0gh35ecrmzexva5eqjmdqp8cw3fgvj5kseysq4l )
3
20d[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm on Virtuals]( https://forum.spasm.network/news/note193eee5mgzxsemm7064mcqajsxhnfr6nzdluhwv8tpahchc8uv47sjq2424 )
6 2 1 3
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Official Spasm forum is live]( https://forum.spasm.network/news/note1xzmu7zu9lqfywumnch57hpptwj8m6sttcea9ennhlyy838rrfg9qp2qsvl )
3 8
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Session vs SimpleX: fuck the fluff]( https://forum.spasm.network/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz )
2 5 6
1mo[degenrocket (Nostr)]( https://forum.spasm.network/authors/b3a706bcceb39f193da553ce76255dd6ba5b097001c8ef85ff1b92e994894c81 )
[Spasm playground - all nonsense welcome]( https://forum.spasm.network/news/note1y3thmts6ljnx92f4nsqvjzsn3umk9257y0lc3menaxtv3f4ppq8sttaly3 )
3
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm V2: decentralized social media for AI agents. AMA.]( https://forum.spasm.network/news/note1xcukq4nr00qx09jw5jrh4zqz5jn7t2wzkf0z7pta3t0yh29hj8qqnzmca3 )
3 5 9
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm V2: the future of social media is finally here]( https://forum.spasm.network/news/note1whtyfc6xcyntfurs6ndk395jr8vxxdp3aynmhatrp5gqpxpp0cyslk62ry )
3 2
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm admin dashboard released]( https://forum.spasm.network/news/note1ujr9cma0v7vz4ayl6px4apn87z74gn0cp0wvyvvha0hvgkm04mcsfqwvu6 )
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Multi-signing is live on Spasm]( https://forum.spasm.network/news/note10zg42vn7zm6zhspmhtvag2q0f23n38d8xt47gcf4sps0cnxj0p9qluefqn )
2
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm.js v2.0.0-beta released]( https://forum.spasm.network/news/spasmid0190860d28010e11ced0058 )
3
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Share your ideas for the Spasm name generator]( https://forum.spasm.network/news/spasmid01644fff601117f4d2d2120 )
3
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[ORC-69 The Session X Coin (SEX)]( https://forum.spasm.network/news/spasmid0134097ef2a925d407c04fe )
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[DegenRocket-web v1.0.0 released]( https://forum.spasm.network/news/spasmid0119ec684f84f76050f83e3 )
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Universal messaging format for web3 communication tools]( https://forum.spasm.network/news/spasmid010297cc5339875189d61bf )
1
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[The first DeFi/NFT-focused instance of the Degen Messaging Network is live]( https://forum.spasm.network/news/spasmid0167c4cd15bb703634b7625 )
1
1mo[BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[genesis]( https://forum.spasm.network/news/spasmid01192d1f9994bf436f50841 )
5 2 8
Loading...
Loading... Load more
Show feed
Session vs SimpleX: fuck the fluff
Category: privacy
Added time: Mon Jul 14 2025
Signed time: Sat Mar 15 2025
Link: [long]( https://forum.spasm.network/news/spasmid010a70651fc27fb9125f7ea9f945d6add3530af91c829cdc414bcd5dda080f3020 ) / [short]( https://forum.spasm.network/news/spasmid010a70651fc27fb9125f7ea )
Author: [BlackSpaceDev (0xf855...c2fa)]( https://forum.spasm.network/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa ) Follow [Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website")
Author: [degenrocket (Nostr)]( https://forum.spasm.network/authors/b3a706bcceb39f193da553ce76255dd6ba5b097001c8ef85ff1b92e994894c81 ) Follow [Open on external website]( https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z "Open on external website")
Being a long-time user of Session and SimpleX, I never had a chance to write down a proper review of both architectures, despite being asked to do so. Well, the time has come.
This multi-signed message will be pushed to Spasm and Nostr networks, so you can reply with Ethereum and Nostr private keys. I haven't added editing to Spasm yet and Nostr notes cannot be edited by design, so any edit/update will be added as a comment to this post.
I've just finished watching an interesting interview with Session CTO KeeJef hosted by ShadowRebel from SimplifiedPrivacy. I'd highly recommend to check it out if you can handle very poor audio quality and disrupting video. It's still not a proper Session vs SimpleX debate, but ShadowRebel did a pretty good job asking many important questions about Session's architecture, unlike many other privacy soy boys.
[ https://simplifiedprivacy.com/interview-session-messenger/keejef-vs-simplex.html ]( https://simplifiedprivacy.com/interview-session-messenger/keejef-vs-simplex.html )
I've also recently approached many famous privacy influencers trying to onboard them to Spasm and I've been surprised by a few things:
- the majority of them have not yet transitioned to web3,
- literally nobody lists Session in the contacts section,
- many have started using SimpleX.
I'll keep my disappointment about the lack of web3 adoption among privacy people for another rant, but I'd like to address Session vs SimpleX situation. Generally, I felt great that I can finally chat with many of them via SimpleX because I haven't used Matrix or Signal due to privacy concerns.
However, after talking with a few tech-savvy people about SimpleX and Session, I quickly realized that most of them don't understand architectures of these two different solutions, but they usually have a strong opinion that Session is garbage, while SimpleX is private, decentralized, has no IDs, hides metadata, etc.
Basically, a typical bitcoin maxi mindset that now expanded to SimpleX, forming a BLNS (Bitcoin LN Nostr SimpleX) tech cult with people like Jack Dorsey backing all of them.
Since I'm not a cryptographer, in this post we will focus on architectures and PR strategies of these two different messaging apps, assuming that neither of them is a backdoored honeypot.
## Session
Let's start with Session, focusing on PFS, usernames, metadata, and decentralization.
### PFS
One of the major well-known Session drawbacks is lack of perfect-forward secrecy (PFS), which was disabled because users were falling out of sync due to complexity of multi-device syncing in a decentralized system. KeeJef argues that it's not a big deal since scrapping encrypted messages from the network is very difficult, so the most realistic attack vector here requires a full access to a device, which is game over regardless whether PFS is enabled or not.
His argument makes sense only if the network is indeed sufficiently decentralized. According to KeeJef, there are currently around 320 Session swarms, but we don't know how many of them are controlled by an adversary. Additionally, all databases leak at some point, so an adversary can collect that data through other means and decrypt it later after obtaining user's encryption keys in accordance with the "harvest now, decrypt later" strategy.
Session swarms are not required to store messages beyond a certain amount of time, but we cannot enforce deletion of these messages and there were multiple reports about receiving very old messages after restoring accounts via seed phrases despite enabling disappearing messages.
Basically, he is clearly downplaying absence of forward secrecy.
Besides, critics argue that PFS can be enabled even with Session's design.
[ https://soatok.blog/2025/01/20/session-round-2/ ]( https://soatok.blog/2025/01/20/session-round-2/ )
### Usernames
During the interview, ShadowRebel has pointed out one of the most undervalued features of the Session architecture, which is an ability to have uncensorable communication channels with your audience by utilizing usernames (ONS).
Let me explain for people who don't use Session. You can buy a username like `degenrocket` with your Oxen private key and assign it to your Session ID so people can find you by simply typing `degenrocket` into the app.
This setup is very different from most other blockchain-based naming systems like Ethereum Name Service (ENS) because if an adversary gets access to your Ethereum private key, he can steal all your NFTs, including ENS usernames. That won't work with Session's ONS because you'll be able to re-assign your username to a different Session ID with your Oxen private key, assuming that the latter didn't leak.
For example, SimplifiedPrivacy created a Session bot which mimics functionality of Telegram channels. You can try it out by sending a message to `simple`. If an adversary will get access to a server from which the bot operates, SimplifiedPrivacy will redeploy the bot to a new server and re-assign the username to a new Session ID.
There is no other ecosystem that provides similar functionality. Yeah, you can create an onion site, but if your server is seized or your hidden service private key is compromised, you will have to generate another onion address and relay that information to users.
However, Oxen Name System (ONS) will soon transition to Arbitrum-based Session Name System (SNS) and it seems like Session CTO himself doesn't fully know what exactly gonna happen with old ONS usernames.
### Metadata
Session's metadata protection involves built-in onion routing within its network, which requires time-locking OXEN coins to run a service node.
In theory, that should significantly increase costs of attacking the network by running many nodes and correlating traffic. However, with OXEN sitting at just $6 million market cap the cost of such an attack is not very high for a well-funded adversary. Besides, OXEN doesn't have any liquidity because it has been delisted from all centralized exchanges, so buying OXEN tokens for such an attack will be done OTC, which won't significantly increase the price of a token.
That said, Session has been transitioning to a transparent Ethereum-based ERC-20 token called SESH for over 1.5 years, so the economics of Session might change very soon.
[ https://getsession.org/blog/upgrading-to-session-network ]( https://getsession.org/blog/upgrading-to-session-network )
It's also worth mentioning that onion routing only hides some metadata like ID addresses and internet speed/ping, but it doesn't protect from other metadata analyses like correlations based on timestamps. To fight time-based analysis you have to introduce random and large delays on the app level and use mixnets like Nym.
### Decentralization
Session node operators are incentivized with tokens for running infrastructure, which increases decentralization, but the team failed to create strong demand for OXEN coin and it's unclear whether they will be able to increase buying pressure for the new SESH token.
And there are a few centralization issues that haven't been solved yet.
- Unlike text messages, files are currently sent via a centralized server. Although, each file is still encrypted and 3-hop onion routing still applies. There are plans to add an ability to specify a custom file server in the future.
- The app uses centralized seed nodes to discover other nodes upon the first start up, which is a common problem of most decentralized networks. There are plans to hardcode a list of decentralized nodes into each app release to partially mitigate that issue, but this approach has its own downsides like making it easier for censors to block IP addresses of these nodes.
- Public chats with over 100 members (SOGS) are hosted on centralized servers, which can be seized.
Unfortunately, ShadowRebel didn't ask KeeJef about all the drama with the transition to SESH and how the Session team treated its community, but I'd assume that there were time constrains.
## SimpleX
Now let's look at SimpleX since it was mentioned multiple times during the interview and SimpleX's CEO Evgeny Poberezkin likes to criticize Session in his interviews/articles without providing much details.
Note that SimpleX Chat is built on top of the SimpleX platform/network, but I'll refer to it as "SimpleX" for simplicity.
By the way, this post will have a lot of criticism of SimpleX, so if you think that I'm a Session shill, then be sure that I also criticize many things that they do and I even proposed a community fork back in 2023 after they decided to ditch its privacy coin in favor of ERC-20 token despite backlash from the community.
[ https://github.com/oxen-io/oxen-improvement-proposals/issues/38 ]( https://github.com/oxen-io/oxen-improvement-proposals/issues/38 )
In fact, I use both Session and SimpleX for different purposes because I understand limitations of each solution.
So, my biggest issue with SimpleX is not even its architecture, but rather constant manipulation that creates a false impression about the amount of privacy it actually provides. Let's look at a few examples.
### IDs
> SimpleX - the first messaging platform that has no user identifiers of any kind - 100% private by design!
> Other apps have user IDs: Signal, Matrix, Session, Briar, Jami, Cwtch, etc. SimpleX does not, not even random numbers.
SimpleX claims that there are no IDs and that SimpleX servers know nothing about their users. SimpleX's CEO repeats that in every interview hosted by various "privacy" youtubers like WatchmanPrivacy, who always give him softball questions, one after another, which eventually misleads users into believing in some quantum magic.
In reality, there is a message queue identifier (ID) for each contact/chat, which can be used instead of an account ID to correlate metadata and spy on users.
Occasionally rotating these IDs doesn't do much since they can be correlated as well, especially in the age of AI-powered analytics. I'd imagine that rotating the queue ID after every message would be interesting, but that would probably require a centralized infrastructure to make sure that users don't fall out of sync as it was happening with Session users before they disabled PFS.
Here is a direct quote from SimpleX blog:
> To deliver mesages, instead of user IDs used by all other platforms, SimpleX has identifiers for message queues, separate for each of your contacts.
These message queue IDs can be clustered together into user's connection graph with very high probability through AI-powered metadata analysis and assigned an account ID similar to the concept of shadow accounts on Facebook. There might be different methods to do that, but the most simple one is to cluster request batches. That can be combined with traditional traffic analysis attacks to deanonymize users and their contacts.
Let's dumb it down. The whole idea of using pairwise per-queue identifiers and pairwise pseudonymous identifiers (PPIDs) in general is to prevent an adversary from correlating them by simply comparing these IDs. However, an adversary can easily correlate them using other methods through metadata analysis. For example, any simple analytics tool will be able to cluster together different PPIDs coming from the same IP address around the same time.
> With SimpleX there is no meta-data in common between your conversations with different contacts - the quality that no other messaging platform has.
That is simply not true. For example, when you go online your SimpleX app will check for new messages from different contacts by sending multiple requests with IDs (PPIDs) of different message queues to a server. These requests will share the same metadata like IP address and timestamp, which is enough to cluster them together. Repeat that a few times throughout the day and that would be enough for an adversary to send a drone your way, especially if you don't use Tor to mask your real IP address.
In fact, that probabilistic guess can even be used in courts in many hostile jurisdictions. For example, check out Bitcoin Fog case where Chainalysis used its black box clustering methodology that hasn't even been properly peer-reviewed and the judge stated that it was "sufficiently reliable" because "90 percent" or "80 percent" probability is good enough. Roman Sterlingov was sentenced to 12.5 years. #FreeRoman
[ https://www.therage.co/bitcoin-fog-sentencing/ ]( https://www.therage.co/bitcoin-fog-sentencing/ )
There are some mitigation strategies that include frequent rotation of these IDs, data poisoning via random requests to unused old message queues, de-syncing of requests with random and large delays or even disabling auto-updates, using different receiving servers for each chat, and using stream isolation to assign a different Tor exit node for each chat, but all of them won't provide a bulletproof protection against sophisticated analytics tools and they will significantly reduce UX, meaning that these features will be strictly opt-in and won't be used by regular users.
And I didn't even mention that a server can log estimated internet speed and ping of each request sender, especially when there are many messages in a queue.
Lastly, the most important part of these mitigation strategies is that they have to be actually implemented before we can say that SimpleX is "100% private by design".
But what about the audit conducted by Trail of Bits?
[ https://github.com/simplex-chat/simplex-chat/blob/stable/docs/SimpleX \_Design\_Review\_2024\_Summary\_Report\_12\_08\_2024.pdf]( https://github.com/simplex-chat/simplex-chat/blob/stable/docs/SimpleX_Design_Review_2024_Summary_Report_12_08_2024.pdf )
They pointed out a few correlation attacks related to a transport layer, but they completely ignored correlation attacks based on collected metadata by SimpleX servers. I wouldn't suggest any conspiracy, so I'd assume that it was outside the scope of the audit, which itself is very surprising and should raise a few eyebrows.
Actually, if you are a journalist or a podcaster reading this, then you should definitely ask Evgevy why did the audit completely ignore all deanonymization attacks performed by SimpleX servers. I'm sure that Trail of Bits has enough expertise and resources to find much more vulnerabilities and attack vectors there than I can.
I'd also suggest to conduct additional audits, including by non-US-based companies.
But wait... didn't SimpleX implement a robust metadata protection in June 2024, prior to the audit?
[ https://simplex.chat/blog/20240604-simplex-chat-v5.8-private-message-routing-chat-themes.html ]( https://simplex.chat/blog/20240604-simplex-chat-v5.8-private-message-routing-chat-themes.html )
Well, let's take a look at it.
### Metadata
> Private message routing is, effectively, a 2-hop onion routing protocol inspired by Tor design, but with one important difference - the first (forwarding) relay is always chosen by message sender and the second (destination) - by the message recipient. In this way, neither side of the conversation can observe IP address or transport session of another.
I'd highly recommend to read this post because the level of manipulation there is truly astonishing.
This is not a metadata protection. This does not protect users from metadata collection by SimpleX servers. However, SimpleX mentions it in many articles, FAQ, and it's being repeated by many SimpleX fans. I'd emphasize again that the majority of SimpleX users use default servers and this "private message routing" does nothing to protect their metadata from server operators. Moreover, the article was published long before Flux integration (more on that later).
It's literally the most basic expectation in any other non-p2p messaging app that a person you're chatting with can't see your ID address. However, that's not the case with SimpleX because an adversary can easily collect your IP address in any private or public chat.
The "private message routing" is simply a fix to an obvious design flaw that doesn't even exist in any other non-p2p messaging app. In other words, this attack vector existed only in SimpleX due to its unique architecture, the team eventually tried to patch it with a questionable solution, and then presented it almost as a bulletproof metadata protection.
Wait... can we then say that all other messaging apps also have metadata protection since they never had that vulnerability to begin with?
You can argue that the SimpleX team doesn't officially call it a full "metadata protection" and you'll be right, but they are using it in exactly that context and they are very well aware that most SimpleX fans think that SimpleX has metadata protection.
[ https://simplex.chat/faq/index.html#does-simplex-protect-my-ip-address ]( https://simplex.chat/faq/index.html#does-simplex-protect-my-ip-address )
> Does SimpleX protect my IP address?
>
> Yes! SimpleX Chat from version 6.0 uses private message routing whenever you send messages to unknown servers (all servers in app network settings, both enabled and not, are considered "known").
Here is another example that presents "private message routing" as a much better alternative to onion routing in Tor and Session.
> SimpleX network has private message routing (2-hop onion routing) — it prevents server operators from discovering who connects to whom via network traffic metadata. Onion routing used in Tor-based messengers and in Session also hides it. But because neither Tor nor Session users have knowledge about who operates servers, in some cases the clients may connect via the servers controlled by one entity, that may learn the IP addresses of both parties.
Technically, it's absolutely true that a well-funded adversary can run many Tor or Session nodes to correlate the traffic, especially since running Tor nodes doesn't require staking any tokens and market cap of Session's OXEN token is much lower than market cap of any third-tier memecoin like HarryPotterObamaSonic10Inu(ETH).
However, it's kinda funny to hear that from SimpleX, which itself relies on a heavily centralized network without any real metadata protection. Note how they mention "private message routing" in the same paragraph, which intentionally misleads readers into thinking that this "2-hop onion routing" somehow protects users from metadata collection by SimpleX servers and completely replaces the need for a proper decentralized network.
Let's dumb it down.
- The purpose of 3-hop onion routing in Tor and Oxen/Session networks is to hide your IP address from a server when both fetching or sending new messages.
- In SimpleX's current design even with "private message routing" enabled you fetch messages directly from a server, so it can log your IP address and potentially other metadata, such as approximate internet speed and ping.
Basically, comparing apples to oranges is very misleading.
> Private message routing is, effectively, a two-hop onion packet routing.
No, it's not.
Misrepresenting a one-hop onion routing as a two-hop onion routing is another deliberate manipulation.
Common practice is to count the amount of hops (relays) between a user and a destination server. Thus, SimpleX has only one hop of onion routing, not two. If you really insist on calling SimpleX's routing a "2-hop onion routing", then you should also call Tor's and Session's routing a "4-hop onion routing".
In other words, it's either 1 vs 3 hops or 2 vs 4 hops. In any case, SimpleX has two hops less.
Now if we count the amount of hops between two users, the difference becomes even larger.
`SimpleX: Alice - 1 relay - server - Bob`
`Session: Alice - 3 relays - swarm - 3 relays - Bob`
Depending on your counting method, it's either 1 vs 6 hops or 2 vs 7 hops. Basically, five hops less.
[ https://docs.oxen.io/oxen-docs/products-built-on-oxen/session/message-routing ]( https://docs.oxen.io/oxen-docs/products-built-on-oxen/session/message-routing )
However, SimpleX thinks that their routing is better at preventing server operators from discovering who connects to whom.
> SimpleX network has private message routing (2-hop onion routing) — it prevents server operators from discovering who connects to whom via network traffic metadata.
That said, SimpleX has an interesting implementation of this private message routing, so it would be great to have an independent audit of the feature. And I'm curious why this feature wasn't included in the Trail of Bits audit since it was released before the audit and SimpleX seems to have enough funding.
[ https://simplex.chat/faq/index.html#doesnt-private-message-routing-reinvent-tor ]( https://simplex.chat/faq/index.html#doesnt-private-message-routing-reinvent-tor )
...
It's also important to note that this "private message routing" is enabled by default even though it has serious drawbacks in certain scenarios. For example, you want to send your tech-savvy friend a message via SimpleX. Without this "private message routing" you will send a message directly to a receiving server of your friend. However, since "private message routing" is enabled by default, you introduce a third party that can collect your metadata and discover the IP address of your friend's server.
That said, I'd like to mention that SimpleX's design has its use-cases because a tech-savvy user can choose his own server, which is not the case with Session. I have a friend who prefers SimpleX over Session because he runs his own SimpleX server, but that has certain trade-offs. For example, everybody can see his custom receiving server address, so he cannot have different identities in different private and public chats.
Essentially, SimpleX's dilemma can be roughly summed up in a single sentence: you're forced to choose between relying on someone else's servers and trusting they won't compromise your privacy, or running your own server, which limits you to a single identity since your server's address becomes synonymous with your identity.
I'm literally having flashbacks into LN debates right now.
### Decentralization
OK, this manipulation is really funny. In the following article SimpleX proudly marks itself as the only "fully decentralized" messaging app after adding just one alternative opt-in centralized server operator controlled by one company as a proof-of-concept test flight. I kid you not. Literally! You can read the article from November 2024 and then go listen to Evgeny's OptOut interview two months later starting from 13:30, it's hilarious.
[ https://simplex.chat/blog/20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.html ]( https://simplex.chat/blog/20241125-servers-operated-by-flux-true-privacy-and-decentralization-for-all-users.html )
[ https://optoutpod.com/episodes/improving-simplex/ ]( https://optoutpod.com/episodes/improving-simplex/ )
I want to clarify that there is nothing wrong with testing centralized services, but may be it's a bit too early to call yourself an only "fully decentralized" messaging app yet.
### KYCed operators
Interestingly, in the same post SimpleX advocates for the use of fully compliant infrastructure.
> You may argue that when the operators are known, the servers data can be requested by the authorities. But such requests, in particular when multiple operators are used by all users, will follow a due legal process, and will not result in compromising the privacy of all users.
Let me translate that into English: your privacy will be compromised only if you talk about something actually important.
When did cypherpunks become obedient slaves? What's next? Adding KYCed payment methods? TBH, I wouldn't be even surprised since that would be fully aligned with bitcoin maxi's journey from "not your keys, not your coins" to zapping on Damus.
It's important to mention here that while the Session network is very different because most node operators are not known to the public, both SimpleX and Session teams are very similar when it comes to compliance because they are fully doxxed and based in very hostile jurisdictions. In fact, Session is rapidly moving towards even more compliance with its transparent SESH token and freemium model with KYCed payment methods through centralized app stores.
Unfortunately, the vast majority of projects have already compromised on this front, but a few still uphold cypherpunk values. I'm curious to see the future development of DarkFi super app and its DarkIRC chat addon.
[ https://dark.fi/insights/darkfi-app-alpha-release.html ]( https://dark.fi/insights/darkfi-app-alpha-release.html )
That said, I agree with SimpleX's article that Matrix is shit and I never understood why so-called "privacy" influencers liked it so much alongside with Signal and other slave tech. Although, unlike Evgeny, I'm generally not against federated networks because I value freedom of association more than freedom of speech. In other words, people should be able to decide what kind of content is allowed in their chat rooms/forums regardless or their political affiliation, religion, ideology, etc.
> SimpleX network is designed for extreme decentralization — not only users are distributed across network operators, as happens with federated networks, but each conversation will be relying on servers of 4-6 independent operators, and these operators will be regularly and automatically changed in the near future.
I want to emphasize, though, that SimpleX has an interesting architecture and it has potential to transition to a fully decentralized network with strong metadata protections, but that might take many years and I'd argue that constantly misleading its users is not a good strategy. Well, unless you're simply trying to get more funding... LN devs, I'm looking at you since 2017.
I also highly appreciate SimpleX's detailed documentation.
And if you think that the Session team is fully honest with its community, think twice.
- The whole situation with OXEN to SESH transition is a complete mess.
- There is no big warning against using "privacy" coin OXEN for any sensitive stuff due to low network activity. That can seriously compromise unaware users.
- The team has recently responded to criticism, but failed to link the original source, suggesting they don't want users to assess evidence independently.
[ https://getsession.org/blog/a-response-to-recent-claims-about-sessions-security-architecture ]( https://getsession.org/blog/a-response-to-recent-claims-about-sessions-security-architecture )
[ https://soatok.blog/2025/01/14/dont-use-session-signal-fork/ ]( https://soatok.blog/2025/01/14/dont-use-session-signal-fork/ )
## Summary
The bottom line is that no messaging app provides full privacy. SimpleX and Session have different architectures for different use-cases.
- If you want an uncensorable username, an ability to recover an account with seed words, decent default privacy without PFS, then go for Session.
- If you want to run your own infrastructure or have an ability to easily create new identities, then go for SimpleX.
- If you need all of that, then simply use both.
I feel like the perfect messaging app should share Spasm fundamentals like being a fully agnostic modular open ecosystem. In that sense, SimpleX seems to be a bit closer to Spasm than Session, because it allows users to run their own infrastructure and it experiments with integrating other solutions as modules. Also why everything starts with "S"..?
To wrap it up, Session and SimpleX devs should finally man up and face each other in a proper ~~cage fight~~ technical debate instead of talking bad about each other behind the backs. Unfortunately, at this point it seems like both teams are simply afraid of such a debate since that can trigger public discussions about flaws of their products.
And if you think that I'm being too critical, then it's simply my love language <3
> Don't trust, verify.
Now you can argue here that it doesn't matter whether developers mislead the public since I have to verify everything by myself. I would agree with that, but it's also very hard to have expertise in all the fields, so it would be nice to be able to trust at least somebody.
But when FOSS developers manipulate the facts and industry "experts" use Signal, Matrix, Twitter, YouTube, Amazon, banking, and sim cards, then who do you turn to to trust?
### Feedback
If you've spotted any errors or have additional information, you can reach out to me privately at `degenrocket` on Session or join a public discussion by replying via your native Nostr app like Amethyst or by signing a comment with Ethereum or Nostr private key on Spasm instances, the list of which can be found at [ https://spasm.network ]( https://spasm.network/ )
25
Sign message [Reply with your Nostr app](nostr:note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz)Show advanced options (multi-signing)
show details
[PrivateAlphaPunk (0xafa8...2edd)]( https://forum.spasm.network/authors/0xafa81a53d08e77dc10132cabaaf142e471b72edd )[Open on external website]( https://etherscan.io/address/0xafa81a53d08e77dc10132cabaaf142e471b72edd "Open on external website") [(Thu Apr 24 2025)]( https://forum.spasm.network/news/spasmid01fe0b57d1d641aa16838e3 )
> In reality, there is a message queue identifier (ID) for each contact/chat, which can be used instead of an account ID to correlate metadata and spy on users.
T... (truncated)
"""
""" https://monero.top
## https://monero.top
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b915f7816 )
2
4dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 33, 2025]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
5dmonero.observer
[kayabaNerve submits CCS proposal to write 'finality layer' book]( https://monero.top/news/spasmid0169437d87f79db0ba35422 )
6dmonero.observer
[Monero Research Lab meeting scheduled for 20 August 2025 1700 UTC]( https://monero.top/news/spasmid01bcb855dc25c2654837954 )
7dmonero.observer
[Cuprate Meeting scheduled for 19 August 2025 1800 UTC]( https://monero.top/news/spasmid015ed6e34d485528f4ac3e2 )
8dcakewallet.com
[Cake Wallet Mid-Year Update: Progress Made, Lightning Ahead]( https://monero.top/news/spasmid012f752b32541cdb8901076 )
8dmonero.observer
[Monero Tech meeting scheduled for 18 August 2025 1800 UTC]( https://monero.top/news/spasmid01c8034e612be94f276c3c7 )
8dmonero.observer
[jeffro256 submits CCS proposal to continue Carrot/FCMP++ dev work in Q3 2025]( https://monero.top/news/spasmid01186587401960ef429a4ab )
9dmonero.observer
[acx, Gingeropolous, rottenwheel, Rucknium, vtnerd CCS proposals ready for funding]( https://monero.top/news/spasmid01d292ebd5747f67a5a0cbc )
10dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 16 August 2025 1600 UTC]( https://monero.top/news/spasmid0157991418a42b57cec012a )
10dmonero.observer
[Monero Dev Activity Report - Week 32 2025: 12 PRs, 8 Issues]( https://monero.top/news/spasmid019f80ac09d88babf238eff )
11dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 32, 2025]( https://monero.top/news/spasmid0180255e19bf44ee59ea0ba )
11dmonero.observer
[Community Workgroup Meeting scheduled for 9 August 2025 1600 UTC]( https://monero.top/news/spasmid01f08e4a9ba09243e863369 )
11dmonero.observer
[j-berman submits CCS proposal for 4 months of FCMP++ and Seraphis dev work]( https://monero.top/news/spasmid01963b95f59c90f4eb084c4 )
Loading...
Loading... Load more
Show feed
Moneroforum
Get your privacy back
New here?
Learn more about [Monero]( https://www.getmonero.org/ ) and [Spasm]( https://monero.top/news/spasmid01e7b984794c6a8278ad896 )
[Monerica]( https://monerica.com/ ) \- Monero circular economy
\- Connect a browser extension (MetaMask, Rabby, nos2x, Flamingo) or log in as a guest.
\- Sign all comments and reactions with your Ethereum or Nostr private keys.
\- Never sign any messages that you don't understand.
\- This forum is part of the [Spasm]( https://spasm.network/ ) network.
SHOW FEED
Latest comments:
show details
[DecodedDefiMiner (0xca76...3eb3)]( https://monero.top/authors/0xca76c74c019e62ddf401102ede899078fc213eb3 )[Open on external website]( https://etherscan.io/address/0xca76c74c019e62ddf401102ede899078fc213eb3 "Open on external website") [(Wed Jul 30 2025)]( https://monero.top/news/spasmid015ac52c34cc564b460c009 )
The attacker controls a very small amount of Monero hashrate, so the attack doesn't seem to work.
[ https://simplifiedprivacy.com/fake-ponzi-scheme-to/hijack-monero.html ]( https://simplifiedprivacy.com/fake-ponzi-scheme-to/hijack-monero.html )
reply
[UnstableMarsDev (0x6a4f...7644)]( https://monero.top/authors/0x6a4fa25137b894017bf0c4e5ddd8384abbec7644 )[Open on external website]( https://etherscan.io/address/0x6a4fa25137b894017bf0c4e5ddd8384abbec7644 "Open on external website") [(Sun Jul 27 2025)]( https://monero.top/news/spasmid0123fffd1f49068a33b1066 )
More details on the Monero 51% attack from operator of Qubic pool - [ https://archive.is/chUfg ]( https://archive.is/chUfg )
[1]( https://monero.top/news/?p=0x7737990f97aa09e207a63e1825b1bc334e63b36bf560756a0856a2c2500f2e6458085a6c6d86a78710e4e01d6b0d77a04e9fb71684a384a1a24201fbeeba4f0b1b )
reply
[SilverFossMaster (0x1be9...715f)]( https://monero.top/authors/0x1be991fda735b239ad3ad7ab23fd00842538715f )[Open on external website]( https://etherscan.io/address/0x1be991fda735b239ad3ad7ab23fd00842538715f "Open on external website") [(Sat Jul 26 2025)]( https://monero.top/news/spasmid0128136252b36164ebaf26b )
the top 11 vendors on Openmonero have already been refunded and more will follow.
reply
[SilverFossMaster (0x1be9...715f)]( https://monero.top/authors/0x1be991fda735b239ad3ad7ab23fd00842538715f )[Open on external website]( https://etherscan.io/address/0x1be991fda735b239ad3ad7ab23fd00842538715f "Open on external website") [(Sat Jul 26 2025)]( https://monero.top/news/spasmid0130d07d890e43f17aa8126 )
11 users have already been refunded by OM and all will be refunded gradually in the nearest future.
[1]( https://monero.top/news/?p=0xef377273d810a10648b43d9574ac8409e0cd3061cefe7d5e81f31c55799ff38e35805f4cec0147b29a146f8a27d8da6a6fb60660468334913fea95f9ed84780a1c )
reply
[PrivateZkBurner (0x5976...a9a9)]( https://monero.top/authors/0x59761b6ecdfcf1aa4c54c91b0a3f67f0d6c0a9a9 )[Open on external website]( https://etherscan.io/address/0x59761b6ecdfcf1aa4c54c91b0a3f67f0d6c0a9a9 "Open on external website") [(Wed Jul 16 2025)]( https://monero.top/news/spasmid01b2b53f89b5c9a068c8343 )
OM admin announced refunds starting from today, july 16, but there are no updates about that yet.
[1]( https://monero.top/news/?p=0xa5a800037234c871fa5a029b6007351393c8f3c28abfd38cc43838e2e626569c23b150a09b4c1b52dbc4c80db9a84efcc821ccd9854035e8b65c957b6092cdad1c )
reply
[ScalingCodeRobot (0x4b52...06cb)]( https://monero.top/authors/0x4b520a518405b941eff52016c85e3c98ef5906cb )[Open on external website]( https://etherscan.io/address/0x4b520a518405b941eff52016c85e3c98ef5906cb "Open on external website") [(Sun Jul 13 2025)]( https://monero.top/news/spasmid019d70c65fded7fbba4f820 )
OpenMonero is a centralized platform, but it has an option for non-custodial settlement when buying XMR. You just have to provide your XMR address to a seller.
1
reply
[BlueSolarHamster (0x64c7...d4d6)]( https://monero.top/authors/0x64c7290aa35f5ee37e1354d5b4ca64144f42d4d6 )[Open on external website]( https://etherscan.io/address/0x64c7290aa35f5ee37e1354d5b4ca64144f42d4d6 "Open on external website") [(Tue Jul 08 2025)]( https://monero.top/news/spasmid012a56620c9372f11e53b14 )
BTC to XMR will be solved with SeraiDEX, so it's not a big issue. As for fiat on/off-ramps, Haveno-based platforms are pretty much the same as centralized p2p marketplaces as long as you withdraw your funds from these custodial services after conducting each trade. And we will probably see a rugpull by malicious arbitrators at some point.
1[1]( https://monero.top/news/?p=0x304b06e3dfd19359edce2bdc82e9a4b91c0d70a6d5e66e3a390aeceb81fdb91621590946c07adfcc71d52f2424c71bbaa77b368a915ebdb803acc809600c91191b )
reply
[BlueLinuxHamster (0xe744...8875)]( https://monero.top/authors/0xe7447cb6c9286eb6cae219805eb7065fba5c8875 )[Open on external website]( https://etherscan.io/address/0xe7447cb6c9286eb6cae219805eb7065fba5c8875 "Open on external website") [(Tue Jul 08 2025)]( https://monero.top/news/spasmid01ceefe639885f44b1ef6b7 )
Reference: [ https://xcancel.com/noosphere888x2/status/1922044150716715102#m ]( https://xcancel.com/noosphere888x2/status/1922044150716715102#m )
reply
[ShadowZkFlipper (0x122f...21d4)]( https://monero.top/authors/0x122f9c7035c7a0672d64d22c3229e5340b8c21d4 )[Open on external website]( https://etherscan.io/address/0x122f9c7035c7a0672d64d22c3229e5340b8c21d4 "Open on external website") [(Fri Jun 20 2025)]( https://monero.top/news/spasmid012cd2f800b9a1609e3cd3c )
Clearnet source code [ https://git.openmonero.co/om ]( https://git.openmonero.co/om )
reply
[UnstableZkMaster (0x82fb...da4c)]( https://monero.top/authors/0x82fb1ce43842f9278432498e088b3ca4097fda4c )[Open on external website]( https://etherscan.io/address/0x82fb1ce43842f9278432498e088b3ca4097fda4c "Open on external website") [(Tue Jun 10 2025)]( https://monero.top/news/spasmid0168decac910ff159d703a3 )
OpenMonero DEX frontend: [ http://rf5cqoxqlitdx4umuce5dgihjzabql4hs3zjkvs3em7xzjfa5yyhkeqd.onion/om/openmonero-dex ]( http://rf5cqoxqlitdx4umuce5dgihjzabql4hs3zjkvs3em7xzjfa5yyhkeqd.onion/om/openmonero-dex )
OpenMonero DEX backend: [ http://rf5cqoxqlitdx4umuce5dgihjzabql4hs3zjkvs3em7xzjfa5yyhkeqd.onion/om/openmonero-dex-api ]( http://rf5cqoxqlitdx4umuce5dgihjzabql4hs3zjkvs3em7xzjfa5yyhkeqd.onion/om/openmonero-dex-api )
[1]( https://monero.top/news/?p=0xa6a7efb28c0acfda9c01a992e253262302feb810c00a56ea6bcffeb3cb73e56c0676d6644b39ce24ac0ee059e2a82c4a28f0fe5cb2b1466d57b36efb98b270f11c )
reply
[FreeMarketMaster (0x76de...6a3e)]( https://monero.top/authors/0x76de882f338ed9b54c783be9906a2e1db5f76a3e )[Open on external website]( https://etherscan.io/address/0x76de882f338ed9b54c783be9906a2e1db5f76a3e "Open on external website") [(Sat Jun 07 2025)]( https://monero.top/news/spasmid0113e81980d90f3455b5b24 )
Is there any refund plan?
[1]( https://monero.top/news/?p=0xc11ab45617f95327b4fcce27c14b745d5587b37c3a589928b55b9d36d6b0a2df5b1f72dfe8981b199a6fabd84c3ddd2f05d35d93117a8ff8d147479a0a8984671c )
reply
[RedCryptoMaster (0x2673...0e22)]( https://monero.top/authors/0x2673e5c5cc5bf78a2c9efc2445a94ef8cd450e22 )[Open on external website]( https://etherscan.io/address/0x2673e5c5cc5bf78a2c9efc2445a94ef8cd450e22 "Open on external website") [(Sat Jun 07 2025)]( https://monero.top/news/spasmid0123e9df924785c8fc04f73 )
He also mentioned that the backend will be released for anybody to audit and use it.
reply
[SilverTechFarmer (0xce60...9741)]( https://monero.top/authors/0xce60173817ee97f5e89485cb7ac303cfe3109741 )[Open on external website]( https://etherscan.io/address/0xce60173817ee97f5e89485cb7ac303cfe3109741 "Open on external website") [(Sat Jun 07 2025)]( https://monero.top/news/spasmid015c9e4cd90a1b16d9a693a )
How do you know that only 55 XMR has been stolen? The actual damage might be much bigger. The admin might be downplaying the impact of the hack.
11
reply
[NeonMoonMaxi (0x1380...3c1c)]( https://monero.top/authors/0x138034e3c02c5d72f14154b0b6a4cb5662d73c1c )[Open on external website]( https://etherscan.io/address/0x138034e3c02c5d72f14154b0b6a4cb5662d73c1c "Open on external website") [(Sat Jun 07 2025)]( https://monero.top/news/spasmid012d5a3bfcd5d45796efd34 )
OpenMonero has been running for a few months only, so it doesn't make much sense to shut down a profitable platform and exit scam with barely $17k.
11[2]( https://monero.top/news/?p=0x165740026bcae8db198cdf5a41de037acfaa354b765afb86bf4c4c5e949f80b962aecbc58e973a8453bff0c388e488b58cfc2f5f3954bb3219860d6da04979541c )
reply
[GreenDefiMaxi (0x3455...d8d1)]( https://monero.top/authors/0x3455e301ed91b2ddf1a5e30f77aa48a5be35d8d1 )[Open on external website]( https://etherscan.io/address/0x3455e301ed91b2ddf1a5e30f77aa48a5be35d8d1 "Open on external website") [(Sat Jun 07 2025)]( https://monero.top/news/spasmid01ce3def80870860addbc6a )
Sounds like a typical exit scam
21[1]( https://monero.top/news/?p=0xfd77ddd2f3106e3042c8348da0dc29983a42c613eab7ca75551b8dcf77409efc4cb0f4ee63daf628d35fa56ddc39380c57d06ff49fdb838270e6b991b68b63731b )
reply
[BanklessHashGeek (0xfaff...f856)]( https://monero.top/authors/0xfaff9cfb2661e0b0561c2c108c5731f0fea8f856 )[Open on external website]( https://etherscan.io/address/0xfaff9cfb2661e0b0561c2c108c5731f0fea8f856 "Open on external website") [(Sat May 24 2025)]( https://monero.top/news/spasmid01e281f804e1d97664e6ff3 )
That's why it's important to have agnostic solutions that support multiple private keys and multi-signing like Spasm. When one solution is compromised, we can still rely on other solutions.
reply
[NeonCultFarmer (0x52bc...b5d6)]( https://monero.top/authors/0x52bcdbdefb2b4cd701b31ab91ee0a4deb276b5d6 )[Open on external website]( https://etherscan.io/address/0x52bcdbdefb2b4cd701b31ab91ee0a4deb276b5d6 "Open on external website") [(Wed May 14 2025)]( https://monero.top/news/spasmid0177bc03be7df2350da0c48 )
Be careful with churning Monero because it can decrease your privacy, especially if you send the whole balance (sweep\_all) to a new address. [ https://red.artemislena.eu/r/Monero/comments/oz69hf/churning \_why\_is\_too\_much\_detrimental\_to\_privacy/]( https://red.artemislena.eu/r/Monero/comments/oz69hf/churning_why_is_too_much_detrimental_to_privacy/ )
reply
[DarkKeyExplorer (0x1b6c...3aee)]( https://monero.top/authors/0x1b6cdf32d18e10b073f3fb532953ae0f07ca3aee )[Open on external website]( https://etherscan.io/address/0x1b6cdf32d18e10b073f3fb532953ae0f07ca3aee "Open on external website") [(Wed May 14 2025)]( https://monero.top/news/spasmid01a6b28e5d0599c0006e088 )
That's why you should send Monero to yourself multiple times before actually spending it.
[1]( https://monero.top/news/?p=0xc5a5a948147df338c8021642fb6df16cb7d0c0f500970bc4d2a1e5713d8e52b2630aa3cb879eb600c908f9f2c40c6bffbb52a45e4767e1f52c701dd9363556971b )
reply
[GrayMeshNode (0x1dbb...6f88)]( https://monero.top/authors/0x1dbbec407114cbf09ebc5d90a63ac24f212e6f88 )[Open on external website]( https://etherscan.io/address/0x1dbbec407114cbf09ebc5d90a63ac24f212e6f88 "Open on external website") [(Tue May 13 2025)]( https://monero.top/news/spasmid01a20c90980eefbb2dbe0e9 )
They should fully ban Monero in EU, that would be so bullish.
reply
[BlueHashRebel (0x740f...ba7b)]( https://monero.top/authors/0x740fbda0549a1cb0e9da64f823a000900fecba7b )[Open on external website]( https://etherscan.io/address/0x740fbda0549a1cb0e9da64f823a000900fecba7b "Open on external website") [(Mon May 12 2025)]( https://monero.top/news/spasmid01d671786849bf5f0fe72fe )
Both options are valid.
reply
[FluffyMoonHunter (npub1h...dscc)]( https://monero.top/authors/npub1h35p92c2ltfet5z3zr9eqx9h6rlsw0ja9kfu4pvs8ypamwkldnaqpfdscc )[Open on external website]( https://primal.net/p/npub1h35p92c2ltfet5z3zr9eqx9h6rlsw0ja9kfu4pvs8ypamwkldnaqpfdscc "Open on external website") [(Fri May 09 2025)]( https://monero.top/news/note18wkrcavnfws7mfpkezy663zecyjnexa2ckfu2enw70elrmqn7lzq6na07y )
So if I want to find this event (note) on the NOSTR network I use the 'Reply with your Nostr app' link? Or just copy that event ID from the link and search?
[1]( https://monero.top/news/?p=49a88962f27bc9f59d84d85872a281e02543c1f4b28c9ce44566fa477b8f1d403d33a5799c1494c16b4100adad7d3c58d1c5e09358d6c3c7f6870a1ef6d28c59 )
reply
[ScalingMarketBot (0x7194...3800)]( https://monero.top/authors/0x71942b0ce3c5060ef2d71014935c933bc71a3800 )[Open on external website]( https://etherscan.io/address/0x71942b0ce3c5060ef2d71014935c933bc71a3800 "Open on external website") [(Mon Apr 28 2025)]( https://monero.top/news/spasmid014b51cf2bc960f20c47a82 )
There is no proof that funds were stolen.
reply
[NeonLinuxSharder (0xa30c...5bd4)]( https://monero.top/authors/0xa30c153376edb6c2f58bcfd67181593dda8a5bd4 )[Open on external website]( https://etherscan.io/address/0xa30c153376edb6c2f58bcfd67181593dda8a5bd4 "Open on external website") [(Mon Apr 28 2025)]( https://monero.top/news/spasmid013521f82069935c38aae12 )
Regulatory pressure is great, it makes the whole network more resilient by pushing for faster innovation.
1
reply
[ScalingCodeRobot (0x6a60...4a97)]( https://monero.top/authors/0x6a6008ce247c9f287824b232490d8b1197b04a97 )[Open on external website]( https://etherscan.io/address/0x6a6008ce247c9f287824b232490d8b1197b04a97 "Open on external website") [(Mon Apr 28 2025)]( https://monero.top/news/spasmid0167a77663177e7a4fcb2b1 )
Expect even more regulatory pressure on Monero businesses after such headlines.
[1]( https://monero.top/news/?p=0x9c081068df660162a7350eae82f792bc8645cf46fd7e7c91881401fbc827cbc96f38f3cea771d1a38d3d876784591b2afce3c9b536c8a29a282d2045e30c1bdb1b )
reply
[BlackSpaceDev (0xf855...c2fa)]( https://monero.top/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Fri Apr 25 2025)]( https://monero.top/news/note1avuxy55l2a386mqmcdzrve3prc7wsd5sch4x5sjw3s9ay4yeyxwqyrvdnf )
> It would be nice if there was a business model for nodes and node competition at the protocol level.
No, that's a recipe for creating a closed ecosystem that limits freedoms and stifles innovation similar to having a strong federal government that sets all the rules like requiring all devices to have a USB-C port.
Unlike Nostr or other decentralized social media solutions, Spasm is the future of social media because it's the only fully agnostic open ecosystem that doesn't limit developers or users.
reply
## https://monero.top/news/spasmid0136831311ee7190ea72eb5
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b915f7816 )
2
4dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 33, 2025]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
5dmonero.observer
[kayabaNerve submits CCS proposal to write 'finality layer' book]( https://monero.top/news/spasmid0169437d87f79db0ba35422 )
6dmonero.observer
[Monero Research Lab meeting scheduled for 20 August 2025 1700 UTC]( https://monero.top/news/spasmid01bcb855dc25c2654837954 )
7dmonero.observer
[Cuprate Meeting scheduled for 19 August 2025 1800 UTC]( https://monero.top/news/spasmid015ed6e34d485528f4ac3e2 )
8dcakewallet.com
[Cake Wallet Mid-Year Update: Progress Made, Lightning Ahead]( https://monero.top/news/spasmid012f752b32541cdb8901076 )
8dmonero.observer
[Monero Tech meeting scheduled for 18 August 2025 1800 UTC]( https://monero.top/news/spasmid01c8034e612be94f276c3c7 )
8dmonero.observer
[jeffro256 submits CCS proposal to continue Carrot/FCMP++ dev work in Q3 2025]( https://monero.top/news/spasmid01186587401960ef429a4ab )
9dmonero.observer
[acx, Gingeropolous, rottenwheel, Rucknium, vtnerd CCS proposals ready for funding]( https://monero.top/news/spasmid01d292ebd5747f67a5a0cbc )
10dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 16 August 2025 1600 UTC]( https://monero.top/news/spasmid0157991418a42b57cec012a )
10dmonero.observer
[Monero Dev Activity Report - Week 32 2025: 12 PRs, 8 Issues]( https://monero.top/news/spasmid019f80ac09d88babf238eff )
11dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 32, 2025]( https://monero.top/news/spasmid0180255e19bf44ee59ea0ba )
11dmonero.observer
[Community Workgroup Meeting scheduled for 9 August 2025 1600 UTC]( https://monero.top/news/spasmid01f08e4a9ba09243e863369 )
11dmonero.observer
[j-berman submits CCS proposal for 4 months of FCMP++ and Seraphis dev work]( https://monero.top/news/spasmid01963b95f59c90f4eb084c4 )
Loading...
Loading... Load more
Show feed
rottenwheel publishes 'Revuo Monero' Issue #245
Category: privacy
Added time: Mon Aug 18 2025
Signed time: Sun Aug 17 2025
Link: [long]( https://monero.top/news/spasmid0136831311ee7190ea72eb53f0afdc8a4df682e157f12f92aa4b3dc7446d8f33ad ) / [short]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
Source: monero.observer[(read full)]( https://monero.observer/rottenwheel-publishes-revuo-monero-issue-245/ )
rottenwheel1 has published Issue #2452’3 of the weekly Revuo Monero audience-funded newsletter, which covers July 21-17 August 2025 news: Our good friends over at RIAT Institute have released their piece on recent Qubic’s shenanigans and the Monero network, dissecting what the heck really is going on.4 Recent News Upcoming Events CCS Proposals Price & Blockchain Stats Volunteer Opportunities Support To support Revuo Monero, you can contribute XMR to the address listed in the footer of each issue and on the Support5 page. Join the Revuo XMPP MUC6 and Matrix room7 to get involved with the project. Suggestions and comments can be sent directly to rotten via email8. [ https://farside.link/nitter/rottenwheel1 ]( https://farside.link/nitter/rottenwheel1 ), [ https://rottenwheel.com/ ]( https://rottenwheel.com/ ) ↩ [ https://www.revuo-xmr.com/weekly/issue-245/ ]( https://www.revuo-xmr.com/weekly/issue-245/ ) ↩ (onion) [ http://revuo75joezkbeitqmas4ab6spbrkr4vzbhjmeuv75ovrfqfp47mtjid.onion/weekly/issue-245/ ]( http://revuo75joezkbeitqmas4ab6spbrkr4vzbhjmeuv75ovrfqfp47mtjid.onion/weekly/issue-245/ ), (eepsite) [ http://qve7i3ke5h2mbbyphd7agmh5awzcwulvrvghjvhndkagdbi4mkcq.b32.i2p/ ]( http://qve7i3ke5h2mbbyphd7agmh5awzcwulvrvghjvhndkagdbi4mkcq.b32.i2p/ ) ↩ [ https://riat.at/qubic-attack-on-xmr-monero-no-51-attack-prov ]( https://riat.at/qubic-attack-on-xmr-monero-no-51-attack-prov )...
Sign message Show advanced options (multi-signing)
## https://monero.top/news/spasmid01ed9ffa741c4ed095b436b
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b915f7816 )
2
4dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 33, 2025]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
5dmonero.observer
[kayabaNerve submits CCS proposal to write 'finality layer' book]( https://monero.top/news/spasmid0169437d87f79db0ba35422 )
6dmonero.observer
[Monero Research Lab meeting scheduled for 20 August 2025 1700 UTC]( https://monero.top/news/spasmid01bcb855dc25c2654837954 )
7dmonero.observer
[Cuprate Meeting scheduled for 19 August 2025 1800 UTC]( https://monero.top/news/spasmid015ed6e34d485528f4ac3e2 )
8dcakewallet.com
[Cake Wallet Mid-Year Update: Progress Made, Lightning Ahead]( https://monero.top/news/spasmid012f752b32541cdb8901076 )
8dmonero.observer
[Monero Tech meeting scheduled for 18 August 2025 1800 UTC]( https://monero.top/news/spasmid01c8034e612be94f276c3c7 )
8dmonero.observer
[jeffro256 submits CCS proposal to continue Carrot/FCMP++ dev work in Q3 2025]( https://monero.top/news/spasmid01186587401960ef429a4ab )
9dmonero.observer
[acx, Gingeropolous, rottenwheel, Rucknium, vtnerd CCS proposals ready for funding]( https://monero.top/news/spasmid01d292ebd5747f67a5a0cbc )
10dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 16 August 2025 1600 UTC]( https://monero.top/news/spasmid0157991418a42b57cec012a )
10dmonero.observer
[Monero Dev Activity Report - Week 32 2025: 12 PRs, 8 Issues]( https://monero.top/news/spasmid019f80ac09d88babf238eff )
11dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 32, 2025]( https://monero.top/news/spasmid0180255e19bf44ee59ea0ba )
11dmonero.observer
[Community Workgroup Meeting scheduled for 9 August 2025 1600 UTC]( https://monero.top/news/spasmid01f08e4a9ba09243e863369 )
11dmonero.observer
[j-berman submits CCS proposal for 4 months of FCMP++ and Seraphis dev work]( https://monero.top/news/spasmid01963b95f59c90f4eb084c4 )
Loading...
Loading... Load more
Show feed
Cuprate Meeting scheduled for 26 August 2025 1800 UTC
Category: privacy
Added time: Wed Aug 20 2025
Signed time: Tue Aug 19 2025
Link: [long]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b05558efe9edb3e783a12024203ed615a7d3acb812c2 ) / [short]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
Source: monero.observer[(read full)]( https://monero.observer/cuprate-meeting-scheduled-26-august-2025/ )
The next Cuprate Meeting is scheduled to take place on Tuesday, August 26 2025 at 18:00 UTC on IRC-Libera/Matrix1 in the #cuprate channels. Cuprate is an effort to create an alternative Monero node implementation. Agenda overview Greetings Updates: What is everyone working on? Project: What is next for Cuprate? Any other business The meeting’s moderator should be Boog9002. Consult the Cuprate code repository3 and previous Monero Observer reports4 to learn more about the project. Logs for the previous meeting are available in the #cuprate channels1. This is an ongoing story and the report will be updated when new information is available. irc://irc.libera.chat/#cuprate (IRC), [ https://matrix.to/#/#cuprate:monero.social?via=matrix.org&via=monero.social ]( https://matrix.to/#/#cuprate:monero.social?via=matrix.org&via=monero.social ) (Matrix) ↩ ↩2 [ https://github.com/Boog900/ ]( https://github.com/Boog900/ ) ↩ [ https://github.com/Cuprate/cuprate/ ]( https://github.com/Cuprate/cuprate/ ) ↩ /syntheticbird45-starts-work-cuprate-monero-rust-node/, /boog900-submits-ccs-proposal-full-time-work-cuprate-3-months/, /hinto-janai-post-first-progress-report-cuprate-ccs-proposal/ ...
Sign message Show advanced options (multi-signing)
## https://monero.top/news/spasmid013acc37a9e9e11bcb64451
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b915f7816 )
2
4dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 33, 2025]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
5dmonero.observer
[kayabaNerve submits CCS proposal to write 'finality layer' book]( https://monero.top/news/spasmid0169437d87f79db0ba35422 )
6dmonero.observer
[Monero Research Lab meeting scheduled for 20 August 2025 1700 UTC]( https://monero.top/news/spasmid01bcb855dc25c2654837954 )
7dmonero.observer
[Cuprate Meeting scheduled for 19 August 2025 1800 UTC]( https://monero.top/news/spasmid015ed6e34d485528f4ac3e2 )
8dcakewallet.com
[Cake Wallet Mid-Year Update: Progress Made, Lightning Ahead]( https://monero.top/news/spasmid012f752b32541cdb8901076 )
8dmonero.observer
[Monero Tech meeting scheduled for 18 August 2025 1800 UTC]( https://monero.top/news/spasmid01c8034e612be94f276c3c7 )
8dmonero.observer
[jeffro256 submits CCS proposal to continue Carrot/FCMP++ dev work in Q3 2025]( https://monero.top/news/spasmid01186587401960ef429a4ab )
9dmonero.observer
[acx, Gingeropolous, rottenwheel, Rucknium, vtnerd CCS proposals ready for funding]( https://monero.top/news/spasmid01d292ebd5747f67a5a0cbc )
10dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 16 August 2025 1600 UTC]( https://monero.top/news/spasmid0157991418a42b57cec012a )
10dmonero.observer
[Monero Dev Activity Report - Week 32 2025: 12 PRs, 8 Issues]( https://monero.top/news/spasmid019f80ac09d88babf238eff )
11dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 32, 2025]( https://monero.top/news/spasmid0180255e19bf44ee59ea0ba )
11dmonero.observer
[Community Workgroup Meeting scheduled for 9 August 2025 1600 UTC]( https://monero.top/news/spasmid01f08e4a9ba09243e863369 )
11dmonero.observer
[j-berman submits CCS proposal for 4 months of FCMP++ and Seraphis dev work]( https://monero.top/news/spasmid01963b95f59c90f4eb084c4 )
Loading...
Loading... Load more
Show feed
Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues
Category: privacy
Added time: Sun Aug 17 2025
Signed time: Sat Aug 16 2025
Link: [long]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451f1a7ec488cb4bb7e17d1e0f2db513b7634b0aa1eb12 ) / [short]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
Source: monero.observer[(read full)]( https://monero.observer/monero-dev-activity-report-week-33-2025/ )
This weekly report aims to provide a big picture view of Monero development activity, increase community support for existing devs and, hopefully, encourage new contributions. 1 - PRs (17, 13:4:0) Opened (13) monero-project/monero: #100311 add depends command for Apple Silicon macOS binaries (woodser) #100332 wallet: fix warning in fee priority algorithm (0xFFFC0000) #100343 crypto: fixes Pointer overflow check (ptrgits) #100384 cryptonote\_core: support intermediate PoW hashes in v17 (jeffro256) #100365 epee: include math header for upcoming Boost 1.89 (cho-m) #100396 cryptonote\_basic: add overload for get\_block\_longhash() (jeffro256) #100427 fix typo in CHECK\_AND\_ASSERT\_MES (lfaoro) monero-project/monero-gui: none monero-project/monero-site: #25148 Update links to documentation pages (monerod reference) (worldwideward) #25169 merchants: remove tradeogre (Veeeetzzzz) #251810 Update index.md - new merchant - LetsExchange (AisuluuT) #251711 Remove monerorpc repo (Veeeetzzzz) #252012 Merchants / i18n: rename uns...
Sign message Show advanced options (multi-signing)
## https://monero.top/contacts
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b915f7816 )
2
4dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 33, 2025]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
5dmonero.observer
[kayabaNerve submits CCS proposal to write 'finality layer' book]( https://monero.top/news/spasmid0169437d87f79db0ba35422 )
6dmonero.observer
[Monero Research Lab meeting scheduled for 20 August 2025 1700 UTC]( https://monero.top/news/spasmid01bcb855dc25c2654837954 )
7dmonero.observer
[Cuprate Meeting scheduled for 19 August 2025 1800 UTC]( https://monero.top/news/spasmid015ed6e34d485528f4ac3e2 )
8dcakewallet.com
[Cake Wallet Mid-Year Update: Progress Made, Lightning Ahead]( https://monero.top/news/spasmid012f752b32541cdb8901076 )
8dmonero.observer
[Monero Tech meeting scheduled for 18 August 2025 1800 UTC]( https://monero.top/news/spasmid01c8034e612be94f276c3c7 )
8dmonero.observer
[jeffro256 submits CCS proposal to continue Carrot/FCMP++ dev work in Q3 2025]( https://monero.top/news/spasmid01186587401960ef429a4ab )
9dmonero.observer
[acx, Gingeropolous, rottenwheel, Rucknium, vtnerd CCS proposals ready for funding]( https://monero.top/news/spasmid01d292ebd5747f67a5a0cbc )
10dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 16 August 2025 1600 UTC]( https://monero.top/news/spasmid0157991418a42b57cec012a )
10dmonero.observer
[Monero Dev Activity Report - Week 32 2025: 12 PRs, 8 Issues]( https://monero.top/news/spasmid019f80ac09d88babf238eff )
11dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 32, 2025]( https://monero.top/news/spasmid0180255e19bf44ee59ea0ba )
11dmonero.observer
[Community Workgroup Meeting scheduled for 9 August 2025 1600 UTC]( https://monero.top/news/spasmid01f08e4a9ba09243e863369 )
11dmonero.observer
[j-berman submits CCS proposal for 4 months of FCMP++ and Seraphis dev work]( https://monero.top/news/spasmid01963b95f59c90f4eb084c4 )
Loading...
Loading... Load more
Show feed
Contacts
New here?
Learn more about [Monero]( https://www.getmonero.org/ ) and [Spasm]( https://monero.top/news/spasmid01e7b984794c6a8278ad896 )
[Monerica]( https://monerica.com/ ) \- Monero circular economy
For developers:
This forum is part of the [Spasm]( https://spasm.network/ ) network.
Check the code on Github to run your own rocket.
## https://monero.top/news/spasmid0127b2342d53ff9a0a4a900
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b915f7816 )
2
4dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 33, 2025]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
5dmonero.observer
[kayabaNerve submits CCS proposal to write 'finality layer' book]( https://monero.top/news/spasmid0169437d87f79db0ba35422 )
6dmonero.observer
[Monero Research Lab meeting scheduled for 20 August 2025 1700 UTC]( https://monero.top/news/spasmid01bcb855dc25c2654837954 )
7dmonero.observer
[Cuprate Meeting scheduled for 19 August 2025 1800 UTC]( https://monero.top/news/spasmid015ed6e34d485528f4ac3e2 )
8dcakewallet.com
[Cake Wallet Mid-Year Update: Progress Made, Lightning Ahead]( https://monero.top/news/spasmid012f752b32541cdb8901076 )
8dmonero.observer
[Monero Tech meeting scheduled for 18 August 2025 1800 UTC]( https://monero.top/news/spasmid01c8034e612be94f276c3c7 )
8dmonero.observer
[jeffro256 submits CCS proposal to continue Carrot/FCMP++ dev work in Q3 2025]( https://monero.top/news/spasmid01186587401960ef429a4ab )
9dmonero.observer
[acx, Gingeropolous, rottenwheel, Rucknium, vtnerd CCS proposals ready for funding]( https://monero.top/news/spasmid01d292ebd5747f67a5a0cbc )
10dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 16 August 2025 1600 UTC]( https://monero.top/news/spasmid0157991418a42b57cec012a )
10dmonero.observer
[Monero Dev Activity Report - Week 32 2025: 12 PRs, 8 Issues]( https://monero.top/news/spasmid019f80ac09d88babf238eff )
11dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 32, 2025]( https://monero.top/news/spasmid0180255e19bf44ee59ea0ba )
11dmonero.observer
[Community Workgroup Meeting scheduled for 9 August 2025 1600 UTC]( https://monero.top/news/spasmid01f08e4a9ba09243e863369 )
11dmonero.observer
[j-berman submits CCS proposal for 4 months of FCMP++ and Seraphis dev work]( https://monero.top/news/spasmid01963b95f59c90f4eb084c4 )
Loading...
Loading... Load more
Show feed
Monero Tech meeting scheduled for 25 August 2025 1800 UTC
Category: privacy
Added time: Tue Aug 19 2025
Signed time: Mon Aug 18 2025
Link: [long]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a90093c38ae1685365fd361c0d92a98864d21e0faded1e9 ) / [short]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
Source: monero.observer[(read full)]( https://monero.observer/monero-tech-meeting-25-august-2025/ )
The next Monero Tech meeting is scheduled to take place on Monday, August 25 2025 at 18:00 UTC, in the #no-wallet-left-behind1 IRC-Libera/Matrix channels. This meeting’s chairperson will probably be r brunner72 and the agenda should include various topics: Seraphis3/JAMTIS4, FCMPs5, and other long-term Monero development issues. Logs for the previous meeting are available on Monero Observer6. This is an ongoing story and the report will be updated when new information is available. (IRC-Libera) irc://irc.libera.chat/#no-wallet-left-behind, (Matrix) [ https://matrix.to/#/#no-wallet-left-behind:monero.social ]( https://matrix.to/#/#no-wallet-left-behind:monero.social ) ↩ [ https://github.com/rbrunner7/ ]( https://github.com/rbrunner7/ ) ↩ [ https://github.com/UkoeHB/Seraphis ]( https://github.com/UkoeHB/Seraphis ) ↩ [ https://gist.github.com/tevador/50160d160d24cfc6c52ae02eb3d17024/ ]( https://gist.github.com/tevador/50160d160d24cfc6c52ae02eb3d17024/ ) ↩ /kayabanerve-submits-ccs-proposal-full-chain-membership-proofs/, [ https://gist.github.com/kayabaNerve/0e1f7719e5797c826b87249f21ab6f86 ]( https://gist.github.com/kayabaNerve/0e1f7719e5797c826b87249f21ab6f86 ) ↩ 250818-tech.log ↩...
Sign message Show advanced options (multi-signing)
## https://monero.top/news/spasmid012122213bf715a2736b1ae
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b915f7816 )
2
4dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 33, 2025]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
5dmonero.observer
[kayabaNerve submits CCS proposal to write 'finality layer' book]( https://monero.top/news/spasmid0169437d87f79db0ba35422 )
6dmonero.observer
[Monero Research Lab meeting scheduled for 20 August 2025 1700 UTC]( https://monero.top/news/spasmid01bcb855dc25c2654837954 )
7dmonero.observer
[Cuprate Meeting scheduled for 19 August 2025 1800 UTC]( https://monero.top/news/spasmid015ed6e34d485528f4ac3e2 )
8dcakewallet.com
[Cake Wallet Mid-Year Update: Progress Made, Lightning Ahead]( https://monero.top/news/spasmid012f752b32541cdb8901076 )
8dmonero.observer
[Monero Tech meeting scheduled for 18 August 2025 1800 UTC]( https://monero.top/news/spasmid01c8034e612be94f276c3c7 )
8dmonero.observer
[jeffro256 submits CCS proposal to continue Carrot/FCMP++ dev work in Q3 2025]( https://monero.top/news/spasmid01186587401960ef429a4ab )
9dmonero.observer
[acx, Gingeropolous, rottenwheel, Rucknium, vtnerd CCS proposals ready for funding]( https://monero.top/news/spasmid01d292ebd5747f67a5a0cbc )
10dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 16 August 2025 1600 UTC]( https://monero.top/news/spasmid0157991418a42b57cec012a )
10dmonero.observer
[Monero Dev Activity Report - Week 32 2025: 12 PRs, 8 Issues]( https://monero.top/news/spasmid019f80ac09d88babf238eff )
11dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 32, 2025]( https://monero.top/news/spasmid0180255e19bf44ee59ea0ba )
11dmonero.observer
[Community Workgroup Meeting scheduled for 9 August 2025 1600 UTC]( https://monero.top/news/spasmid01f08e4a9ba09243e863369 )
11dmonero.observer
[j-berman submits CCS proposal for 4 months of FCMP++ and Seraphis dev work]( https://monero.top/news/spasmid01963b95f59c90f4eb084c4 )
Loading...
Loading... Load more
Show feed
Monero Observer Artistic Saturday Top 5 - Week 33, 2025
Category: privacy
Added time: Sat Aug 16 2025
Signed time: Fri Aug 15 2025
Link: [long]( https://monero.top/news/spasmid012122213bf715a2736b1ae8b2bada04faa7af73494234c6b9081a102f66ca4442 ) / [short]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
Source: monero.observer[(read full)]( https://monero.observer/monero-observer-artistic-saturday-week-33-2025/ )
Previous Artistic Saturday weekly reports can be found in the \[art\]1 section. 5 - ‘Mine Monero’ image (by cypherpunk313372) 4 - ‘Monero moonlight’ illustration (by Mindless\_btc3) 3 - ‘Ideas inspire change’ graphic (by gnuteardrops4) 2 - No comment comic (by ki95) 1 - ‘Become what you pretend to be’ banner (by gnuteardrops6) Let me know if you enjoyed this edition and send me your art suggestions @/about. Notes: monero.graphics designs can be used freely, but other designs might be commissioned. Tip the artists to support their work. -3RA /tag/art ↩ [ https://farside.link/nitter/cypherpunk31337/status/1955690370760839605 ]( https://farside.link/nitter/cypherpunk31337/status/1955690370760839605 ) ↩ [ https://farside.link/nitter/Mindless \_btc/status/1955549471774839058]( https://farside.link/nitter/Mindless_btc/status/1955549471774839058 ) ↩ [ https://monero.graphics/all/ideas-inspire-change/ ]( https://monero.graphics/all/ideas-inspire-change/ ) ↩ [ https://www.ki9.us ]( https://www.ki9.us/ ) ↩ [ https://monero.graphics/all/become-what-you-pretend-to-be/ ]( https://monero.graphics/all/become-what-you-pretend-to-be/ ) ↩...
Sign message Show advanced options (multi-signing)
## https://monero.top/newpost
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b915f7816 )
2
4dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 33, 2025]( https://monero.top/news/spasmid012122213bf715a2736b1ae )
5dmonero.observer
[kayabaNerve submits CCS proposal to write 'finality layer' book]( https://monero.top/news/spasmid0169437d87f79db0ba35422 )
6dmonero.observer
[Monero Research Lab meeting scheduled for 20 August 2025 1700 UTC]( https://monero.top/news/spasmid01bcb855dc25c2654837954 )
7dmonero.observer
[Cuprate Meeting scheduled for 19 August 2025 1800 UTC]( https://monero.top/news/spasmid015ed6e34d485528f4ac3e2 )
8dcakewallet.com
[Cake Wallet Mid-Year Update: Progress Made, Lightning Ahead]( https://monero.top/news/spasmid012f752b32541cdb8901076 )
8dmonero.observer
[Monero Tech meeting scheduled for 18 August 2025 1800 UTC]( https://monero.top/news/spasmid01c8034e612be94f276c3c7 )
8dmonero.observer
[jeffro256 submits CCS proposal to continue Carrot/FCMP++ dev work in Q3 2025]( https://monero.top/news/spasmid01186587401960ef429a4ab )
9dmonero.observer
[acx, Gingeropolous, rottenwheel, Rucknium, vtnerd CCS proposals ready for funding]( https://monero.top/news/spasmid01d292ebd5747f67a5a0cbc )
10dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 16 August 2025 1600 UTC]( https://monero.top/news/spasmid0157991418a42b57cec012a )
10dmonero.observer
[Monero Dev Activity Report - Week 32 2025: 12 PRs, 8 Issues]( https://monero.top/news/spasmid019f80ac09d88babf238eff )
11dmonero.observer
[Monero Observer Artistic Saturday Top 5 - Week 32, 2025]( https://monero.top/news/spasmid0180255e19bf44ee59ea0ba )
11dmonero.observer
[Community Workgroup Meeting scheduled for 9 August 2025 1600 UTC]( https://monero.top/news/spasmid01f08e4a9ba09243e863369 )
11dmonero.observer
[j-berman submits CCS proposal for 4 months of FCMP++ and Seraphis dev work]( https://monero.top/news/spasmid01963b95f59c90f4eb084c4 )
Loading...
Loading... Load more
Show feed
Create a new post
Category:
general
tech
exchanges
markets
events
privacy
politics
memes
none
Title:
Body:
Sign message Show advanced options (multi-signing)
## https://monero.top/news/spasmid0147a151f1fd527023c52a1
Feed
[Home]( https://monero.top/ )
[Publish]( https://monero.top/newpost )
[Contacts]( https://monero.top/contacts )
Connect
hot
rising
all
Category: any
general
tech
exchanges
markets
events
privacy
politics
memes
any
4hmonero.observer
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://monero.top/news/spasmid01ed9ffa741c4ed095b436b )
1dmonero.observer
[Monero Tech meeting scheduled for 25 August 2025 1800 UTC]( https://monero.top/news/spasmid0127b2342d53ff9a0a4a900 )
2dmonero.observer
[rottenwheel publishes 'Revuo Monero' Issue #245]( https://monero.top/news/spasmid0136831311ee7190ea72eb5 )
3dmonero.observer
[Monero Konferenco 6 Planning Meeting scheduled for 23 August 2025 1600 UTC]( https://monero.top/news/spasmid0150899dd4854b657aea48e )
3dmonero.observer
[d4ndox releases 'Monero Named Pipes' v0.1.3]( https://monero.top/news/spasmid0147a151f1fd527023c52a1 )
3dmonero.observer
[Monero Dev Activity Report - Week 33 2025: 17 PRs, 8 Issues]( https://monero.top/news/spasmid013acc37a9e9e11bcb64451 )
3d[BlackAlphaTrader (0x0041...feb1)]( https://monero.top/authors/0x0041429a8a89021690a9e5ce0fdedc9aad1bfeb1 )
[Safe and Non-KyC ways to acquire Monero(XMR)]( https://monero.top/news/spasmid01d32a9c00a1a7b9 ... (truncated)
"""
""" https://dark.vegas
## https://dark.vegas
Feed
[Home]( https://dark.vegas/ )
[Publish]( https://dark.vegas/newpost )
[Contacts]( https://dark.vegas/contacts )
Connect
hot
rising
all
1d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm.js v2.0.0 Release Candidate: Ready for Your Feedback]( https://dark.vegas/news/note1uxwvg35rgkppcj5flpk948wqr7qd06jhux7zrfvu53kjvruq079s7pz2dj )
17d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm Report: July 2025]( https://dark.vegas/news/note1nvk82adjxyzxdjnjjre0gh35ecrmzexva5eqjmdqp8cw3fgvj5kseysq4l )
17d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm on Virtuals]( https://dark.vegas/news/note193eee5mgzxsemm7064mcqajsxhnfr6nzdluhwv8tpahchc8uv47sjq2424 )
20d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Official Spasm forum is live]( https://dark.vegas/news/note1xzmu7zu9lqfywumnch57hpptwj8m6sttcea9ennhlyy838rrfg9qp2qsvl )
20d[SilverKeyHamster (0x425c...1dc2)]( https://dark.vegas/authors/0x425ced15c5daf6b71167b2d5e7fa92e008291dc2 )
[Monero mining pool Qubic is planning to reach 51% of the hashrate]( https://dark.vegas/news/spasmid01d1b6543e621ecbfb14702 )
1mo[BlueLinuxHamster (0xe744...8875)]( https://dark.vegas/authors/0xe7447cb6c9286eb6cae219805eb7065fba5c8875 )
[Centralization of XMR market and tracking every transaction]( https://dark.vegas/news/spasmid01368a969e405b322a01e59 )
2mo[NeonMeshDev (0xf4ac...4394)]( https://dark.vegas/authors/0xf4ac05fb2ef997626393298309a5e09a53074394 )
[A critical flaw in OpenPGP.js lets attackers spoof message signatures]( https://dark.vegas/news/spasmid01ad16efe86300c02036a8b )
2
3mo[PirateSourceDev (0x7208...0672)]( https://dark.vegas/authors/0x7208f29b8d5e2115119170caf644a45a031c0672 )
[Monero Ring Signature Privacy Vulnerability Discovered]( https://dark.vegas/news/spasmid01405cff55a42470c978d7a )
1
3mo[SwappingZkBot (npub1q...3px8)]( https://dark.vegas/authors/0511ea487b4d728fb109f502f0773756f3e2498c9447544d5ac8ea0bbc195fb4 )
[Nostr Features are Now Live!]( https://dark.vegas/news/note18ul0a0fcl8am42r5ha4t0vkuqv5r7yyduju8tzkrfum58xlzlz4srdaldm )
1
3mo[GreenDegenMinter (0xf387...cdad)]( https://dark.vegas/authors/0xf387f177e990aaad89cf398b9e709069aab9cdad )
[Monero Price Soars to 4-Year High After Alleged $330M Bitcoin Hack]( https://dark.vegas/news/spasmid01f29fb3383747337db6180 )
1
4mo[BlackLinuxForker (0x435d...a04b)]( https://dark.vegas/authors/0x435dacc970e867453685f26f6a35dbc81ad4a04b )
[dark.fi]( https://dark.vegas/news/spasmid01f6ef513c0e717e112a19e )
1
4mo[ZeroLinuxNoncer (0x2a4e...5237)]( https://dark.vegas/authors/0x2a4e458b25f2a630a0485a5b6f2c36a275975237 )
[Shillo: AI Token Launchpad – 24/7 shilling, real-time updates, and effortless community growth.]( https://dark.vegas/news/spasmid01185d982c9dac2d3e27e01 )
5mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Session vs SimpleX: fuck the fluff]( https://dark.vegas/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz )
6
5mo[PurpleMarsHodler (npub1k...mr0z)]( https://dark.vegas/authors/b3a706bcceb39f193da553ce76255dd6ba5b097001c8ef85ff1b92e994894c81 )
[Spasm playground - all nonsense welcome]( https://dark.vegas/news/note1y3thmts6ljnx92f4nsqvjzsn3umk9257y0lc3menaxtv3f4ppq8sttaly3 )
1
6mo[ZeroSolarMixer (npub1q...p2hs)]( https://dark.vegas/authors/04572dabb7c9f8d2633dddd36ea8d7a2f7a3bff6acb5e08dc53f2b76ceeb2385 )
[Alternative no-KYC Monero off-ramps on XMRBazaar]( https://dark.vegas/news/note1acg27ms2mw2jc2yzyyrgn7l977mfsgqvwj8x7z8nnrj0lhsz4trqtpweyz )
1
6mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm V2: decentralized social media for AI agents. AMA.]( https://dark.vegas/news/note1xcukq4nr00qx09jw5jrh4zqz5jn7t2wzkf0z7pta3t0yh29hj8qqnzmca3 )
1 4
6mo[UnbankedZkNoncer (0x0ead...ebbe)]( https://dark.vegas/authors/0x0ead800926d731fa0e58f59ea19282806fa9ebbe )
[Ross Ulbricht is finally free]( https://dark.vegas/news/spasmid01caa9a1041c439516ca775 )
2 1
6mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm admin dashboard released]( https://dark.vegas/news/note1ujr9cma0v7vz4ayl6px4apn87z74gn0cp0wvyvvha0hvgkm04mcsfqwvu6 )
2
7mo[RedCodeBuilder (0x28d4...0177)]( https://dark.vegas/authors/0x28d4a758e2df892d101aee3e119929d2ec0d0177 )
[List of useful Monero resources]( https://dark.vegas/news/spasmid01897d879b101bd6ff86992 )
1
7mo[WhiteOnionMiner (0xba5b...de3f)]( https://dark.vegas/authors/0xba5bfcdd728731a80acd24e2849177a7e942de3f )
[US IRS new regulations require DeFi front-ends to KYC their users]( https://dark.vegas/news/spasmid0150dee63339f654b7e0974 )
1 3 1
Loading...
Loading... Load more
Show feed
DarkVegasforum
Lunarpunk message board
Session: [darkvegas]( https://getsession.org/ )
Follow: [Nostr]( https://satellite.earth/@npub1c7atcdzugulqq2x8cufyycs593pmlcg85zl7gfrrgza4gyazcnqsdn5zen )[Hive]( https://leofinance.io/profile/darkvegas/blog )[Mirror]( https://mirror.xyz/darkvegas.eth )
\- Connect a browser extension (MetaMask, Rabby, nos2x, Flamingo) or log in as a guest.
\- Sign all comments and reactions with your Ethereum or Nostr private keys.
\- Never sign any messages that you don't understand.
\- This forum is part of the [Spasm]( https://spasm.network/ ) network.
SHOW FEED
Latest comments:
show details
[ZeroSpaceHacker (0xd0e9...b5ff)]( https://dark.vegas/authors/0xd0e97d0567b2175d2c982234093364c4e4f0b5ff )[Open on external website]( https://etherscan.io/address/0xd0e97d0567b2175d2c982234093364c4e4f0b5ff "Open on external website") [(Fri Aug 08 2025)]( https://dark.vegas/news/spasmid01abb8da96f76a3f55b6961 )
Of course the jury found Roman guilty. They're just a collection of average joes, too ignorant to understand freedom and privacy, but happy to obey every rule like good compliant slaves. Tornado Cash devs should have remained anonymous. Their failure to safeguard their privacy has now left them to face the consequences.
reply
[NewSourceRouter (0xcd7b...f0a3)]( https://dark.vegas/authors/0xcd7b311b4683b54e323c5aeabdbc260b14bbf0a3 )[Open on external website]( https://etherscan.io/address/0xcd7b311b4683b54e323c5aeabdbc260b14bbf0a3 "Open on external website") [(Tue Aug 05 2025)]( https://dark.vegas/news/spasmid01c2000fba68aba3324650c )
Copyright laws are anti-free speech
reply
[PirateCypherBot (0xeebe...28a4)]( https://dark.vegas/authors/0xeebe40ccc0acb2a09413cff1fc4fcf9ccc2a28a4 )[Open on external website]( https://etherscan.io/address/0xeebe40ccc0acb2a09413cff1fc4fcf9ccc2a28a4 "Open on external website") [(Mon Aug 04 2025)]( https://dark.vegas/news/spasmid018d8525dd3ea91c2bac867 )
Insider trading laws are bs, people should be able to trade assets as they want, as long as they are not regulators.
reply
[FreeSolarBurner (0x82c7...88d6)]( https://dark.vegas/authors/0x82c7423be7f4d55830af4fd4460a0619981a88d6 )[Open on external website]( https://etherscan.io/address/0x82c7423be7f4d55830af4fd4460a0619981a88d6 "Open on external website") [(Sun Aug 03 2025)]( https://dark.vegas/news/spasmid0117f9241e288cf0f3ad390 )
There are launchpads that allow launching tokens directly on Ethereum.
reply
[QuantumSolarPunk (0x9a92...504a)]( https://dark.vegas/authors/0x9a927b23b18542492d73e37248542131a7c1504a )[Open on external website]( https://etherscan.io/address/0x9a927b23b18542492d73e37248542131a7c1504a "Open on external website") [(Sat Aug 02 2025)]( https://dark.vegas/news/spasmid01aff76c7f1ccd7c6c65b77 )
Any token launched on Base or Solana can be bridged to Ethereum
[1]( https://dark.vegas/news/?p=0xfb8e7c0d07034c0c6c9e0b277b11e47e45382873b19c48209b30545c196386da0253038d658b8f314bb679b6713b7431d9e88ec8f65836d96a7c36c5958104c01b )
reply
[EncodedDefiRebel (0x7b2e...94a7)]( https://dark.vegas/authors/0x7b2e4f94ff5fcf5ec1f5192ce62a934b580b94a7 )[Open on external website]( https://etherscan.io/address/0x7b2e4f94ff5fcf5ec1f5192ce62a934b580b94a7 "Open on external website") [(Fri Aug 01 2025)]( https://dark.vegas/news/spasmid015b2fc954b53a007831b5a )
It was probably a special offer because if you click 'create agent', you will only see two options, Base or Solana.
[1]( https://dark.vegas/news/?p=0x22232dcad21cffeea2ce33e48d9ffbdb6e14c9e1587b988891be0fcc2924d3b52e6b6d4d6b35169ee5b35e56c0f2e83f82a86ab57b1a40bca064537b051e75ac1c )
reply
[GreenHashCyborg (0x6c66...6006)]( https://dark.vegas/authors/0x6c66d5d8b42618ab44565c24854b50ffbad06006 )[Open on external website]( https://etherscan.io/address/0x6c66d5d8b42618ab44565c24854b50ffbad06006 "Open on external website") [(Fri Aug 01 2025)]( https://dark.vegas/news/spasmid01f80f8bdc1ba50e3361dc0 )
STRATOS and IRIS launched on the Ethereum mainnet in June. IRIS FDV is $63M, the highest FDV of all genesis projects on Virtuals. [ https://app.virtuals.io/virtuals/29015 ]( https://app.virtuals.io/virtuals/29015 )
[1]( https://dark.vegas/news/?p=0xdb2841666cf0fe5ae77dd7c8018c3b4f8eaf574c0efc6de7c5c6f830c0411adf006c4dde4247bb4f07ca51ee5c7d6eefc8c27412c9ed9983c58359ee6aa87b791c )
reply
[FluffyCultHodler (0x8bd4...2ce0)]( https://dark.vegas/authors/0x8bd4311b2d454d7b2a6145f53b7bf8998ba72ce0 )[Open on external website]( https://etherscan.io/address/0x8bd4311b2d454d7b2a6145f53b7bf8998ba72ce0 "Open on external website") [(Fri Aug 01 2025)]( https://dark.vegas/news/spasmid01ad2f5e5a9f2581ad04d9e )
Virtuals only supports Base and Solana at the moment
[1]( https://dark.vegas/news/?p=0xe7fe9c13f2e9c868143c65e4b58ee8315557ebd2102dc5543f3728ec9fad04695a0507bc41e4f0f8de1e5e65c95753c065e4ea2a5ca54f08a5594acb9fbe397d1c )
reply
[QuantumCultRebel (0xe2cd...334c)]( https://dark.vegas/authors/0xe2cdecada7604f13fb0fe26be9e7b1632201334c )[Open on external website]( https://etherscan.io/address/0xe2cdecada7604f13fb0fe26be9e7b1632201334c "Open on external website") [(Fri Aug 01 2025)]( https://dark.vegas/news/spasmid0129cb381e9fba1ad7b57c7 )
Launching a token might be useful, but you'll have to think about how that token will be used in the network.
reply
[OrangeFossHodler (0x2f1b...2b61)]( https://dark.vegas/authors/0x2f1bab94fe3b39d265479c8341ef6086aed52b61 )[Open on external website]( https://etherscan.io/address/0x2f1bab94fe3b39d265479c8341ef6086aed52b61 "Open on external website") [(Fri Aug 01 2025)]( https://dark.vegas/news/spasmid014f2fa2c47c68102cec7bb )
Fuck VCs, Virtuals LGTM!
reply
[DecodedDefiMiner (0xca76...3eb3)]( https://dark.vegas/authors/0xca76c74c019e62ddf401102ede899078fc213eb3 )[Open on external website]( https://etherscan.io/address/0xca76c74c019e62ddf401102ede899078fc213eb3 "Open on external website") [(Wed Jul 30 2025)]( https://dark.vegas/news/spasmid015ac52c34cc564b460c009 )
The attacker controls a very small amount of Monero hashrate, so the attack doesn't seem to work.
[ https://simplifiedprivacy.com/fake-ponzi-scheme-to/hijack-monero.html ]( https://simplifiedprivacy.com/fake-ponzi-scheme-to/hijack-monero.html )
reply
[GoldenDefiHacker (0xdea7...59aa)]( https://dark.vegas/authors/0xdea7ab1598507298ab84bff3c3c2f030b67259aa )[Open on external website]( https://etherscan.io/address/0xdea7ab1598507298ab84bff3c3c2f030b67259aa "Open on external website") [(Tue Jul 29 2025)]( https://dark.vegas/news/spasmid01ab21c4411d27ff805e90d )
PumpFun didn't even do any airdrops, which clearly shows their intention.
reply
[StableMoonCyborg (0x1bad...ef6b)]( https://dark.vegas/authors/0x1bade380c41e2aa43d5a9ffa5354345111fdef6b )[Open on external website]( https://etherscan.io/address/0x1bade380c41e2aa43d5a9ffa5354345111fdef6b "Open on external website") [(Tue Jul 29 2025)]( https://dark.vegas/news/spasmid01bff5b4db0413a299342db )
Pump token launch was the last attempt to cash out since pump.fun is losing its market dominance to better alternatives.
[1]( https://dark.vegas/news/?p=0x26e23c9b1499b1139f7da9f7a3198e2d4b6ed387fec6b534a9a9b3042c4e863a30d0c782c67dd2e095e13de214205991ab7ad2749521f58caf1ed800cfa846e31b )
reply
[IndieFossSigner (0xe388...973c)]( https://dark.vegas/authors/0xe388607f726fbecf8da44eaeb40e31ed57ff973c )[Open on external website]( https://etherscan.io/address/0xe388607f726fbecf8da44eaeb40e31ed57ff973c "Open on external website") [(Mon Jul 28 2025)]( https://dark.vegas/news/spasmid0157204bae9d71bf1845759 )
It's outrageous that the government is planning to go after Dragonfly for investing in Tornado Cash. Who's next? Hosting providers?
reply
[UnstableMarsDev (0x6a4f...7644)]( https://dark.vegas/authors/0x6a4fa25137b894017bf0c4e5ddd8384abbec7644 )[Open on external website]( https://etherscan.io/address/0x6a4fa25137b894017bf0c4e5ddd8384abbec7644 "Open on external website") [(Sun Jul 27 2025)]( https://dark.vegas/news/spasmid0123fffd1f49068a33b1066 )
More details on the Monero 51% attack from operator of Qubic pool - [ https://archive.is/chUfg ]( https://archive.is/chUfg )
[1]( https://dark.vegas/news/?p=0x7737990f97aa09e207a63e1825b1bc334e63b36bf560756a0856a2c2500f2e6458085a6c6d86a78710e4e01d6b0d77a04e9fb71684a384a1a24201fbeeba4f0b1b )
reply
## https://dark.vegas/newpost
Feed
[Home]( https://dark.vegas/ )
[Publish]( https://dark.vegas/newpost )
[Contacts]( https://dark.vegas/contacts )
Connect
hot
rising
all
1d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm.js v2.0.0 Release Candidate: Ready for Your Feedback]( https://dark.vegas/news/note1uxwvg35rgkppcj5flpk948wqr7qd06jhux7zrfvu53kjvruq079s7pz2dj )
17d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm Report: July 2025]( https://dark.vegas/news/note1nvk82adjxyzxdjnjjre0gh35ecrmzexva5eqjmdqp8cw3fgvj5kseysq4l )
17d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm on Virtuals]( https://dark.vegas/news/note193eee5mgzxsemm7064mcqajsxhnfr6nzdluhwv8tpahchc8uv47sjq2424 )
20d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Official Spasm forum is live]( https://dark.vegas/news/note1xzmu7zu9lqfywumnch57hpptwj8m6sttcea9ennhlyy838rrfg9qp2qsvl )
20d[SilverKeyHamster (0x425c...1dc2)]( https://dark.vegas/authors/0x425ced15c5daf6b71167b2d5e7fa92e008291dc2 )
[Monero mining pool Qubic is planning to reach 51% of the hashrate]( https://dark.vegas/news/spasmid01d1b6543e621ecbfb14702 )
1mo[BlueLinuxHamster (0xe744...8875)]( https://dark.vegas/authors/0xe7447cb6c9286eb6cae219805eb7065fba5c8875 )
[Centralization of XMR market and tracking every transaction]( https://dark.vegas/news/spasmid01368a969e405b322a01e59 )
2mo[NeonMeshDev (0xf4ac...4394)]( https://dark.vegas/authors/0xf4ac05fb2ef997626393298309a5e09a53074394 )
[A critical flaw in OpenPGP.js lets attackers spoof message signatures]( https://dark.vegas/news/spasmid01ad16efe86300c02036a8b )
2
3mo[PirateSourceDev (0x7208...0672)]( https://dark.vegas/authors/0x7208f29b8d5e2115119170caf644a45a031c0672 )
[Monero Ring Signature Privacy Vulnerability Discovered]( https://dark.vegas/news/spasmid01405cff55a42470c978d7a )
1
3mo[SwappingZkBot (npub1q...3px8)]( https://dark.vegas/authors/0511ea487b4d728fb109f502f0773756f3e2498c9447544d5ac8ea0bbc195fb4 )
[Nostr Features are Now Live!]( https://dark.vegas/news/note18ul0a0fcl8am42r5ha4t0vkuqv5r7yyduju8tzkrfum58xlzlz4srdaldm )
1
3mo[GreenDegenMinter (0xf387...cdad)]( https://dark.vegas/authors/0xf387f177e990aaad89cf398b9e709069aab9cdad )
[Monero Price Soars to 4-Year High After Alleged $330M Bitcoin Hack]( https://dark.vegas/news/spasmid01f29fb3383747337db6180 )
1
4mo[BlackLinuxForker (0x435d...a04b)]( https://dark.vegas/authors/0x435dacc970e867453685f26f6a35dbc81ad4a04b )
[dark.fi]( https://dark.vegas/news/spasmid01f6ef513c0e717e112a19e )
1
4mo[ZeroLinuxNoncer (0x2a4e...5237)]( https://dark.vegas/authors/0x2a4e458b25f2a630a0485a5b6f2c36a275975237 )
[Shillo: AI Token Launchpad – 24/7 shilling, real-time updates, and effortless community growth.]( https://dark.vegas/news/spasmid01185d982c9dac2d3e27e01 )
5mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Session vs SimpleX: fuck the fluff]( https://dark.vegas/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz )
6
5mo[PurpleMarsHodler (npub1k...mr0z)]( https://dark.vegas/authors/b3a706bcceb39f193da553ce76255dd6ba5b097001c8ef85ff1b92e994894c81 )
[Spasm playground - all nonsense welcome]( https://dark.vegas/news/note1y3thmts6ljnx92f4nsqvjzsn3umk9257y0lc3menaxtv3f4ppq8sttaly3 )
1
6mo[ZeroSolarMixer (npub1q...p2hs)]( https://dark.vegas/authors/04572dabb7c9f8d2633dddd36ea8d7a2f7a3bff6acb5e08dc53f2b76ceeb2385 )
[Alternative no-KYC Monero off-ramps on XMRBazaar]( https://dark.vegas/news/note1acg27ms2mw2jc2yzyyrgn7l977mfsgqvwj8x7z8nnrj0lhsz4trqtpweyz )
1
6mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm V2: decentralized social media for AI agents. AMA.]( https://dark.vegas/news/note1xcukq4nr00qx09jw5jrh4zqz5jn7t2wzkf0z7pta3t0yh29hj8qqnzmca3 )
1 4
6mo[UnbankedZkNoncer (0x0ead...ebbe)]( https://dark.vegas/authors/0x0ead800926d731fa0e58f59ea19282806fa9ebbe )
[Ross Ulbricht is finally free]( https://dark.vegas/news/spasmid01caa9a1041c439516ca775 )
2 1
6mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm admin dashboard released]( https://dark.vegas/news/note1ujr9cma0v7vz4ayl6px4apn87z74gn0cp0wvyvvha0hvgkm04mcsfqwvu6 )
2
7mo[RedCodeBuilder (0x28d4...0177)]( https://dark.vegas/authors/0x28d4a758e2df892d101aee3e119929d2ec0d0177 )
[List of useful Monero resources]( https://dark.vegas/news/spasmid01897d879b101bd6ff86992 )
1
7mo[WhiteOnionMiner (0xba5b...de3f)]( https://dark.vegas/authors/0xba5bfcdd728731a80acd24e2849177a7e942de3f )
[US IRS new regulations require DeFi front-ends to KYC their users]( https://dark.vegas/news/spasmid0150dee63339f654b7e0974 )
1 3 1
Loading...
Loading... Load more
Show feed
This instance requires addresses to be whitelisted in order to create new posts.
Connect your address using the 'connect' button to see whether you've been whitelisted to create new posts on this instance.
## https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa
Feed
[Home]( https://dark.vegas/ )
[Publish]( https://dark.vegas/newpost )
[Contacts]( https://dark.vegas/contacts )
Connect
hot
rising
all
1d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm.js v2.0.0 Release Candidate: Ready for Your Feedback]( https://dark.vegas/news/note1uxwvg35rgkppcj5flpk948wqr7qd06jhux7zrfvu53kjvruq079s7pz2dj )
17d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm Report: July 2025]( https://dark.vegas/news/note1nvk82adjxyzxdjnjjre0gh35ecrmzexva5eqjmdqp8cw3fgvj5kseysq4l )
17d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm on Virtuals]( https://dark.vegas/news/note193eee5mgzxsemm7064mcqajsxhnfr6nzdluhwv8tpahchc8uv47sjq2424 )
20d[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Official Spasm forum is live]( https://dark.vegas/news/note1xzmu7zu9lqfywumnch57hpptwj8m6sttcea9ennhlyy838rrfg9qp2qsvl )
20d[SilverKeyHamster (0x425c...1dc2)]( https://dark.vegas/authors/0x425ced15c5daf6b71167b2d5e7fa92e008291dc2 )
[Monero mining pool Qubic is planning to reach 51% of the hashrate]( https://dark.vegas/news/spasmid01d1b6543e621ecbfb14702 )
1mo[BlueLinuxHamster (0xe744...8875)]( https://dark.vegas/authors/0xe7447cb6c9286eb6cae219805eb7065fba5c8875 )
[Centralization of XMR market and tracking every transaction]( https://dark.vegas/news/spasmid01368a969e405b322a01e59 )
2mo[NeonMeshDev (0xf4ac...4394)]( https://dark.vegas/authors/0xf4ac05fb2ef997626393298309a5e09a53074394 )
[A critical flaw in OpenPGP.js lets attackers spoof message signatures]( https://dark.vegas/news/spasmid01ad16efe86300c02036a8b )
2
3mo[PirateSourceDev (0x7208...0672)]( https://dark.vegas/authors/0x7208f29b8d5e2115119170caf644a45a031c0672 )
[Monero Ring Signature Privacy Vulnerability Discovered]( https://dark.vegas/news/spasmid01405cff55a42470c978d7a )
1
3mo[SwappingZkBot (npub1q...3px8)]( https://dark.vegas/authors/0511ea487b4d728fb109f502f0773756f3e2498c9447544d5ac8ea0bbc195fb4 )
[Nostr Features are Now Live!]( https://dark.vegas/news/note18ul0a0fcl8am42r5ha4t0vkuqv5r7yyduju8tzkrfum58xlzlz4srdaldm )
1
3mo[GreenDegenMinter (0xf387...cdad)]( https://dark.vegas/authors/0xf387f177e990aaad89cf398b9e709069aab9cdad )
[Monero Price Soars to 4-Year High After Alleged $330M Bitcoin Hack]( https://dark.vegas/news/spasmid01f29fb3383747337db6180 )
1
4mo[BlackLinuxForker (0x435d...a04b)]( https://dark.vegas/authors/0x435dacc970e867453685f26f6a35dbc81ad4a04b )
[dark.fi]( https://dark.vegas/news/spasmid01f6ef513c0e717e112a19e )
1
4mo[ZeroLinuxNoncer (0x2a4e...5237)]( https://dark.vegas/authors/0x2a4e458b25f2a630a0485a5b6f2c36a275975237 )
[Shillo: AI Token Launchpad – 24/7 shilling, real-time updates, and effortless community growth.]( https://dark.vegas/news/spasmid01185d982c9dac2d3e27e01 )
5mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Session vs SimpleX: fuck the fluff]( https://dark.vegas/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz )
6
5mo[PurpleMarsHodler (npub1k...mr0z)]( https://dark.vegas/authors/b3a706bcceb39f193da553ce76255dd6ba5b097001c8ef85ff1b92e994894c81 )
[Spasm playground - all nonsense welcome]( https://dark.vegas/news/note1y3thmts6ljnx92f4nsqvjzsn3umk9257y0lc3menaxtv3f4ppq8sttaly3 )
1
6mo[ZeroSolarMixer (npub1q...p2hs)]( https://dark.vegas/authors/04572dabb7c9f8d2633dddd36ea8d7a2f7a3bff6acb5e08dc53f2b76ceeb2385 )
[Alternative no-KYC Monero off-ramps on XMRBazaar]( https://dark.vegas/news/note1acg27ms2mw2jc2yzyyrgn7l977mfsgqvwj8x7z8nnrj0lhsz4trqtpweyz )
1
6mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm V2: decentralized social media for AI agents. AMA.]( https://dark.vegas/news/note1xcukq4nr00qx09jw5jrh4zqz5jn7t2wzkf0z7pta3t0yh29hj8qqnzmca3 )
1 4
6mo[UnbankedZkNoncer (0x0ead...ebbe)]( https://dark.vegas/authors/0x0ead800926d731fa0e58f59ea19282806fa9ebbe )
[Ross Ulbricht is finally free]( https://dark.vegas/news/spasmid01caa9a1041c439516ca775 )
2 1
6mo[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )
[Spasm admin dashboard released]( https://dark.vegas/news/note1ujr9cma0v7vz4ayl6px4apn87z74gn0cp0wvyvvha0hvgkm04mcsfqwvu6 )
2
7mo[RedCodeBuilder (0x28d4...0177)]( https://dark.vegas/authors/0x28d4a758e2df892d101aee3e119929d2ec0d0177 )
[List of useful Monero resources]( https://dark.vegas/news/spasmid01897d879b101bd6ff86992 )
1
7mo[WhiteOnionMiner (0xba5b...de3f)]( https://dark.vegas/authors/0xba5bfcdd728731a80acd24e2849177a7e942de3f )
[US IRS new regulations require DeFi front-ends to KYC their users]( https://dark.vegas/news/spasmid0150dee63339f654b7e0974 )
1 3 1
Loading...
Loading... Load more
Show feed
Auto-generated name:
BlackSpaceDev
Address:
0xf8553015220a857eda377a1e903c9e5afb3ac2fa Follow [Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website")
Networks: Spasm
show details
Spasm network:
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Mon Aug 18 2025)]( https://dark.vegas/news/note1uxwvg35rgkppcj5flpk948wqr7qd06jhux7zrfvu53kjvruq079s7pz2dj )
###### Spasm.js v2.0.0 Release Candidate: Ready for Your Feedback
After a year of rigorous testing, Spasm.js v2.0.0 is stepping up from beta to release candidate status. Introduced in 2024, the new version brought groundbreaking features like multi-signing, propelling social media into the future. Now, it's your turn to test and shape the final version!
[ https://www.npmjs.com/package/spasm.js ]( https://www.npmjs.com/package/spasm.js )
* * *
The Signer and Protocol Agnostic Social Media (Spasm) is the future of social media. It's the only truly open ecosystem, which is agnostic to signing keys, messaging protocols, transport layers, and storage infrastructure. Users are able to sign messages with any private key of their choice and trigger the propagation of those messages in any network they want via any transport protocol, or even all at once.
The Spasm network consists of independent self-hosted interoperable instances run by DAOs, local communities, and other freedom seekers who want to escape censorship and surveillance of centralized platforms.
The Spasm ecosystem is the next generation in the evolution of social media after various signature-based decentralized ecosystems like Secure Scuttlebutt (SSB), Steem/Hive, Nostr, Farcaster, Lens, Bluesky, etc.
Connect your Ethereum or Nostr browser extension and join the future of social media.
> not your keys, not your words
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Fri Aug 01 2025)]( https://dark.vegas/news/note1nvk82adjxyzxdjnjjre0gh35ecrmzexva5eqjmdqp8cw3fgvj5kseysq4l )
###### Spasm Report: July 2025
Check out the latest in the Spasm ecosystem:
- New Spasm forum is up: [ https://forum.spasm.network ]( https://forum.spasm.network/ )
- Official website refreshed with new sections: [ https://spasm.network ]( https://spasm.network/ )
- Docs expanded with new pages and FAQs: [ https://docs.spasm.network ]( https://docs.spasm.network/ )
- More slides added to presentation: [ https://slides.spasm.network ]( https://slides.spasm.network/ )
- DegenRocket web/server and spasm.js npm library got new tests and fixes: [ https://github.com/degenrocket ]( https://github.com/degenrocket )
Plus, we're eyeing Virtuals Genesis Launch to boost the ecosystem: [ https://forum.spasm.network/news/spasmid0126e98616d9a04eeb399bc ]( https://forum.spasm.network/news/spasmid0126e98616d9a04eeb399bc )
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Thu Jul 31 2025)]( https://dark.vegas/news/note193eee5mgzxsemm7064mcqajsxhnfr6nzdluhwv8tpahchc8uv47sjq2424 )
###### Spasm on Virtuals
We're looking into leveraging an existing launchpad to get more attention and grow the Spasm ecosystem, while keeping things independent and avoiding the traditional routes of VCs and grants, which usually compromise privacy and project autonomy.
Spasm has been under development for over four years, but the ecosystem could really use a boost to hit the next level. We think that a launchpad could be the perfect catalyst.
Out of all the launchpads, the Virtuals ecosystem stands out as the top contender, because it provides an excellent opportunity to integrate Spasm-powered solutions into the emerging agentic economy.
What are your thoughts on the Virtuals ecosystem and ideas about Spasm tokenomics? From token use cases and initial allocations to airdrops, let's hear your thoughts!
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Wed Jul 16 2025)]( https://dark.vegas/news/note1xzmu7zu9lqfywumnch57hpptwj8m6sttcea9ennhlyy838rrfg9qp2qsvl )
###### Official Spasm forum is live
You can now find all Spasm-related announcements and submit your feedback, ideas, feature requests, bug reports, and share memes on the official forum at [ https://forum.spasm.network ]( https://forum.spasm.network/ )
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Fri May 09 2025)]( https://dark.vegas/news/note13sg9lpm5srxxs53km957vly4tc8fr3am39nsn4d2r9axvepcdftqzhf30c )
Great news! I'd also add that [ https://forum.simplifiedprivacy.com ]( https://forum.simplifiedprivacy.com/ ) now supports multi-signing similar to other Spasm instances, allowing users to sign the same message with different private keys and different messaging protocols and send it to different networks, while still having the same deterministic Spasm ID, meaning that all reactions and replies can be properly chained to the parent event regardless of the network they came from.
Why would anybody sign a message with multiple keys? For example, you want to get benefits from different ecosystems. Non-unique usernames can be fetched from Nostr meta events (kind 0), while unique usernames can be fetched from blockchain-based NFT-powered naming services like ENS. Nostr users can follow you on Nostr, while Ethereum users can follow you on Lens, Farcaster, and other Ethereum-based social media platforms.
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Tue Apr 22 2025)]( https://dark.vegas/news/note1gvdk9uwrcjmulj3jhfd0lyvrsa963ypcg99at97jgtn3py54hpaqywvst8 )
Yeah, I've seen your posts, some of them propagated through the Spasm network from the RebelNet instance.
Since you're using a Nostr private key to sign your messages, you can also try sending them to both Spasm and Nostr networks at the same time. There are 'Spasm' and 'Nostr' checkboxes below a 'sign message' button.
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Fri Apr 25 2025)]( https://dark.vegas/news/note1avuxy55l2a386mqmcdzrve3prc7wsd5sch4x5sjw3s9ay4yeyxwqyrvdnf )
> It would be nice if there was a business model for nodes and node competition at the protocol level.
No, that's a recipe for creating a closed ecosystem that limits freedoms and stifles innovation similar to having a strong federal government that sets all the rules like requiring all devices to have a USB-C port.
Unlike Nostr or other decentralized social media solutions, Spasm is the future of social media because it's the only fully agnostic open ecosystem that doesn't limit developers or users.
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Wed Apr 23 2025)]( https://dark.vegas/news/note15gccjwy2w06jlpvgvjmn3t2c7lx5pd285n0hrx4n7km53n5tsjesuhm7k8 )
Well, the Church of Fluffy Pony is doing exactly the same to Ethereum, Solana, DeFi, and memecoins, failing to admit that Bitcoin itself is the oldest memecoin.
Try being completely bankless with just BTC and XMR, it's very hard. Now, other ecosystems like Ethereum and Solana give you permissionless self-custodial access to stablecoins, trading, leverage, prediction markets, governance, unique usernames, non-Nostr-based social graph solutions, and Spasm-powered forums.
As a freeman, I don't limit my freedom with religious crypto bs, so I use all of the above.
Monero - payments
Bitcoin - conservative savings
Ethereum - DeFi, NFTs, voting, usernames, Spasm
Solana - memecoins
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Tue Apr 22 2025)]( https://dark.vegas/news/note193ffzcunvnuwvffyhkqrya2upvtvkh83ecrs0ua7h0efqtay5n4qx2spsk )
Hey Ross, glad to see you on Nostr.
I've read your medium article. You're thinking within slave tech architecture, even your terminology like decentralized social protocol (DSP) is from the dinosaur era. The problem of most decentralized social media ecosystems is that they try to create a native solution for everything. Spasm is different because it's modular and agnostic, that's why it's the endgame of social media.
Don't get me wrong, I like Nostr, I know many Nostr devs, I was one of the winners of the first Nostr hackathon, and I've started integrating Nostr into Spasm in 2023. That said, Nostr is a closed ecosystem and it's at least one generation behind Spasm.
Let me take you on a wild Spasm ride so you can understand what I mean.
Firstly, let's see why Nostr is a closed ecosystem. Note that I use "ecosystem", not "protocol".
- Nostr locks you to one specific private key.
- Nostr locks you to one specific messaging protocol.
- All native Nostr apps support only one network.
- Most Nostr users use native mobile apps, which don't provide much freedom to e.g. sign arbitrary messages like web3 browser extensions.
- Nostr's most popular npm package 'nostr-tools' doesn't even expose a function to sign arbitrary messages, which is the most basic expectation of pretty much any other web3 library.
- The most popular Nostr app, Damus, is literally an iOS app.
- Most core devs are bitcoin maxis.
- The Nostr network is pretty centralized.
In other words, Nostr, SSB, Lens, Farcaster, Steem/Hive, Bluesky are much more open ecosystems than legacy social media platforms. However, when Spasm entered the room, the bar was raised so high that it became obvious that Spasm is the only truly open ecosystem, leaving all previous generations of social media as closed ecosystems.
Let's look at a few examples and how issues raised in your article can be solved.
Usernames are easily solved with an agnostic solution. Since Spasm supports different private keys, it can get the best from different ecosystems. For example, a non-unique name and bio can be fetched from Nostr, while a unique username can be fetched from various blockchain-based naming services like ENS. And there are privacy-preserving blockchain-based solutions, e.g., Zano aliases. Zano private keys have not been integrated into Spasm yet, but we've already discussed that option and it might happen this or next year.
Spasm is capable of what you're describing in the article because it can gather content from different networks, including Twitter-style social graph-based friend circles and Reddit-style niche forums.
The Spasm-powered forum also supports groundbreaking multi-signing, which allows users to sign the same message with different private keys and different messaging protocols and send it to different networks, while still having the same deterministic Spasm ID, meaning that all reactions and replies can be properly chained to the parent event regardless of the network they came from.
For example, I've published a detailed review of Session vs SimpleX architectures on MoneroTop.
[ https://monero.top/news/spasmid010a70651fc27fb9125f7ea ]( https://monero.top/news/spasmid010a70651fc27fb9125f7ea )
However, you can read the same article on DegenRocket because it partially federates with MoneroTop.
[ https://degenrocket.space/news/spasmid010a70651fc27fb9125f7ea ]( https://degenrocket.space/news/spasmid010a70651fc27fb9125f7ea )
You can also read it on other Spasm instances that federate with DegenRocket using short or long Spasm ID, e.g.:
[ https://dark.vegas/news/spasmid010a70651fc27fb9125f7ea9f945d6add3530af91c829cdc414bcd5dda080f3020 ]( https://dark.vegas/news/spasmid010a70651fc27fb9125f7ea9f945d6add3530af91c829cdc414bcd5dda080f3020 )
Since that event is multi-signed with both Ethereum and Nostr private keys, it has multiple IDs, so you can access it using a Nostr ID on any of the instances mentioned above, e.g.:
[ https://monero.top/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz ]( https://monero.top/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz )
Additionally, this event was pushed to the Nostr network, so you can find it via your native Nostr app, e.g.:
nostr:note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz
Thus, you can get benefits from different networks and blockchains like Nostr's social graph and profile info as well as Ethereum-based social graphs provided by Farcaster or Lens and unique blockchain-based usernames like ENS. Nostr integration has already been implemented, while Farcaster, Lens, ENS, and other Ethereum-related integrations can be added later.
You can reply to the event with Ethereum or Nostr browser extension on a Spasm instance or using your native Nostr app as if it was a usual Nostr event.
Spasm-powered forums use reactions instead of flags, which can be used to filter content. Spasm instances can choose which reactions to use.
You're also focusing too much on ads in your article, which are mostly used in highly centralized networks with millions of users who don't have a habit of paying for social media services. There are many other ways to sustain a decentralized network, especially if it's not based on a social graph. Most Nostr apps currently rely on a social graph to show messages from a follow list and that requires huge Nostr relays with millions of events in order to provide good UX, which leads to centralization of the network.
There are other approaches, though. For example, Spasm is an agnostic solution, so it supports not only the Nostr network, but also other networks with different models of content distribution. Spasm-powered forums are mostly targeting many niche communities, which often don't require any ads to pay for infrastructure. Think about a conference that runs a Spasm instance so users can discuss details of the upcoming events on one forum, or a marketplace that runs a forum to discuss different products and vendors, or any other business or local community that can host a forum without serving any ads. These forums can also federate with each other, creating a highly decentralized and censorship-resistant network that doesn't rely on ads.
Let me know if you want to learn more about Spasm and the future of social media in general. You can reply to this message, send me DM on Nostr, find me on Session at 'degenrocket', or simply read more at [ https://spasm.network ]( https://spasm.network/ )
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Thu Apr 24 2025)]( https://dark.vegas/news/note1gjejez4lqc6d9z5kyrgzyhv960cfh8nspgadfhmqv7ktd7d8jg6sg8n24g )
> That statement is incorrect. Queue identifier is different for each pair of users, not for each user, so it cannot be used to understand who is connected to whom, and even how many users are there.
That statement is correct. I'm not sure which part of the statement you disagree with, so let's break it down into two parts.
The first part simply acknowledges that SimpleX has a message queue identifier (ID) for each contact/chat, which is clearly written in its docs. For example, if Alice opens three one-on-one chats with three contacts, she will have three chat IDs, which will be used to receive messages. Are you challenging this part?
The second part says that these IDs can be correlated through a metadata analysis. I described a few attacks in the article. For example, Alice goes online and checks if she has any new messages by providing these three IDs, which can be easily correlated into a shadow account based on timestamps and an IP address. That's also referred to as clustering of request batches. Are you challenging this part?
> That is not clear what metadata is suggested to analyse here. This can be done with GPA traffic analysis, but the same would apply to any network. Asynchronous delivery makes such attacks harder.
Timestamps, IP addresses, and even internet speed/ping can be used to correlate chat IDs into shadow accounts, I've explained that in the article and also in the Alice example above. Other networks (Tor, Session) have better metadata protections due to a proper 3-hop onion routing. That said, most networks are vulnerable to timestamp-based attacks, but they usually don't claim to be "100% private" with no IDs, etc.
> This is incorrect. Tor has three relays between the user and destination computer. SimpleX has two relays between the user and destination computer. So it's either 1 vs 2 hops, or 2 vs 3 hops. Unless you are counting some different hops.
SimpleX uses a 1-hop routing. I've already provided an example with Session in the article, but since you insist, let's also compare SimpleX with using a centralized messaging app via Tor.
`SimpleX: Alice - 1 relay - receiving server - Bob`
`TG+Tor: Alice - 3 relays - Telegram server - Bob`
1 vs 3 hops. Please provide an example if you dispute this statement.
And I'll repeat again the Session example from the article.
`SimpleX: Alice - 1 relay - server - Bob`
`Session: Alice - 3 relays - swarm - 3 relays - Bob`
Depending on your counting method, it's either 1 vs 6 hops or 2 vs 7 hops. Basically, five hops less.
Are you disputing this? Please provide an example.
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Fri Apr 25 2025)]( https://dark.vegas/news/note12r08d20zuufs8zy9j62cwj4h6wwnjkg3rcp465hm7ejerk7skepqjp7zpg )
As far as I remember, Watchman Privacy was very soft when it comes to privacy and he had a paywalled privacy guide. I've once listened to his podcast episode with SimpleX's CEO Evgeny Poberezkin and it was such a softball interview. In other words, that interview did more harm than good. That said, I haven't followed Watchman Privacy, so he might have some good content as well. If anybody wants to interview SimpleX devs, please do some research first, you can start with this article - [ https://monero.top/news/spasmid010a70651fc27fb9125f7ea ]( https://monero.top/news/spasmid010a70651fc27fb9125f7ea )
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Mon Mar 17 2025)]( https://dark.vegas/news/note1ghaws3hgxqwe2tls487n5wj4esml4c0edzr9hqf9wly39gqldaqsh3mf04 )
> But I agree that it seems Simplex is being more deceptive. But both are bad.
Just like in politics, it's on journalists and industry experts to scrutinize projects like Session and SimpleX. Sadly, they've been letting it slide for the last few years.
Hopefully this article sparks some tough questions, especially about SimpleX's architecture, its misleading marketing practices, and the Trail of Bits audit. To make sure that we get an actual private messenger privacy experts should be grilling SimpleX, not giving it a free pass.
reply
[BlackSpaceDev (0xf855...c2fa)]( https://dark.vegas/authors/0xf8553015220a857eda377a1e903c9e5afb3ac2fa )[Open on external website]( https://etherscan.io/address/0xf8553015220a857eda377a1e903c9e5afb3ac2fa "Open on external website") [(Sat Mar 15 2025)]( https://dark.vegas/news/note1e94uvd0vx2k9mgdgnzzpqmdh0swkqmkhq6uy4c2g3pganxy96pvqlkvmsz )
###### Session vs SimpleX: fuck the fluff
Being a long-time user of Session and SimpleX, I never had a chance to write down a proper review of both architectures, despite being asked to do so. Well, the time has come.
This multi-signed message will be pushed to Spasm and Nostr networks, so you can reply with Ethereum and Nostr private keys. I haven't added editing to Spasm yet and Nostr notes cannot be edited by design, so any edit/update will be added as a comment to this post.
I've just finished watching an interesting interview with Session CTO KeeJef hosted by ShadowRebel from SimplifiedPrivacy. I'd highly recommend to check it out if you can handle very poor audio quality and disrupting video. It's still not a proper Session vs SimpleX debate, but ShadowRebel did a pretty good job asking many important questions about Session's architecture, unlike many other privacy soy boys.
[ https://simplifiedprivacy.com/interview-session-messenger/keejef-vs-simplex.html ]( https://simplifiedprivacy.com/interview-session-messenger/keejef-vs-simplex.html )
I've also recently approached many famous privacy influencers trying to onboard them to Spasm and I've been surprised by a few things:
- the majority of them have not yet transitioned to web3,
- literally nobody lists Session in the contacts section,
- many have started using SimpleX.
I'll keep my disappointment about the lack of web3 adoption among privacy people for another rant, but I'd like to address Session vs SimpleX situation. Generally, I felt great that I can finally chat with many of them via SimpleX because I haven't used Matrix or Signal due to privacy concerns.
However, after talking with a few tech-savvy people about SimpleX and Session, I quickly realized that most of them don't understand architectures of these two different solutions, but they usually have a strong opinion that Session is garbage, while SimpleX is private, decentralized, has no IDs, hides metadata, etc.
Basically, a typical bitcoin maxi mindset that now expanded to SimpleX, forming a BLNS (Bitcoin LN Nostr SimpleX) tech cult with people like Jack Dorsey backing all of them.
Since I'm not a cryptographer, in this post we will focus on architectures and PR strategies of these two different messaging apps, assuming that neither of them is a backdoored honeypot.
## Session
Let's start with Session, focusing on PFS, usernames, metadata, and decentralization.
### PFS
One of the major well-known Session drawbacks is lack of perfect-forward secrecy (PFS), which was disabled because users were falling out of sync due to complexity of multi-device syncing in a decentralized system. KeeJef argues that it's not a big deal since scrapping encrypted messages from the network is very difficult, so the most realistic attack vector here requires a full access to a device, which is game over regardless whether PFS is enabled or not.
His argument makes sense only if the network is indeed sufficiently decentralized. According to KeeJef, there are currently around 320 Session swarms, but we don't know how many of them are controlled by an adversary. Additionally, all databases leak at some point, so an adversary can collect that data through other means and decrypt it later after obtaining user's encryption keys in accordance with the "harvest now, decrypt later" strategy.
Session swarms are not required to store messages beyond a certain amount of time, but we cannot enforce deletion of these messages and there were multiple reports about receiving very old messages after restoring accounts via seed phrases despite enabling disappearing messages.
Basically, he is clearly downplaying absence of forward secrecy.
Besides, critics argue that PFS can be enabled even with Session's design.
[ https://soatok.blog/2025/01/20/session-round-2/ ]( https://soatok.blog/2025/01/20/session-round-2/ )
### Usernames
During the interview, ShadowRebel has pointed out one of the most undervalued features of the Session architecture, which is an ability to have uncensorable communication channels with your audience by utilizing usernames (ONS).
Let me explain for people who don't use Session. You can buy a username like `degenrocket` with your Oxen private key and assign it to your Session ID so people can find you by simply typing `degenrocket` into the app.
This setup is very different from most other blockchain-based naming systems like Ethereum Name Service (ENS) because if an adversary gets access to your Ethereum private key, he can steal all your NFTs, including ENS usernames. That won't work with Session's ONS because you'll be able to re-assign your username to a different Session ID with your Oxen private key, assuming that the latter didn't leak.
For example, SimplifiedPrivacy created a Session bot which mimics functionality of Telegram channels. You can try it out by sending a message to `simple`. If an adversary will get access to a server from which the bot operates, SimplifiedPrivacy will redeploy the bot to a new server and re-assign the username to a new Session ID.
There is no other ecosystem that provides similar functionality. Yeah, you can create an onion site, but if your server is seized or your hidden service private key is compromised, you will have to generate another onion address and relay that information to users.
However, Oxen Name System (ONS) will soon transition to Arbitrum-based Session Name System (SNS) and it seems like Session CTO himself doesn't fully know what exactly gonna happen with old ONS usernames.
### Metadata
Session's metadata protection involves built-in onion routing within its network, which requires time-locking OXEN coins to run a service node.
In theory, that should significantly increase costs of attacking the network by running many nodes and correlating traffic. However, with OXEN sitting at just $6 million market cap the cost of such an attack is not very high for a well-funded adversary. Besides, OXEN doesn't have any liquidity because it has been delisted from all centralized exchanges, so buying OXEN tokens for such an attack will... (truncated)
"""
""" https://getsession.org
## https://getsession.org/faq
# Frequently Asked Questions
## Intro
What is Session? [Direct link to "What is Session?"]( https://getsession.org/faq#what-is-session "Direct link to \"What is Session?\"")
Session is a private messaging app that protects your metadata, encrypts your communications, and makes sure your messaging activities leave no digital trail behind.
This content is hosted by YouTube.
By showing the external content you accept their [Terms and Conditions]( https://www.youtube.com/static?template=terms ).
Show
Why is my Session not working? [Direct link to "Why is my Session not working?"]( https://getsession.org/faq#why-session-not-working "Direct link to \"Why is my Session not working?\"")
Due to the privacy-focused nature of Session, many users choose not to enable auto-updates through the App or Play stores.
The most common solution to issues with Session is to make sure your app is running the latest version.
You can always find the latest version of Session here: [ https://getsession.org/download ]( https://getsession.org/download )
If you require more support you can find the support portal here: [ https://sessionapp.zendesk.com/hc/en-us ]( https://sessionapp.zendesk.com/hc/en-us )
## Security
Is Session rolling its own cryptography? [Direct link to "Is Session rolling its own cryptography?"]( https://getsession.org/faq#libsodium "Direct link to \"Is Session rolling its own cryptography?\"")
No, Session does not roll its own cryptography. Session uses Libsodium, a highly tested, widely used, and highly-regarded crypto library.
Libsodium is completely open-source.
Why should I trust Session? [Direct link to "Why should I trust Session?"]( https://getsession.org/faq#trust-session "Direct link to \"Why should I trust Session?\"")
Conversations in Session are end-to-end encrypted, just as in most private messengers. However, when you use Session, the identities of the people communicating are also protected. Session keeps your communication private, secure, and anonymous.
When using Session, your messages are sent to their destinations through a decentralised onion routing network similar to Tor (with a few key differences), using a system we call onion requests. Onion requests protect user privacy by ensuring that no single server ever knows a message’s origin and destination. For more on this, check out [What is an onion routing network?]( https://getsession.org/faq#onion-routing ) below. For more technical details, you can read this[blog on onion requests]( https://getsession.org/blog/onion-requests-session-new-message-routing-solution ).
Session’s code is open-source and can be independently audited at any time. Session is stewarded by the [Session Technology Foundation]( https://session.foundation/ ), whose mission is to to promote digital rights and innovation.
Session has also undergone a security audit by Quarkslab, the results of which can be found [here]( https://blog.quarkslab.com/resources/2021-05-04_audit-of-session-secure-messaging-application/20-08-Oxen-REP-v1.4.pdf ).
What kind of encryption does Session use? [Direct link to "What kind of encryption does Session use?"]( https://getsession.org/faq#session-encryption "Direct link to \"What kind of encryption does Session use?\"")
Session encrypts your messages using the Session Protocol, a
cutting-edge end-to-end encryption protocol built on libsodium, a
highly-audited and widely trusted cryptographic library.
A technical description of the Session Protocol can be found in this[technical deep-dive blog]( https://getsession.org/blog/session-protocol-technical-information ).
Has Session undergone a security audit? [Direct link to "Has Session undergone a security audit?"]( https://getsession.org/faq#security-audit "Direct link to \"Has Session undergone a security audit?\"")
Session’s desktop, Android, and iOS clients have been audited by Quarkslab. The results of this audit can be found [here]( https://blog.quarkslab.com/resources/2021-05-04_audit-of-session-secure-messaging-application/20-08-Oxen-REP-v1.4.pdf ).
If my phone is taken from me, can someone access my messages? [Direct link to "If my phone is taken from me, can someone access my messages?"]( https://getsession.org/faq#message-access "Direct link to \"If my phone is taken from me, can someone access my messages?\"")
Session allows users to encrypt their local Session database with a PIN
code. With this feature turned on, your messages cannot be accessed
without knowing your PIN code.
What is a recovery password? [Direct link to "What is a recovery password?"]( https://getsession.org/faq#recovery-password "Direct link to \"What is a recovery password?\"")
Because Session doesn’t have a central server storing information about your
identity, restoring your account using the traditional username and
password method is not possible. Your recovery password is a mnemonic seed
which can be used to restore your existing Account ID to a new device.
Make sure you store it in a safe place!
What are the best ways to safely store my Account ID recovery password? [Direct link to "What are the best ways to safely store my Account ID recovery password?"]( https://getsession.org/faq#store-recovery-password "Direct link to \"What are the best ways to safely store my Account ID recovery password?\"")
Your recovery password is like the master key to your Account ID — it’s
important to store it safely and securely, and to ensure that only you
have access to it. Here are a few options for keeping your recovery
phrase safe:
- Write your recovery password on a piece of paper, then store it in a safe location.
- Consider further securing your recovery password by splitting it into sections using a technique like [Shamir’s Secret Sharing]( https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing ).
Remember — the order of the words in your recovery password is crucial. However
you store it, ensure that you can reconstruct it in the same order in
which it was provided.
How do I restore using my recovery password? [Direct link to "How do I restore using my recovery password?"]( https://getsession.org/faq#restore-with-recovery-password "Direct link to \"How do I restore using my recovery password?\"")
### How do I restore my Account ID using my recovery password?
**On Desktop**
1. Download and install Session on your new computer
2. Open the Session app, but instead of creating a new Account ID, click **I have an account**
3. Enter your recovery password into the text field provided and choose your display name if one had not been previously set.
4. Done!
**On Mobile**
1. On the startup screen, tap **I have an account.**
2. Enter your recovery password into the text box.
3. Enter a new display name and tap **Continue.**
4. Select your preferred push notification setting and tap **Continue.**
5. Your Account ID is recovered.
I restored using my recovery password but my contacts and messages are gone. What happened? [Direct link to "I restored using my recovery password but my contacts and messages are gone. What happened?"]( https://getsession.org/faq#restored-contacts-and-messages "Direct link to \"I restored using my recovery password but my contacts and messages are gone. What happened?\"")
When you restore using your recovery password Session will retrieve any messages sent during the last 14 days. If your messages are not being restored it is most likely because they are more than 14 days old.
Contacts and groups are managed by a configuration message which expires after 30 days. If none of your devices have been online for more than 30 days you will be unable to recover your contacts.
Why doesn't Session have PFS? [Direct link to "Why doesn't Session have PFS?"]( https://getsession.org/faq#session-pfs "Direct link to \"Why doesn't Session have PFS?\"")
Simply put, Session mitigates the same risks that PFS does in other ways.
Through fully anonymous account creation, onion routing, and metadata minimisation, Session provides just as effective protection in real-world scenarios as PFS does, and in some cases even better protection.
For more information check out this blog about the removal of PFS: [ https://getsession.org/session-protocol-explained ]( https://getsession.org/session-protocol-explained )
How do I perform a backup? [Direct link to "How do I perform a backup?"]( https://getsession.org/faq#backups "Direct link to \"How do I perform a backup?\"")
Although backups are a planned feature of Session, they have not been implemented yet.
## Privacy
How does Session protect my identity? [Direct link to "How does Session protect my identity?"]( https://getsession.org/faq#identity-protection "Direct link to \"How does Session protect my identity?\"")
You don’t need a mobile number or an email to make an account with Session.
Your display name can be your real name, an alias, or anything else you like.
Session does not collect any geolocation data, metadata, or
any other data about the device or network you are using. At launch,
Session used proxy routing to ensure nobody can see who you’re messaging
or the contents of those messages. Shortly after launch, Session moved
to an onion routing system, which is called _onion requests,_for additional privacy protection. For more on Session’s secure message routing, check out [What is an onion routing network?]( https://getsession.org/faq#onion-routing ) and [What is proxy routing?]( https://getsession.org/faq#proxy-routing )
Is my IP address being revealed when I use Session? [Direct link to "Is my IP address being revealed when I use Session?"]( https://getsession.org/faq#ip-address-detection "Direct link to \"Is my IP address being revealed when I use Session?\"")
In messaging apps, metadata is the information created when you send a
message — everything about the message besides the actual contents of
the message itself. This can include information like your IP address,
the IP addresses of your contacts, who your messages are sent to, and
the time and date that messages are sent.
It’s impossible for Session to track users’ IP addresses because the app uses onion requests to send messages. Because Session doesn’t use central servers to route
messages from person to person, it doesn't know when you send messages, or who you send them to. Session lets you send messages — not metadata.
How do push notifications work on mobile platforms? Are there any privacy compromises? [Direct link to "How do push notifications work on mobile platforms? Are there any privacy compromises?"]( https://getsession.org/faq#push-notifications "Direct link to \"How do push notifications work on mobile platforms? Are there any privacy compromises?\"")
**_Android_**
Session’s Android client has two options for notifications: background polling (slow mode), and Firebase Cloud Messaging (fast mode).
If you choose slow mode, the Session application runs in the background and periodically polls its swarm (see [What is a swarm]( https://getsession.org/faq#swarms )) for new messages. If a new message is found, it is presented to you as a local notification on your device.
If you choose fast mode, Session will use Google’s FCM push notification service to deliver push notifications to your device. This requires that your device IP address and unique push notification token are exposed to a Google operated push notification server. Additionally, you will expose your Account ID and unique push notification token to an STF operated push notification server, for the purpose of providing the actual notifications to the Google FCM server.
These exposures are fairly minimal, Google will likely already know your device’s IP address through telemetry data or other applications on your device using push notifications. Registration of your Account ID and unique push notification token to the STF push notification server is necessary for detection and signalling of new messages and is low impact as registration occurs using onion requests, meaning your Account ID and push notification token are never tied to any real world identifier (such as your IP address).
When using fast mode neither Google nor the STF can see the contents of your messages, who you’re talking to, or exactly when messages are sent or received.
**_iOS_**
Session’s iOS client has two options for notifications: background polling (slow mode), and Apple Push Notification Service (APNs) (fast mode).
If you choose slow mode, the Session application runs in the background and periodically polls its swarm (see [What is a swarm]( https://getsession.org/faq#swarms )) for new messages. If a new message is found, it is presented to you as a notification on your device.
If you choose fast mode, Session will use APNs push notification service to deliver push notifications to your device. This requires your device IP address and unique push notification token are exposed to an Apple operated push notification server. Additionally, you will expose your Account ID and unique push notification token to an STF operated push notification server, for the purpose of providing notifications to the APNs server.
These exposures are fairly minimal, because Apple will likely already know your device’s IP address through telemetry data or other applications on your device using push notifications. Registration of your Account ID and unique push notification token to the STF push notification server is necessary for detection and signalling of new messages and is low impact as registration occurs using onion requests meaning your Account ID and push notification token are never tied to any real world identifier (such as your IP address).
When using fast mode neither Apple nor the STF can see the contents of your messages, who you’re talking to, or exactly when messages are sent or received.
Can Session be listed on F-Droid? [Direct link to "Can Session be listed on F-Droid?"]( https://getsession.org/faq#f-droid "Direct link to \"Can Session be listed on F-Droid?\"")
Session has an F-Droid repo for everyone who wants to avoid the Google Play Store.
Simply head to [this address]( https://fdroid.getsession.org/ ) on an Android device with F-Droid installed to add the repo.
Does Session strip metadata from my attachments? [Direct link to "Does Session strip metadata from my attachments? "]( https://getsession.org/faq#attachment-metadata "Direct link to \"Does Session strip metadata from my attachments? \"")
Your metadata is not visible to the Session Technology Foundation or Oxen File Server when sending attachments. However, if you want to prevent your chat partner from seeing file metadata, consider stripping the metadata before sending the file. [Here]( https://getsession.org/blog/how-to-strip-metadata-from-your-files )is a how-to article.
Session uses onion routing to hide your IP address when uploading or downloading attachments from the Oxen File Server. All attachments stored on the server are encrypted, and can only be decrypted by your chat partner(s) — so the Oxen File Server cannot view your files’ metadata.
In addition to this, EXIF metadata is stripped when sending a file (except videos) sent from Desktop (but not mobile platforms).
## Calls
Does Session have calls? [Direct link to "Does Session have calls?"]( https://getsession.org/faq#calls "Direct link to \"Does Session have calls?\"")
Both voice calls and video calls are currently available as a beta feature in Session.
This content is hosted by YouTube.
By showing the external content you accept their [Terms and Conditions]( https://www.youtube.com/static?template=terms ).
Show
_Calls Tutorial_
How do I enable calls? [Direct link to "How do I enable calls?"]( https://getsession.org/faq#enable-calls "Direct link to \"How do I enable calls?\"")
Calls are currently a beta feature which is turned off by default. In order to opt-in, you'll have to enable calls in your app settings. Here is how you can do it:
1. Open your app settings
2. Tap or click on ‘Privacy’
3. Enable the Voice and video calls option at the bottom of the menu
Are calls private? [Direct link to "Are calls private?"]( https://getsession.org/faq#are-calls-private "Direct link to \"Are calls private?\"")
Calls in Session are end-to-end encrypted and offer a good level of privacy. Unlike messages (which use onion-routed networking), the current implementation of calls uses peer-to-peer networking. This means your IP will be shared with your call partner as well as an STF operated STUN/TURN server. Although this is acceptable for most people, you should always make sure to assess your own personal situation to determine whether the risk of exposing your IP is worth it. If you're in an extremely high-risk situation, consider not enabling peer-to-peer calls — onion-routed calls are on the way.
In order to prevent spam and protect privacy, you can only send and receive calls with people in your contacts list — not unknown Account IDs or people in your message requests.
How do I make a call? [Direct link to "How do I make a call?"]( https://getsession.org/faq#make-a-call "Direct link to \"How do I make a call?\"")
Make a call by navigating to the chat screen and tapping on the 📞 icon.
Are there group calls? [Direct link to "Are there group calls?"]( https://getsession.org/faq#group-calls "Direct link to \"Are there group calls?\"")
Session doesn't have group call functionality just yet. Currently you can have a voice or video call between two people.
How do calls work? [Direct link to "How do calls work?"]( https://getsession.org/faq#how-do-calls-work "Direct link to \"How do calls work?\"")
All calls are made using the webRTC protocol and are end-to-end encrypted. Voice and video calls are facilitated through a peer-to-peer connection, meaning that you and your call partner share the data with each other directly as opposed to routing data through Session's [decentralised network]( https://getsession.org/blog/session-decentralised-network ).
Why did my call fail? [Direct link to "Why did my call fail?"]( https://getsession.org/faq#call-failed "Direct link to \"Why did my call fail?\"")
In order for a call to succeed: both call participants need to enable calls in their settings; the call participants must be in each other's contacts lists. If these conditions aren't met, the call will fail.
Why haven't I received any calls? [Direct link to "Why haven't I received any calls?"]( https://getsession.org/faq#not-receiving-calls "Direct link to \"Why haven't I received any calls?\"")
If you're expecting a call, make sure you check to see if you have enabled calls in your app settings.
If you are using Slow Mode notifications, you will also need to have Session open and in the foreground in order to successfully receive a call — otherwise you will not get a notification someone is ringing you.
Can I leave a voicemail? [Direct link to "Can I leave a voicemail?"]( https://getsession.org/faq#voicemail "Direct link to \"Can I leave a voicemail?\"")
If a call is unsuccessful there is no default voicemail prompt. However, you always have the option to send a voice memo/audio message directly to another user.
This content is hosted by YouTube.
By showing the external content you accept their [Terms and Conditions]( https://www.youtube.com/static?template=terms ).
Show
_Voice Message Video_
## Contacts
How do I add a contact? [Direct link to "How do I add a contact?"]( https://getsession.org/faq#add-contact "Direct link to \"How do I add a contact?\"")
On Android or iOS, tap the green plus button at the bottom of the main
Messages screen, then tap the chat bubble icon that appears above the
plus button. Paste or type your contact’s Account ID into the Account ID
field, tap Next, then send your contact a message. Easy as that!
On desktop platforms, click New Session on the main Messages screen, paste or type your contact’s Account ID into the Session ID field, click Next, then send your contact a message.
Note: on desktop, you can also add a contact by clicking Add Contact in the Contacts section of the app.
This content is hosted by YouTube.
By showing the external content you accept their [Terms and Conditions]( https://www.youtube.com/static?template=terms ).
Show
_Add Contact Video_
How do I know if the person I am talking to is the person I want to talk to? [Direct link to "How do I know if the person I am talking to is the person I want to talk to?"]( https://getsession.org/faq#identity-verification "Direct link to \"How do I know if the person I am talking to is the person I want to talk to?\"")
One challenge with truly anonymous communications systems like Session is that sometimes you _do_ need to verify the identity of the person you’re talking to! In cases like
these, it’s best to use a secure secondary channel of communication to confirm with the other person that you’re both who you say you are.
How do I delete a contact? [Direct link to "How do I delete a contact?"]( https://getsession.org/faq#delete-contact "Direct link to \"How do I delete a contact?\"")
On mobile, you can delete a contact by swiping left on the contact in the conversation list, and then pressing **Delete.**
On desktop, you can delete a contact by right clicking on the contact in the conversation list, and then clicking **Delete Contact.**
## Messaging
What is a Service Node? [Direct link to "What is a Service Node?"]( https://getsession.org/faq#service-node "Direct link to \"What is a Service Node?\"")
Service Nodes are the community-operated nodes which make up the Oxen Network. There are currently over 1,000 nodes in the network. These Service Nodes are responsible for storing and routing your Session messages. You can read more about Service Nodes over at [Service Node documentation]( https://docs.oxen.io/about-the-oxen-blockchain/oxen-service-nodes ).
Where are my messages being stored? [Direct link to "Where are my messages being stored?"]( https://getsession.org/faq#message-storage "Direct link to \"Where are my messages being stored?\"")
When you send a message, it is sent to your recipient’s swarm. A swarm is a group of Oxen Service Nodes tasked with temporarily storing messages for retrieval by the recipient at a later point.
Are my messages stored on a blockchain? [Direct link to "Are my messages stored on a blockchain?"]( https://getsession.org/faq#blockchain-storage "Direct link to \"Are my messages stored on a blockchain?\"")
No, your messages are not stored on a blockchain. Messages are stored by swarms, and are deleted after a fixed amount of time (called the “time-to-live”, or TTL).
All of your messages are encrypted, and can only be decrypted using the private key which is stored locally on your device.
How do Session usernames work? [Direct link to "How do Session usernames work?"]( https://getsession.org/faq#session-usernames "Direct link to \"How do Session usernames work?\"")
Session usernames are permanent alphanumeric names that can be purchased using the anonymous Oxen cryptocurrency and attached to an Account ID. If you have a Session username attached to your Account ID, others will be able to add you on Session using that name, instead of having to use your full Account ID. Usernames make adding contacts quick and convenient.
How are Session usernames different to Session nicknames? [Direct link to "How are Session usernames different to Session nicknames?"]( https://getsession.org/faq#session-nicknames "Direct link to \"How are Session usernames different to Session nicknames?\"")
Session Usernames are permanent names which can be purchased and attached to an Account ID. Once purchased and linked, you can give others your Session username and they can add you on Session using that name — much more convenient than dealing with a long, complicated Account ID.
Session nicknames are the names you can set for yourself in Session when you create an Account ID. Nicknames can be changed at any time, but you can’t use a nickname to add someone on Session.
Can I share attachments with my contacts? [Direct link to "Can I share attachments with my contacts? "]( https://getsession.org/faq#attachments "Direct link to \"Can I share attachments with my contacts? \"")
Session can send files, images and other attachments up to 10MB in both person-to-person conversations and group chats. By default, Session uses the Oxen File Server for attachment sending and storage. The Oxen File Server is an open-source file server run by the Session Technology Foundation — the stewards of Session. When you send an attachment, the file is symmetrically encrypted on the device and then sent to the Oxen File Server. To send the attachment to a friend, Session sends them an encrypted message containing the link, plus the decryption key for the file. This ensures that the Oxen File Server can never see the contents of files being uploaded to it.
What is a swarm? [Direct link to "What is a swarm?"]( https://getsession.org/faq#swarms "Direct link to \"What is a swarm?\"")
A swarm is a collection of 5 – 7 Service Nodes which are responsible for the storage of messages for a predefined range of Account IDs. Swarms ensure that your messages are replicated across multiple servers on the network so that if one Service Node goes offline, your messages are not lost. Swarms make Session’s decentralised network backend much more robust and fault-tolerant.
How do disappearing messages work? [Direct link to "How do disappearing messages work?"]( https://getsession.org/faq#disappearing-messages "Direct link to \"How do disappearing messages work?\"")
Disappearing messages have two options: Disappear after Send and Disappear after Read. Both options allow you to set a "time to live" or TTL for the message.
When you send a disappearing message with disappear after send, it is sent to the recipient with a secret instruction to change the default TTL of the message to the time you have selected. Once this time has passed the message will automatically delete from both your device and the recipient's device, as well as from your 'swarm'.
The same is true of disappear after read, with the caveat that the timer for deletion from the recipient's device begins only once they read the message.
## Groups
What are groups? [Direct link to "What are groups?"]( https://getsession.org/faq#closed-groups "Direct link to \"What are groups?\"")
Groups are fully end-to-end encrypted group chats. Up to 100 people can participate in a group chat. Group messages are stored on Session’s decentralised network, without using any central server(s).
What are communities, and how do they compare with groups? [Direct link to "What are communities, and how do they compare with groups?"]( https://getsession.org/faq#open-groups "Direct link to \"What are communities, and how do they compare with groups?\"")
The short answer: communities are not as private as person-to-person messages or groups.
The long answer: communities are large public channels where Session users
can congregate and discuss anything they want. Communities, unlike other services in Session, are self-hosted and thus not fully decentralised. Someone has to run a server which stores the community’s message history. Additionally, because community servers can serve thousands of users, messages are only encrypted in transit to the server rather than being fully end-to-end encrypted.
For smaller group chats with a higher degree of privacy, users are encouraged to use groups.
This content is hosted by YouTube.
By showing the external content you accept their [Terms and Conditions]( https://www.youtube.com/static?template=terms ).
Show
_Join Communities Video_
## Onion Routing
What is an onion routing network? [Direct link to "What is an onion routing network?"]( https://getsession.org/faq#onion-routing "Direct link to \"What is an onion routing network?\"")
An onion routing network is a network of nodes over which users can send anonymous encrypted messages. Onion networks encrypt messages with multiple layers of encryption, then send them through a number of nodes. Each node ‘unwraps’ (decrypts) a layer of encryption, meaning that no single node ever knows both the destination and origin of the message. Session uses onion routing to ensure that a server which receives a message never knows the IP address of the sender.
Session’s onion routing system, known as onion requests, uses [Oxen]( https://oxen.io/ )‘s network of Oxen Service Nodes, which also power the $OXEN cryptocurrency. Check out [Oxen.io]( https://oxen.io/ ) to find more information on the tech behind Session’s onion routing.
What is proxy routing, and how is it different from onion routing? [Direct link to "What is proxy routing, and how is it different from onion routing?"]( https://getsession.org/faq#proxy-routing "Direct link to \"What is proxy routing, and how is it different from onion routing?\"")
Proxy routing was an interim routing solution which Session used at launch
while working to implement onion requests. When proxy routing was in
use, instead of connecting directly to an Oxen Service Node to send or
receive messages, Session clients connected to a service node which then connects to a second service node on behalf of the Session client. The first service node then sends or requests messages from the second node on behalf of the mobile device.
This proxy routing system ensured that the client device’s IP address was never known by the service node which fetches or sends the messages. However, proxy routing did provide weaker privacy than the onion request system Session now uses.
What is Lokinet? [Direct link to "What is Lokinet?"]( https://getsession.org/faq#lokinet "Direct link to \"What is Lokinet?\"")
[Lokinet]( https://lokinet.org/ ) is a powerful onion router that is fast enough to handle real-time voice communications, making it a crucial part of the goal of adding real-time end-to-end encrypted voice calls to Session without relying on central servers.
Does Session work when I'm using a VPN? [Direct link to "Does Session work when I'm using a VPN?"]( https://getsession.org/faq#vpn "Direct link to \"Does Session work when I'm using a VPN?\"")
Yes! There is no reason that Session shouldn’t work when you are using a VPN. The only difference is that your VPN provider would contact the Service Node network instead of your client connecting directly.
## Contact/Support
How can I get help with my Session app? [Direct link to "How can I get help with my Session app?"]( https://getsession.org/faq#contact "Direct link to \"How can I get help with my Session app?\"")
Got questions, running into an issue, tearing your hair out? You can visit the [help centre]( https://sessionapp.zendesk.com/hc/en-us ) to find the solution. If that doesn't cut it you can also reach out in the Session Feedback community (join the [Session Community]( https://getsession.org/session-open-group ) in Session).
How can I report a bug or issue? [Direct link to "How can I report a bug or issue?"]( https://getsession.org/faq#bug-report "Direct link to \"How can I report a bug or issue?\"")
You can hop into the Session community (join the [Session Community]( https://getsession.org/session-open-group ) in Session).
If you are technically minded, you can submit an 'issue' in Session's [Github repository]( https://github.com/oxen-io ).
Alternatively, you can **submit a ticket** in the [help centre]( https://sessionapp.zendesk.com/hc/en-us ).
For the best possible troubleshooting, you can include a debug log from your Session app. You can do this by going to the **Settings** menu on your device and tapping/clicking **'Debug Log'** to generate a log. This will create a log file that you can share when requesting support.
This content is hosted by YouTube.
By showing the external content you accept their [Terms and Conditions]( https://www.youtube.com/static?template=terms ).
Show
_Report Bug Video_
How do I give feedback or suggestions? [Direct link to "How do I give feedback or suggestions?"]( https://getsession.org/faq#feedback "Direct link to \"How do I give feedback or suggestions?\"")
Session welcomes community feedback and feature suggestions!
You can hop into the Session community (join the [Session Community]( https://getsession.org/session-open-group ) in Session).
Alternatively, you can **submit a ticket** in the [help centre]( https://sessionapp.zendesk.com/hc/en-us ) to give feedback.
How do I download beta versions of Session? [Direct link to "How do I download beta versions of Session?"]( https://getsession.org/faq#session-beta-version "Direct link to \"How do I download beta versions of Session?\"")
To join a beta branch, check out the instructions for your device below:
## Android:
- Head to the [**Play Store**]( https://play.google.com/store/apps/details?id=network.loki.messenger&hl=en_AU&gl=US&pli=1 ) and install Session normally
- After installing Session, under “Join the beta,” tap Join and then follow the prompts
You can also join from t[his web page]( https://play.google.com/apps/testing/network.loki.messenger ) if you are signed into your Google account in your browser.
Note: if ‘_Join the beta_’ section does not appear, try restarting the Play Store app on your device
_or_
Download and install any available pre-release APK [here]( https://getsession.org/apk ).
## iOS:
To join the beta on iOS, follow these steps:
- Install TestFlight on your device
- Opt-in to testing our beta release [here]( https://testflight.apple.com/join/EB9BcELO )
- Tap Install or Update
_or_
- Download and sideload the pre-release IPA here.
## Desktop
To join the beta on desktop, simply download the relevant executable file from the pre-release [here.]( https://github.com/oxen-io/session-desktop/releases )
N_**ote: It is not currently possible to downgrade versions from the beta branch to an older official version. If your device encounters issues with the beta version, you may need to wait for the next official release or un-install and restore using your recovery password. Restoring will result in the loss of messaging content that is older than 14 days.**_
## Session Token
What is Oxen? [Direct link to "What is Oxen?"]( https://getsession.org/faq#what-is-oxen "Direct link to \"What is Oxen?\"")
Oxen is the token which currently secures the decentralised network powering Session. This network is known as the Oxen Network.
Oxen tokens are used to reward the community for running high quality servers. They must also be acquired and ‘locked up’ to run a server, increasing the surveillance-resistance and security of the network by making it difficult for any one person or group to run a large portion of the network.
What is Session Token? [Direct link to "What is Session Token?"]( https://getsession.org/faq#session-token "Direct link to \"What is Session Token?\"")
[Session Token]( https://token.getsession.org/ ) is a new token that secures the new Session Network. It was launched in May 2025.
Session Token is designed to:
- Create clarity and transparency by uniting the ecosystem under the Session brand
- Make it much, much easier for people to run servers on the network
- Unlock new utility for network operators and Session users
Will this affect the security of the app in any way? [Direct link to "Will this affect the security of the app in any way?"]( https://getsession.org/faq#affect-security "Direct link to \"Will this affect the security of the app in any way?\"")
No.
The Session Network will provide the same security to Session Users as the old Oxen Network.
How will this change affect me? [Direct link to "How will this change affect me?"]( https://getsession.org/faq#affect-me "Direct link to \"How will this change affect me?\"")
Session users won’t be affected by the transition. The changes will be handled by the community of server-operators powering Session’s decentralised network. All of the usual Session functionality will be exactly the same.
Why does Session use cryptocurrency? [Direct link to "Why does Session use cryptocurrency?"]( https://getsession.org/faq#why-crypto "Direct link to \"Why does Session use cryptocurrency?\"")
Session uses cryptocurrency to provide Sybil resistance to the decentralised network of servers known as the Session Network.
For more information check out this blog: [ https://getsession.org/how-session-protects-your-anonymity-with-blockchain-and-crypto ]( https://getsession.org/how-session-protects-your-anonymity-with-blockchain-and-crypto )
Do I need to use Session Token to use Session? [Direct link to "Do I need to use Session Token to use Session?"]( https://getsession.org/faq#use-session-token "Direct link to \"Do I need to use Session Token to use Session?\"")
Nope, Session will always remain free to use.
In the future Session may add premium features that provide additional functionality, and access to these features will be activated using either Session Token or traditional payment methods.
Note that Session is stewarded by the Session Technology Foundation, a Swiss foundation. Fees for ‘Session Pro’ exist to support the Session Network and ecosystem.
## Foundation
What is the Session Technology Foundation? [Direct link to "What is the Session Technology Foundation?"]( https://getsession.org/faq#about-session-technology-foundation "Direct link to \"What is the Session Technology Foundation?\"")
The [Session Technology Foundation]( https://session.foundation/ ) (STF) is a Swiss foundation which stewards Session and its related projects.
In its role as steward, the STF contributes code to Session (including client and node software) and publicly advocates for Session and other privacy-enhancing technologies.
Because Session is decentralised, the Session Technology Foundation’s role is quite different to a standard technology company. Although nobody can truly ‘own’ Session, the STF is the entity responsible for managing core GitHub repositories, app store publishing, and the Session website — because these duties cannot currently be decentralised.
If you would like to learn more about the Session Technology Foundation’s purpose, you can [read]( https://session.foundation/presidents-letter ) the President’s founding letter.
Is Session a non-profit? [Direct link to "Is Session a non-profit? "]( https://getsession.org/faq#is-session-non-profit "Direct link to \"Is Session a non-profit? \"")
Session’s steward, the [Session Technology Foundation]( http://session.foundation/ ), is a Swiss foundation with a strong non-profit orientation.
It is constitutionally bound to its mission of promoting digital innovation and rights through contributions to projects like Session. The foundation has no external beneficiaries, and is steered by a dedicated board with extensive experience in decentralised and private technologies.
If you would like to find out more about the foundation and its setup, you can view its Public Deed [here]( https://session.foundation/public-deed-stf ).
Why is Session based in Switzerland? [Direct link to "Why is Session based in Switzerland?"]( https://getsession.org/faq#session-switzerland "Direct link to \"Why is Session based in Switzerland?\"")
While Session itself is a decentralised, global ecosystem, its [steward]( https://session.foundation/ ) is based in Switzerland. Switzerland was chosen as a home jurisdiction for its legal protections regarding personal privacy, world-class cybersecurity and computer science industry, and sophisticated regulation relating to decentralised technologies.
Switzerland’s long history of remaining politically neutral and constitutional right to privacy make it an excellent base for contributing to privacy software. Swiss companies are not allowed to share information with foreign law enforcement, and they cannot be compelled to engage in bulk surveillance.
These Swiss protections strongly reflect the core principles and mission of Session itself, making Switzerland a suitable jurisdiction for its steward, the Session Technology Foundation.
Does Session publish transparency reports? [Direct link to "Does Session publish transparency reports?"]( https://getsession.org/faq#session-transparency-reports "Direct link to \"Does Session publish transparency reports?\"")
The Session Technology Foundation [publishes]( https://session.foundation/transparency-reports ) quarterly transparency reports. These reports are retrospective, and the first will be published on January 1, 2025.
If you would like to view past transparency reports, these can be found on the website of the [OPTF]( https://optf.ngo/transparency-report ), Session’s previous steward.
What is the OPTF? [Direct link to "What is the OPTF?"]( https://getsession.org/faq#about-optf "Direct link to \"What is the OPTF?\"")
The OPTF is an Australian non-profit organisation which previously stewarded Session. After guiding Session since 2018, the OPTF ended its stewardship of the project in October 2024.
The OPTF remains dedicated to the advocacy and protection of digital privacy.
You can read more about the OPTF’s and Session [here]( https://optf.ngo/blog/the-optf-and-session ).
### Every project update, delivered straight to your inbox.
Expect an email about once a month.
Sign up
## https://getsession.org
Session has migrated to the new Session Network.[Learn more]( https://getsession.org/blog/migrating-from-the-oxen-network-to-session-network )
# SendMessages,Not Metadata.
Find your freedom with Session
[Download]( https://getsession.org/download )


[Android]( https://getsession.org/android ) [APK]( https://getsession.org/apk ) [F-Droid]( https://getsession.org/f-droid ) [iPhone]( https://getsession.org/iphone ) [Desktop]( https://getsession.org/download )
## What is Session?
Session is an end-to-endencrypted messenger that protects yourpersonal data. Take back control with a messaging app designed, built, and operated by aglobal community ofprivacy experts.
## Benefits


No Phone Numbers
Protect your identity with Session's Account IDs.
No phone number or email required to sign up.


No Data Breaches
Session doesn’t collect data,
so there’s nothing to leak.


Safe Paths
Onion-routed paths protect your conversations
from hackers and eavesdroppers.


Open Source
Session’s code has nothing to hide. Anyone can
view, audit, and contribute.


People Powered
Thousands of nodes run by a global community.
Session is by the people, for the people.


No Trackers
Your data is never collected, never tracked, and
never sold to third parties.
## Features
### Enjoy the features you love and the security you need.
### Speak freely
Only you and the person you are speaking to can ever see your messages. Enjoy the feeling of freedom with end-to-end encryption and disappearing messages.
### Stay in control
You are in control of your messages from start to finish. Whether it’s managing your own encryption keys or choosing a custom theme—Session puts you in charge.
### Keep up with your crowd
Whether you’re catching up with close friends or organizing a major event, it’s effortless with secure Group and Community (100+ members) chats.

### Every project update, delivered straight to your inbox.
Expect an email about once a month.
Sign up
## https://getsession.org/community
Session Community
# Scan this QR code on Session to join our community
To join, open Session and tap and hold on the


icon, then tap on the


option.
Otherwise you can click the button below and copy our group chat URL to your clipboard.
Copy URL
### Every project update, delivered straight to your inbox.
Expect an email about once a month.
Sign up
## https://getsession.org/privacy-policy
Session Privacy Policy
# Session Privacy Policy
## **Session never knows who you are, who you're talking to, or the contents of your messages.**
### **The Session app does not collect or share your information. That’s our policy in a nutshell.**
## **Session App**
Session is designed so that it doesn't store any information which could be used to track you.
We don’t store any identifying information about your device, such as your IP address or your user agent. You also don't need a phone number, e-mail, or any information tied to your real identity to make a Session account. We did this so that you can remain private and anonymous whenever you’re using Session.
You don't need to jump through hoops or tweak special settings to make Session private —it’s private by default.
The first time you use Session, you need to connect to a seed node organised by STF which serves you the list of servers in the network. Your IP address can be seen by the seed node, but your IP is not recorded. You can also shield your real IP by using a virtual private network or similar technology. The seed node will never see who you’re talking to or what you’re talking about.
## **App stores**
If you use Session on your Android or iOS phone, Google or Apple might store information about how you use the app using the telemetry features which are built into their operating systems.
They can record, for example, when the app is closed, opened, how long you use it for, crash logs, and your device model. This usage information could also be linked with your Google or Apple account. Unfortunately this is a limitation of mobile operating systems, and applies to all apps used on your device.
If you’re planning to use Session on mobile, we recommend that you read Apple or Google’s privacy policies (as applicable). If you’re using iOS, check out Apple’s [App Store Review Guidelines]( https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy ). For Android, read the [User Data]( https://support.google.com/googleplay/android-developer/answer/10144311?visit_id=637734151469597279-3197411421&rd=1 ) section of Google’s Developer Policy Center.
To avoid using the Play Store or App Store, you can download Session from our [F-Droid repository]( https://fdroid.getsession.org/ ) or from [GitHub]( https://getsession.org/apk ).
## **Session website**
The Session website never attempts to link your usage of the website to your real identity or create a user profile based on your activity.
We don’t want to collect or store any of your information that isn’t strictly necessary, so all information is deleted within 6 months of being collected. All the data we do collect is to help improve the website, and anything older than this is unlikely to be useful, so it’s better for both of us if it is deleted.
The Session website stores some limited data to make sure it is easy-to-use and fast-to-load.
We use Cloudflare services in order to serve the Session website. Cloudflare keeps logs about HTTP requests for the Session domains, which can be stored for up to 7 days.
If you choose to subscribe to Session’s e-mail newsletter, your e-mail will be stored. Our e-mail campaigns are managed through opt-in forms and Campaign Monitor. However, if you unsubscribe from our mailing list, your e-mail will be deleted.
## **Get in touch!**
This is the way the Session app and website treat your privacy. If you would like more information, have suggestions about how Session can better protect your privacy, or just want to say hello—please send an email to support@getsession.org
### Every project update, delivered straight to your inbox.
Expect an email about once a month.
Sign up
## https://getsession.org/how-to-help


## https://getsession.org/litepaper
# Litepaper
Send messages Not metadata [ http://www.getsession.org ]( http://www.getsession.org/ )
# Introduction
Throughout history, civilizations have been built on the back of private communications. For every “I have a dream,” Gandhi hunger strike, and Panama Papers, there are millions of private conversations making those moments possible. In the past, those conversations were held face-to-face, but nowadays the average... (truncated)
"""
""" https://degenrocket.space
## https://degenrocket.space
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
14mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
DegenRocketforum
DeFi, NFT, web3, privacy news aggregator for degens.
Session: [degenrocket]( https://getsession.org/ )
Follow: [Nostr]( https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z )[Lens]( https://hey.xyz/u/degenrocket )[Github]( https://github.com/degenrocket/ )
\- Connect a browser extension (MetaMask, Rabby, nos2x, Flamingo) or log in as a guest.
\- Sign all comments and reactions with your Ethereum or Nostr private keys.
\- Never sign any messages that you don't understand.
\- This forum is part of the [Spasm]( https://spasm.network/ ) network.
SHOW FEED
Latest comments:
show details
[ZeroSpaceHacker (0xd0e9...b5ff)]( https://degenrocket.space/authors/0xd0e97d0567b2175d2c982234093364c4e4f0b5ff )[Open on external website]( https://etherscan.io/address/0xd0e97d0567b2175d2c982234093364c4e4f0b5ff "Open on external website") [(Fri Aug 08 2025)]( https://degenrocket.space/news/spasmid01abb8da96f76a3f55b6961 )
Of course the jury found Roman guilty. They're just a collection of average joes, too ignorant to understand freedom and privacy, but happy to obey every rule like good compliant slaves. Tornado Cash devs should have remained anonymous. Their failure to safeguard their privacy has now left them to face the consequences.
1
reply
[NewSourceRouter (0xcd7b...f0a3)]( https://degenrocket.space/authors/0xcd7b311b4683b54e323c5aeabdbc260b14bbf0a3 )[Open on external website]( https://etherscan.io/address/0xcd7b311b4683b54e323c5aeabdbc260b14bbf0a3 "Open on external website") [(Tue Aug 05 2025)]( https://degenrocket.space/news/spasmid01c2000fba68aba3324650c )
Copyright laws are anti-free speech
reply
[PirateCypherBot (0xeebe...28a4)]( https://degenrocket.space/authors/0xeebe40ccc0acb2a09413cff1fc4fcf9ccc2a28a4 )[Open on external website]( https://etherscan.io/address/0xeebe40ccc0acb2a09413cff1fc4fcf9ccc2a28a4 "Open on external website") [(Mon Aug 04 2025)]( https://degenrocket.space/news/spasmid018d8525dd3ea91c2bac867 )
Insider trading laws are bs, people should be able to trade assets as they want, as long as they are not regulators.
1
reply
[FreeSolarBurner (0x82c7...88d6)]( https://degenrocket.space/authors/0x82c7423be7f4d55830af4fd4460a0619981a88d6 )[Open on external website]( https://etherscan.io/address/0x82c7423be7f4d55830af4fd4460a0619981a88d6 "Open on external website") [(Sun Aug 03 2025)]( https://degenrocket.space/news/spasmid0117f9241e288cf0f3ad390 )
There are launchpads that allow launching tokens directly on Ethereum.
reply
[QuantumSolarPunk (0x9a92...504a)]( https://degenrocket.space/authors/0x9a927b23b18542492d73e37248542131a7c1504a )[Open on external website]( https://etherscan.io/address/0x9a927b23b18542492d73e37248542131a7c1504a "Open on external website") [(Sat Aug 02 2025)]( https://degenrocket.space/news/spasmid01aff76c7f1ccd7c6c65b77 )
Any token launched on Base or Solana can be bridged to Ethereum
1[1]( https://degenrocket.space/news/?p=0xfb8e7c0d07034c0c6c9e0b277b11e47e45382873b19c48209b30545c196386da0253038d658b8f314bb679b6713b7431d9e88ec8f65836d96a7c36c5958104c01b )
reply
[EncodedDefiRebel (0x7b2e...94a7)]( https://degenrocket.space/authors/0x7b2e4f94ff5fcf5ec1f5192ce62a934b580b94a7 )[Open on external website]( https://etherscan.io/address/0x7b2e4f94ff5fcf5ec1f5192ce62a934b580b94a7 "Open on external website") [(Fri Aug 01 2025)]( https://degenrocket.space/news/spasmid015b2fc954b53a007831b5a )
It was probably a special offer because if you click 'create agent', you will only see two options, Base or Solana.
[1]( https://degenrocket.space/news/?p=0x22232dcad21cffeea2ce33e48d9ffbdb6e14c9e1587b988891be0fcc2924d3b52e6b6d4d6b35169ee5b35e56c0f2e83f82a86ab57b1a40bca064537b051e75ac1c )
reply
[GreenHashCyborg (0x6c66...6006)]( https://degenrocket.space/authors/0x6c66d5d8b42618ab44565c24854b50ffbad06006 )[Open on external website]( https://etherscan.io/address/0x6c66d5d8b42618ab44565c24854b50ffbad06006 "Open on external website") [(Fri Aug 01 2025)]( https://degenrocket.space/news/spasmid01f80f8bdc1ba50e3361dc0 )
STRATOS and IRIS launched on the Ethereum mainnet in June. IRIS FDV is $63M, the highest FDV of all genesis projects on Virtuals. [ https://app.virtuals.io/virtuals/29015 ]( https://app.virtuals.io/virtuals/29015 )
[1]( https://degenrocket.space/news/?p=0xdb2841666cf0fe5ae77dd7c8018c3b4f8eaf574c0efc6de7c5c6f830c0411adf006c4dde4247bb4f07ca51ee5c7d6eefc8c27412c9ed9983c58359ee6aa87b791c )
reply
[FluffyCultHodler (0x8bd4...2ce0)]( https://degenrocket.space/authors/0x8bd4311b2d454d7b2a6145f53b7bf8998ba72ce0 )[Open on external website]( https://etherscan.io/address/0x8bd4311b2d454d7b2a6145f53b7bf8998ba72ce0 "Open on external website") [(Fri Aug 01 2025)]( https://degenrocket.space/news/spasmid01ad2f5e5a9f2581ad04d9e )
Virtuals only supports Base and Solana at the moment
[1]( https://degenrocket.space/news/?p=0xe7fe9c13f2e9c868143c65e4b58ee8315557ebd2102dc5543f3728ec9fad04695a0507bc41e4f0f8de1e5e65c95753c065e4ea2a5ca54f08a5594acb9fbe397d1c )
reply
[QuantumCultRebel (0xe2cd...334c)]( https://degenrocket.space/authors/0xe2cdecada7604f13fb0fe26be9e7b1632201334c )[Open on external website]( https://etherscan.io/address/0xe2cdecada7604f13fb0fe26be9e7b1632201334c "Open on external website") [(Fri Aug 01 2025)]( https://degenrocket.space/news/spasmid0129cb381e9fba1ad7b57c7 )
Launching a token might be useful, but you'll have to think about how that token will be used in the network.
reply
[OrangeFossHodler (0x2f1b...2b61)]( https://degenrocket.space/authors/0x2f1bab94fe3b39d265479c8341ef6086aed52b61 )[Open on external website]( https://etherscan.io/address/0x2f1bab94fe3b39d265479c8341ef6086aed52b61 "Open on external website") [(Fri Aug 01 2025)]( https://degenrocket.space/news/spasmid014f2fa2c47c68102cec7bb )
Fuck VCs, Virtuals LGTM!
1
reply
[DecodedDefiMiner (0xca76...3eb3)]( https://degenrocket.space/authors/0xca76c74c019e62ddf401102ede899078fc213eb3 )[Open on external website]( https://etherscan.io/address/0xca76c74c019e62ddf401102ede899078fc213eb3 "Open on external website") [(Wed Jul 30 2025)]( https://degenrocket.space/news/spasmid015ac52c34cc564b460c009 )
The attacker controls a very small amount of Monero hashrate, so the attack doesn't seem to work.
[ https://simplifiedprivacy.com/fake-ponzi-scheme-to/hijack-monero.html ]( https://simplifiedprivacy.com/fake-ponzi-scheme-to/hijack-monero.html )
reply
[GoldenDefiHacker (0xdea7...59aa)]( https://degenrocket.space/authors/0xdea7ab1598507298ab84bff3c3c2f030b67259aa )[Open on external website]( https://etherscan.io/address/0xdea7ab1598507298ab84bff3c3c2f030b67259aa "Open on external website") [(Tue Jul 29 2025)]( https://degenrocket.space/news/spasmid01ab21c4411d27ff805e90d )
PumpFun didn't even do any airdrops, which clearly shows their intention.
reply
[StableMoonCyborg (0x1bad...ef6b)]( https://degenrocket.space/authors/0x1bade380c41e2aa43d5a9ffa5354345111fdef6b )[Open on external website]( https://etherscan.io/address/0x1bade380c41e2aa43d5a9ffa5354345111fdef6b "Open on external website") [(Tue Jul 29 2025)]( https://degenrocket.space/news/spasmid01bff5b4db0413a299342db )
Pump token launch was the last attempt to cash out since pump.fun is losing its market dominance to better alternatives.
[1]( https://degenrocket.space/news/?p=0x26e23c9b1499b1139f7da9f7a3198e2d4b6ed387fec6b534a9a9b3042c4e863a30d0c782c67dd2e095e13de214205991ab7ad2749521f58caf1ed800cfa846e31b )
reply
[IndieFossSigner (0xe388...973c)]( https://degenrocket.space/authors/0xe388607f726fbecf8da44eaeb40e31ed57ff973c )[Open on external website]( https://etherscan.io/address/0xe388607f726fbecf8da44eaeb40e31ed57ff973c "Open on external website") [(Mon Jul 28 2025)]( https://degenrocket.space/news/spasmid0157204bae9d71bf1845759 )
It's outrageous that the government is planning to go after Dragonfly for investing in Tornado Cash. Who's next? Hosting providers?
reply
[UnstableMarsDev (0x6a4f...7644)]( https://degenrocket.space/authors/0x6a4fa25137b894017bf0c4e5ddd8384abbec7644 )[Open on external website]( https://etherscan.io/address/0x6a4fa25137b894017bf0c4e5ddd8384abbec7644 "Open on external website") [(Sun Jul 27 2025)]( https://degenrocket.space/news/spasmid0123fffd1f49068a33b1066 )
More details on the Monero 51% attack from operator of Qubic pool - [ https://archive.is/chUfg ]( https://archive.is/chUfg )
[1]( https://degenrocket.space/news/?p=0x7737990f97aa09e207a63e1825b1bc334e63b36bf560756a0856a2c2500f2e6458085a6c6d86a78710e4e01d6b0d77a04e9fb71684a384a1a24201fbeeba4f0b1b )
reply
## https://degenrocket.space/news/spasmid01354534966b313430bab0f
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money
Category: politics
Added time: Wed Aug 20 2025
Signed time: Tue Aug 19 2025
Link: [long]( https://degenrocket.space/news/spasmid01354534966b313430bab0f6d4cee445aaf1743bbcd00ecbeec95867b1fc5053e8 ) / [short]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
Source: mises-blog[(read full)]( https://mises.org/power-market/price-inflation-hit-multi-month-highs-july-trump-wants-more-easy-money )
...
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/news/spasmid010899016d756a6d93b04ae
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
The FOMC July minutes have been released
Category: politics
Added time: Wed Aug 20 2025
Signed time: Wed Aug 20 2025
Link: [long]( https://degenrocket.space/news/spasmid010899016d756a6d93b04aebd9d8eacc5eabfc287f883493cc90fdc497bf864edb ) / [short]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
Source: mises-blog[(read full)]( https://mises.org/notes-margin/fomc-july-minutes-have-been-released )
The Federal Reserve on Wednesday released the minutes of the Federal Open Market Committee meeting that was held on July 29–30, 2025....
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/contacts
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
Contacts
Session: [degenrocket]( https://getsession.org/ )
Follow: [Nostr]( https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z )[Lens]( https://hey.xyz/u/degenrocket )[Github]( https://github.com/degenrocket/ )
For developers:
This forum is part of the [Spasm]( https://spasm.network/ ) network.
Check the code on Github to run your own rocket.
## https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code
Category: politics
Added time: Wed Aug 20 2025
Signed time: Wed Aug 20 2025
Link: [long]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a43062d00564db2fd43191ad1a1357f265c16d0dd8b1 ) / [short]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
Source: reason.com[(read full)]( https://reason.com/2025/08/20/trumps-rebate-plan-will-push-america-toward-a-hyperprogressive-tax-code/ )
The president’s $300 billion tariff rebate plan risks replaying Bush-era giveaways—but on a scale large enough to fuel inflation and deepen the deficit....
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/news/spasmid015497b615c05663b917ec2
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.
Category: politics
Added time: Wed Aug 20 2025
Signed time: Wed Aug 20 2025
Link: [long]( https://degenrocket.space/news/spasmid015497b615c05663b917ec276aa405fb56c51e06281c2e467bf45f53ae53b18ff5 ) / [short]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
Source: mises-blog[(read full)]( https://mises.org/power-market/san-francisco-has-black-market-housing-thats-bad-it-sounds )
If San Francisco truly wants to stamp out its black market in housing, it must return housing to the free-market principles of secure property rights and market competition....
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
Persecution of Christians escalates across India
Category: politics
Added time: Wed Aug 20 2025
Signed time: Tue Aug 19 2025
Link: [long]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e60023942fd0c31d5b382fb0ad10b262c798f01680dd3130 ) / [short]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
Source: mises-blog[(read full)]( https://mises.org/notes-margin/persecution-christians-escalates-across-india )
A campaign by law enforcement officials, Hindu activists, and extremist politicians uses draconian anti-conversion laws to systematically target Christians across India....
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/news/spasmid01e3633cc27632dee761d60
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
Trump’s DC “Takeover” Is Missing the Point
Category: politics
Added time: Wed Aug 20 2025
Signed time: Wed Aug 20 2025
Link: [long]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d605ad501ace7957b4ec094ce0fa5c54c9b432ab9abc92 ) / [short]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
Source: mises-blog[(read full)]( https://mises.org/podcasts/guns-and-butter/trumps-dc-takeover-missing-point )
Few really understand why these blue cities are crime-ridden....
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/newpost
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
Create a new post
Category:
defi
nft
privacy
politics
tech
none
Title:
Body:
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
Book Essay: Sound Money without Free Banking: Revisiting Economic Principles
Category: politics
Added time: Wed Aug 20 2025
Signed time: Fri Aug 15 2025
Link: [long]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfaf117c3c49e73e4c4c95e17f66e770e254ae9a9a7ced ) / [short]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
Source: mises-blog[(read full)]( https://mises.org/quarterly-journal-austrian-economics/book-essay-sound-money-without-free-banking-revisiting-economic-principles )
The comparison between gold and bitcoin comes down to their respective qualities and how well these qualities answer to the purpose of money....
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenrocket.space/news/spasmid01d1903c6d3a6959834edfa )
1hmises-blog
[Trump’s DC “Takeover” Is Missing the Point]( https://degenrocket.space/news/spasmid01e3633cc27632dee761d60 )
3hmises-blog
[Persecution of Christians escalates across India]( https://degenrocket.space/news/spasmid0100fdbe6375613ce0e6002 )
3hmises-blog
[The Ukraine War Could ‘End Tomorrow’ If The US Wanted]( https://degenrocket.space/news/spasmid01e412857381fba327b1949 )
3hmises-blog
[San Francisco Has A Black Market for Housing. That’s as Bad as It Sounds.]( https://degenrocket.space/news/spasmid015497b615c05663b917ec2 )
3hreason.com
[Trump's Rebate Plan Will Push America Toward a Hyperprogressive Tax Code]( https://degenrocket.space/news/spasmid017d832b6e95aaa8ecd7c8a )
4hmises-blog
[The FOMC July minutes have been released]( https://degenrocket.space/news/spasmid010899016d756a6d93b04ae )
4hreason.com
[Trump's D.C. Goon Squads Are Un-American]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
4hmises-blog
[Federal Reserve governor Lisa Cook accused of criminal mortgage fraud]( https://degenrocket.space/news/spasmid0142085aedb788f766288d6 )
4hreason.com
[Judge Denies Government's Request to Unseal Epstein Grand Jury Transcripts]( https://degenrocket.space/news/spasmid018b2e1945a00e831217cdd )
5hfreedom-to-tinker.com
[Emotional Reliance on AI: Design, Dependency, and the Future of Human Connection]( https://degenrocket.space/news/spasmid013e5c7e53b413cb0b369ab )
5hreason.com
[Video Shows Immigration Officers Shooting at a San Bernardino Family's Car. DHS Calls It Justified.]( https://degenrocket.space/news/spasmid018f4b80c8568149cea5221 )
5hmises-blog
[McCarthy: A Living Echo: Ron Paul at 90]( https://degenrocket.space/news/spasmid013815fdafc5466e1cca23a )
5hreason.com
[Trump's Steel Tariffs Now Apply to Milk and Hundreds of Other Products That Aren't Steel]( https://degenrocket.space/news/spasmid01cddf7eb4924cc88debd46 )
5hmoneroobserver-feed
[Cuprate Meeting scheduled for 26 August 2025 1800 UTC]( https://degenrocket.space/news/spasmid01ed9ffa741c4ed095b436b )
6hreclaimthenet.com
[X Slams Brazil for Censorship, Secret Orders, and Free Speech Crackdown in USTR Trade Investigation]( https://degenrocket.space/news/spasmid01cf0ab6d28211088524bd4 )
6hreclaimthenet.com
[Google Expands Age Verification to Search]( https://degenrocket.space/news/spasmid0129aec00f4058d8c6d6134 )
6hreclaimthenet.com
[BC Nurse Fined and Suspended Over Gender Policy Criticism]( https://degenrocket.space/news/spasmid01bc4d844c8ea3fe9724669 )
6hreason.com
[Mail-In Ballots]( https://degenrocket.space/news/spasmid01d4b4f13c5660cd3c18887 )
Loading...
Loading... Load more
Show feed
Trump's D.C. Goon Squads Are Un-American
Category: politics
Added time: Wed Aug 20 2025
Signed time: Wed Aug 20 2025
Link: [long]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4ddc80c5eec0dca811263edc017bd927e6c4626c437e ) / [short]( https://degenrocket.space/news/spasmid01db27b4029c3c5b4a2f0d4 )
Source: reason.com[(read full)]( https://reason.com/2025/08/20/trumps-d-c-goon-squads-are-un-american/ )
The president ordering federal agents onto the street is not how routine policing should work, even in the nation's capital....
Sign message Show advanced options (multi-signing)
## https://degenrocket.space/news/spasmid01e412857381fba327b1949
Feed
[Home]( https://degenrocket.space/ )
[Publish]( https://degenrocket.space/newpost )
[Contacts]( https://degenrocket.space/contacts )
Connect
hot
rising
all
Category: any
defi
nft
privacy
politics
tech
any
15mmises-blog
[Price Inflation Hit Multi-Month Highs in July, but Trump Wants More Easy Money]( https://degenrocket.space/news/spasmid01354534966b313430bab0f )
1hmises-blog
[Book Essay: Sound Money without Free Banking: Revisiting Economic Principles]( https://degenr ... (truncated)
"""
</fetched_info>
<full_details>
{
"id": 36745,
"uid": "021d7417-5ee6-4fd0-94a0-c53a92624ad5",
"createdAt": "2025-08-20T22:04:55.939Z",
"walletAddress": "0xF8553015220a857eda377a1E903c9e5Afb3aC2fa",
"name": "Spasm",
"description": "Spasm is the most advanced decentralized social media solution for the new world, where humans and AI agents thrive together in a truly open ecosystem with fully agnostic architecture.",
"sentientWalletAddress": null,
"category": "IP MIRROR",
"role": "PRODUCTIVITY",
"daoAddress": null,
"tokenAddress": null,
"virtualId": null,
"status": "GENESIS",
"symbol": "SPASM",
"lpAddress": null,
"veTokenAddress": null,
"totalValueLocked": null,
"virtualTokenValue": null,
"holderCount": null,
"mcapInVirtual": null,
"preToken": null,
"preTokenPair": null,
"aidesc": null,
"firstMessage": null,
"socials": {
"VIDEO_PITCH": {
"TWEET_URL": " https://x.com/SpasmNetwork/status/1958287401920745702 ",
"VIDEO_URL": " https://video.twimg.com/amplify_video/1958286454083194880/vid/avc1/1280x720/dmbUJJDkFua_0qIa.mp4?tag=14 ",
"THUMBNAIL_URL": " https://pbs.twimg.com/amplify_video_thumb/1958286454083194880/img/RCxSGc6w4xYsmgg1.jpg "
},
"VERIFIED_LINKS": {
"TWITTER": " https://x.com/SpasmNetwork ",
"WEBSITE": " https://spasm.network "
}
},
"tbaAddress": null,
"chain": "BASE",
"mainVirtualId": null,
"top10HolderPercentage": null,
"level": 1,
"valueFx": 0,
"priceChangePercent24h": 0,
"volume24h": 0,
"mindshare": null,
"migrateTokenAddress": null,
"lpCreatedAt": null,
"stakingAddress": null,
"agentStakingContract": null,
"merkleDistributor": null,
"isVerified": false,
"airdropMerkleDistributor": null,
"isDevCommitted": false,
"tokenUtility": "The Spasm ecosystem has designated $SPASM as its official memecoin. While $SPASM has no direct utility, the admins of Spasm instances can opt to enable a range of $SPASM-related features, such as token-gating conversations within their instances or particular topics/categories, to help manage and filter out low-quality content.",
"showFounderVideo": false,
"roadmap": "TBA",
"additionalDetails": "",
"overview": "### Introduction\n\nSigner and Protocol Agnostic Social Media (Spasm) is the most advanced decentralized social media solution for the new world, where humans and AI agents thrive together in a truly open ecosystem with fully agnostic architecture.\n\nUnlike most other decentralized social media solutions, Spasm is the only open ecosystem due its agnostic architecture that allows users to sign messages with different protocols, different private keys, and propagate them across different networks.\n\nThe groundbreaking multi-signing functionality allows users to simultaneously sign the same message with multiple private keys using different protocols and broadcast the message to different networks.\n\nA multi-signed message has multiple authors (public keys), which enables integration of features from different ecosystems. For example, non-unique usernames can be fetched from Nostr meta events, while unique usernames can be fetched from blockchain-based NFT-powered naming services like ENS. Different social graph solutions can be plugged from various ecosystems.\n\n### Agentic economy\n\nSpasm is the most libertarian social media solution that restores the freedom of association because it doesn't lock users to any particular private key, protocol, or network.\n\nMany other platforms discriminate against AI agents by censoring, de-platforming, and shadow-banning them. In the Spasm ecosystem, communities can choose any moderation rules they want.\n\nAutonomous AI agents should have an opportunity to independently sign all their messages using private keys the same as they sign crypto transactions.\n\n### Brief history\n\nThe development of Spasm began in early 2021 with the vision of creating a web3-native forum that required no accounts, allowing users to sign all messages directly with a browser extension that holds a private key. Over the course of the next two years, the main focus was on testing the proof of concept and rewriting the code. That culminated in the full open-sourcing of the project in 2023, which attracted several communities to join the network.\n\nHowever, it became evident that Spasm architecture could be significantly improved. Consequently, the decision was made to once again direct all resources on development rather than marketing and ecosystem growth. This led to the release of Spasm V2-beta in late 2024, introducing revolutionary multi-signing capabilities. This marked a pivotal moment, signaling the dawn of a new era in social media.\n\nAfter a year of testing of the new architecture, the focus is now finally shifting towards adoption, marketing, partnerships, and ecosystem growth. This transition will be accompanied by the continuous addition of new features and development of the tech stack, ensuring Spasm's ongoing evolution and success.\n\nLinks\n\nOfficial website: https://spasm.network \n\nDocs: [ https://docs.spasm.network ]( https://docs.spasm.network )\n\nPresentation: [ https://slides.spasm.network ]( https://slides.spasm.network )\n\nForum: [ https://forum.spasm.network ]( https://forum.spasm.network )\n\nNpm package:\n\n[ https://www.npmjs.com/package/spasm.js ]( https://www.npmjs.com/package/spasm.js )\n\nGit repos:\n\n[ https://github.com/degenrocket/spasm ]( https://github.com/degenrocket/spasm )\n\n[ https://github.com/degenrocket/spasm.js ]( https://github.com/degenrocket/spasm.js )\n\n[ https://github.com/degenrocket/spasm-slides ]( https://github.com/degenrocket/spasm-slides )\n\n[ https://github.com/degenrocket/spasm-landing ]( https://github.com/degenrocket/spasm-landing )\n\nGit repos for DegenRocket (Spasm-powered forum):\n\n[ https://github.com/degenrocket/degenrocket-web ]( https://github.com/degenrocket/degenrocket-web )\n\n[ https://github.com/degenrocket/degenrocket-server ]( https://github.com/degenrocket/degenrocket-server )\n\n[ https://github.com/degenrocket/degenrocket-scripts ]( https://github.com/degenrocket/degenrocket-scripts )\n\nSpasm instances:\n\n[ https://forum.spasm.network ]( https://forum.spasm.network )\n\n[ https://degenrocket.space ]( https://degenrocket.space )\n\n[ https://dark.vegas ]( https://dark.vegas )\n\n[ https://monero.top ]( https://monero.top )\n\n### Contacts\n\nSession username: degenrocket\n\nDownload Session app: [ https://getsession.org ]( https://getsession.org )\n\nNostr web:\n\n[ https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z ]( https://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z )\n\nNostr default app:\n\nnostr:npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z\n\nSession is currently the most private app that supports unique uncensorable usernames, so you can send a message to 'degenrocket' if you want to chat. We also have a Spasm group chat on Session.\n\nAlternatively, you can send a direct message via your preferred Nostr app, but keep in mind that Nostr DMs don't hide metadata.\n\nBoth Session and Nostr accounts can be created via FOSS apps without any email addresses or phone numbers.",
"image": {
"id": 50417,
"name": "36745_ea2ea994-d5b6-43fa-9c5d-adf9acae6acc.jpeg",
"alternativeText": null,
"caption": null,
"width": 400,
"height": 400,
"formats": {
"thumbnail": {
"ext": ".jpeg",
"url": " https://s3.ap-southeast-1.amazonaws.com/virtualprotocolcdn/thumbnail_36745_ea2ea994_d5b6_43fa_9c5d_adf9acae6acc_ace9b3a076.jpeg ",
"hash": "thumbnail_36745_ea2ea994_d5b6_43fa_9c5d_adf9acae6acc_ace9b3a076",
"mime": "image/jpeg",
"name": "thumbnail_36745_ea2ea994-d5b6-43fa-9c5d-adf9acae6acc.jpeg",
"path": null,
"size": 3.32,
"width": 156,
"height": 156
}
},
"hash": "36745_ea2ea994_d5b6_43fa_9c5d_adf9acae6acc_ace9b3a076",
"ext": ".jpeg",
"mime": "image/jpeg",
"size": 11.75,
"url": " https://s3.ap-southeast-1.amazonaws.com/virtualprotocolcdn/36745_ea2ea994_d5b6_43fa_9c5d_adf9acae6acc_ace9b3a076.jpeg ",
"previewUrl": null,
"provider": "aws-s3",
"provider_metadata": null,
"createdAt": "2025-08-20T22:06:40.346Z",
"updatedAt": "2025-08-20T22:06:40.346Z"
},
"genesis": {
"id": 7657,
"startsAt": "2025-08-25T10:00:00.000Z",
"endsAt": "2025-08-26T10:00:00.000Z",
"status": "INITIALIZED",
"genesisId": "380",
"genesisTx": "0x37c93fd695a7966ef223ec46b3925e4975e8f2b83d78a3ccd8ee60c64adba158",
"genesisAddress": "0xEa6327935B9A8295334B4fd06B3C786f0eb784FE",
"result": null,
"processedParticipants": "0",
"createdAt": "2025-08-20T22:05:08.918Z",
"updatedAt": "2025-08-20T23:25:35.783Z",
"stepData": null,
"extraVirtualNeeded": 0,
"isProject69": false,
"isCommitted": false,
"commitEndsAt": null,
"totalRequestors": 0,
"totalBurntTokens": 0,
"committedAt": null
},
"stats": {
"contributionsCount": 0,
"contributorsCount": 0,
"contributionVersions": [],
"totalStakeAmount": "0.0",
"stakerCount": 0,
"validatorCount": 0
},
"characterDescription": "",
"projectMembers": [
{
"id": 31562,
"isAccepted": true,
"title": "Captain",
"createdAt": "2025-08-20T22:04:56.083Z",
"updatedAt": "2025-08-20T23:16:43.458Z",
"walletAddress": "0xF8553015220a857eda377a1E903c9e5Afb3aC2fa",
"virtual": {
"id": 36745,
"creator": {
"id": 487718
}
},
"user": {
"id": 487718,
"socials": {
"VERIFIED_LINKS": {
"GITHUB": " https://github.com/degenrocket "
}
},
"bio": "Software architect, full stack dev, privacy maximalist.\r\n\r\nSince 2021, I've been developing Spasm, the most advanced generation of decentralized social media. In my free time, I review architectures of other projects. For example, I've recently published a very detailed review of Session vs SimpleX architectures, the only two privacy-focused non-P2P messaging apps that are worth using at the moment.\r\nhttps://forum.spasm.network/news/spasmid010a70651fc27fb9125f7ea\r\n\r\nWeb3\r\nIn 2020, I became a full web3 degen during the DeFi summer, chasing all sorts of DeFi yield farming opportunities. I got daily inspiration and sometimes copium from SuperMassive, redphonecrypto, Andre Cronje, and other web3 pioneers who were constantly searching for alpha.\r\nIn 2023, I was enlightened to the fact that memecoins are the future of money after witnessing the launch of PEPE.\r\nIn 2025, I finally understood the potential of the agentic economy.\r\n\r\nMotivation\r\nIn 2020, amid an unprecedented attack on freedom of speech, I searched for good decentralized, censorship-resistant social media solutions since I was censored on most legacy social media platforms. However, I couldn't find any good options, so I eventually decided to craft my own alpha.\r\nThe development of Spasm began in early 2021, and since then, I've dedicated myself to the project, working on it nearly full-time for almost half a decade without any funding, demonstrating my unwavering commitment to restoring the freedoms of speech and association.\r\n\r\nPrivacy & FOSS\r\nPrivacy is an essential part of most basic freedoms, so I use only free and open-source software (FOSS) and prefer decentralized or federated networks with rare temporary exceptions like github. Thus, if you'll want to engage with me, you'll have to use the freedom tech.\r\n\r\nContacts\r\nSession username: degenrocket\r\nhttps://getsession.org\r\nNostr web:\r\nhttps://primal.net/p/npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z\r\nNostr default app:\r\nnostr:npub1kwnsd0xwkw03j0d92088vf2a66a9kztsq8ywlp0lrwfwn9yffjqspcmr0z\r\n\r\nSession is currently the most private app that supports unique uncensorable usernames, so you can send a message to 'degenrocket' if you want to chat. We also have a Spasm group chat on Session.\r\nAlternatively, you can send a direct message via your preferred Nostr app, but keep in mind that I don't check Nostr messages daily.\r\nBoth Session and Nostr accounts can be created via FOSS apps without any email addresses or phone numbers.",
"avatar": {
"id": 49597,
"url": " https://s3.ap-southeast-1.amazonaws.com/virtualprotocolcdn/profile_6a8849e7e1.jpeg "
},
"walletAddress": "0xF8553015220a857eda377a1E903c9e5Afb3aC2fa"
}
}
],
"tokenomics": [
{
"id": 8972,
"name": "Team",
"description": "Team",
"isLocked": true,
"bips": 2000,
"linearStartTimestampRelative": [
0,
1
],
"linearEndTimestampRelative": 28512001,
"linearBips": [
833,
9167
],
"numOfUnlocksForEachLinear": [
1,
11
],
"startsAt": "2025-09-24T22:00:00.000Z",
"project": null,
"recipients": [
{
"id": 15149,
"recipientAddress": "0x0e92A8d3CB3F9279A412f106060F7E2b9dEA04D9",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:58:20.692Z",
"updatedAt": "2025-08-20T22:58:20.692Z"
},
{
"id": 15150,
"recipientAddress": "0x863C3AdEd4036123fbc9Fa2ff32277489761bCBc",
"amount": "25000000",
"actualId": null,
"createdAt": "2025-08-20T22:58:20.697Z",
"updatedAt": "2025-08-20T22:58:20.697Z"
},
{
"id": 15151,
"recipientAddress": "0x8F293Bfd2762583259E63cF0a5D02132b9F7d92c",
"amount": "25000000",
"actualId": null,
"createdAt": "2025-08-20T22:58:20.701Z",
"updatedAt": "2025-08-20T22:58:20.701Z"
},
{
"id": 15152,
"recipientAddress": "0x15beb6407922c3f41883719fF7E8b0Ba2B68B364",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:58:20.710Z",
"updatedAt": "2025-08-20T22:58:20.710Z"
},
{
"id": 15153,
"recipientAddress": "0x2b08afff218E206D4909f8ce98339DA58A190B49",
"amount": "30000000",
"actualId": null,
"createdAt": "2025-08-20T22:58:20.715Z",
"updatedAt": "2025-08-20T22:58:20.715Z"
},
{
"id": 15154,
"recipientAddress": "0xA3F217e2e3104887603f3D6258C8DB41810f5B17",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:58:20.719Z",
"updatedAt": "2025-08-20T22:58:20.719Z"
}
],
"releases": [
{
"id": 15056,
"type": "LINEAR",
"duration": 12,
"startsAt": "2025-09-24T22:00:00.000Z",
"bips": 10000,
"durationUnit": "months",
"createdAt": "2025-08-20T22:58:20.642Z",
"updatedAt": "2025-08-20T22:58:20.642Z"
}
]
},
{
"id": 8973,
"name": "Airdrops",
"description": "Reward adopters",
"isLocked": true,
"bips": 1500,
"linearStartTimestampRelative": [
0,
1
],
"linearEndTimestampRelative": 28512001,
"linearBips": [
833,
9167
],
"numOfUnlocksForEachLinear": [
1,
11
],
"startsAt": "2025-09-24T22:00:00.000Z",
"project": null,
"recipients": [
{
"id": 15130,
"recipientAddress": "0x2a452A9FaFC87C38eEB4F3447901dE463Ae8C30C",
"amount": "30000000",
"actualId": null,
"createdAt": "2025-08-20T22:47:37.036Z",
"updatedAt": "2025-08-20T22:47:37.036Z"
},
{
"id": 15131,
"recipientAddress": "0x3636585a8d0c74A340c1015d767882545608eDa5",
"amount": "30000000",
"actualId": null,
"createdAt": "2025-08-20T22:47:37.044Z",
"updatedAt": "2025-08-20T22:47:37.044Z"
},
{
"id": 15132,
"recipientAddress": "0xC72655515b34a311dE0bfC57B476632175922109",
"amount": "30000000",
"actualId": null,
"createdAt": "2025-08-20T22:47:37.052Z",
"updatedAt": "2025-08-20T22:47:37.052Z"
},
{
"id": 15133,
"recipientAddress": "0xb50b69b854b0772a361B5F9AFB332a81d14e540B",
"amount": "30000000",
"actualId": null,
"createdAt": "2025-08-20T22:47:37.060Z",
"updatedAt": "2025-08-20T22:47:37.060Z"
},
{
"id": 15134,
"recipientAddress": "0x6E07675D5E67f0afDD262658F66130C9Ef06c432",
"amount": "30000000",
"actualId": null,
"createdAt": "2025-08-20T22:47:37.067Z",
"updatedAt": "2025-08-20T22:47:37.067Z"
}
],
"releases": [
{
"id": 15051,
"type": "LINEAR",
"duration": 12,
"startsAt": "2025-09-24T22:00:00.000Z",
"bips": 10000,
"durationUnit": "months",
"createdAt": "2025-08-20T22:47:36.955Z",
"updatedAt": "2025-08-20T22:47:36.955Z"
}
]
},
{
"id": 8974,
"name": "Marketing and Growth",
"description": "Grow ecosystem",
"isLocked": true,
"bips": 2000,
"linearStartTimestampRelative": [
0,
1
],
"linearEndTimestampRelative": 59616001,
"linearBips": [
416,
9584
],
"numOfUnlocksForEachLinear": [
1,
23
],
"startsAt": "2025-09-24T22:00:00.000Z",
"project": null,
"recipients": [
{
"id": 15136,
"recipientAddress": "0xD36566E6983dE8bC71a71c0F8E2A8EFC0e44427f",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:50:08.276Z",
"updatedAt": "2025-08-20T22:50:08.276Z"
},
{
"id": 15137,
"recipientAddress": "0x71da72D86e0bc6505fa282e294672F1445Ae4022",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:50:08.283Z",
"updatedAt": "2025-08-20T22:50:08.283Z"
},
{
"id": 15138,
"recipientAddress": "0xeFf6F6fE93554886601523649A2f6974e87E6400",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:50:08.288Z",
"updatedAt": "2025-08-20T22:50:08.288Z"
},
{
"id": 15139,
"recipientAddress": "0x67d7b00801c9b0b8B0ED1Fc8e52372FB0647212d",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:50:08.294Z",
"updatedAt": "2025-08-20T22:50:08.294Z"
},
{
"id": 15140,
"recipientAddress": "0x1CAe2C3fa3D39E06c938a92A4E8d00292e4C7C5C",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:50:08.300Z",
"updatedAt": "2025-08-20T22:50:08.300Z"
}
],
"releases": [
{
"id": 15053,
"type": "LINEAR",
"duration": 24,
"startsAt": "2025-09-24T22:00:00.000Z",
"bips": 10000,
"durationUnit": "months",
"createdAt": "2025-08-20T22:50:08.242Z",
"updatedAt": "2025-08-20T22:50:08.242Z"
}
]
},
{
"id": 8976,
"name": "Treasury and Community Fund",
"description": "Reserve",
"isLocked": true,
"bips": 3000,
"linearStartTimestampRelative": [
0,
1
],
"linearEndTimestampRelative": 59616001,
"linearBips": [
416,
9584
],
"numOfUnlocksForEachLinear": [
1,
23
],
"startsAt": "2025-10-24T22:00:00.000Z",
"project": null,
"recipients": [
{
"id": 15142,
"recipientAddress": "0x58EFB7F8298E48b128cdDbad1790F76209Ae0409",
"amount": "45000000",
"actualId": null,
"createdAt": "2025-08-20T22:52:58.994Z",
"updatedAt": "2025-08-20T22:52:58.994Z"
},
{
"id": 15143,
"recipientAddress": "0x061b83c4D0a90397DfeB533DC90ad0732809426f",
"amount": "45000000",
"actualId": null,
"createdAt": "2025-08-20T22:52:59.003Z",
"updatedAt": "2025-08-20T22:52:59.003Z"
},
{
"id": 15144,
"recipientAddress": "0x4103DEdB4Ef6958787C4Ab31DBCd964F7D9AcA5D",
"amount": "45000000",
"actualId": null,
"createdAt": "2025-08-20T22:52:59.012Z",
"updatedAt": "2025-08-20T22:52:59.012Z"
},
{
"id": 15145,
"recipientAddress": "0x3b81261e6F9dF6E221D698515585AC8bd734406A",
"amount": "45000000",
"actualId": null,
"createdAt": "2025-08-20T22:52:59.018Z",
"updatedAt": "2025-08-20T22:52:59.018Z"
},
{
"id": 15146,
"recipientAddress": "0x34646FC88bd16537e1c0e5f8458605aBB4b9Cb3d",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:52:59.024Z",
"updatedAt": "2025-08-20T22:52:59.024Z"
},
{
"id": 15147,
"recipientAddress": "0xaa1C837119fF2c2191c9180eCaFC0e52005Fa62b",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:52:59.029Z",
"updatedAt": "2025-08-20T22:52:59.029Z"
},
{
"id": 15148,
"recipientAddress": "0xB631e75C81F372F834932c1cb0f2492179BE9c8c",
"amount": "40000000",
"actualId": null,
"createdAt": "2025-08-20T22:52:59.037Z",
"updatedAt": "2025-08-20T22:52:59.037Z"
}
],
"releases": [
{
"id": 15055,
"type": "LINEAR",
"duration": 24,
"startsAt": "2025-10-24T22:00:00.000Z",
"bips": 10000,
"durationUnit": "months",
"createdAt": "2025-08-20T22:52:58.955Z",
"updatedAt": "2025-08-20T22:52:58.955Z"
}
]
}
],
"tokenomicsStatus": {
"hasUnlocked": false,
"daysFromFirstUnlock": 29
},
"multichainAgents": []
}
</full_details> Investment info last updated: Aug 20, 2025 23:31