Skip to content
View Eras256's full-sized avatar

Block or report Eras256

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Eras256/README.md

Eras256

I build payment infrastructure on Stellar / Soroban: x402 and MPP payment rails, service discovery, and non-custodial treasury automation.

Most of my public work is either a protocol implementation I maintain or a bug I found in something I depend on and then sent a patch for. Everything below links to the actual issue, PR, or running service — no claim here that you can't click and check yourself.


What I'm building

Project What it actually is
Periplo · periplo.xyz An x402 payment facilitator for Stellar with a "Bazaar" discovery catalog, so an agent can find a payable service it has never seen before. Facilitator is live on stellar:testnetGET /supported responds without setup. Apache-2.0, TypeScript + Soroban.
Nirium · nirium.xyz Autonomous treasury and machine-to-machine payments on Stellar — Soroban contracts in Rust, an x402 payment layer, and MCP integration. Non-custodial: the client's wallet signs, the protocol never holds funds. Apache-2.0.
nirium-sdk The TypeScript and Python packages plus CLI behind Nirium — x402 pay/serve, MPP session budgets, IPFS audit anchoring. Apache-2.0.
Contextio · contextio.xyz Legal Context Protocol (LCP) on Stellar — verifiable, non-custodial binding of legal context to treasury and payroll operations, with SEP-53 wallet auth. Apache-2.0.
nirium-pollar-adapter Adapter that lets a wallet onboarded through the Pollar SDK pay x402 requests and anchor audit receipts. MIT.

Upstream contributions

I use these libraries in production, so when one breaks I try to arrive with the diff rather than just the complaint. Snapshot below is accurate as of 2026-08-29; the live queries at the bottom always supersede it.

Merged

PR Repo Merged
#103 — point ECOSYSTEM_CARDS copyValue at raw content, not GitHub's blob HTML page stellar/stellar-dev-skill 2026-08-28
#102 — update Contextio SDK copyValue to the renamed SKILL.md path stellar/stellar-dev-skill 2026-08-15
#101 — reposition Contextio SDK's catalog description around LCP stellar/stellar-dev-skill 2026-08-15
#98 — add Contextio SDK to community skills stellar/stellar-dev-skill 2026-08-15
#96 — add Nirium to community skills stellar/stellar-dev-skill 2026-08-15

Open fix PRs

PR Repo Fixes
#3228 — scope EVM/SVM client signer derivation to the selected families x402-foundation/x402 #3187
#3215 — derive one wildcard pattern per namespace, not one per registration x402-foundation/x402 #3172
#3138 — use the raw resource URL as canonical for opaque-origin schemes x402-foundation/x402
#3098upto scheme implementation spec for Stellar x402-foundation/x402 #3097
#1672 — walk every CAP-71 delegate node, not just the top level stellar/js-stellar-sdk #1655
#844 — drop the Lazy-mode expiration check that validates the wrong value OpenZeppelin/stellar-contracts #840
#4960 — bump heck 0.3 → 0.5 to drop the unbounded edition2024 landmine otter-sec/anchor
#97 — production patterns for x402 + MPP stellar/stellar-dev-skill

Bug reports that landed

  • eas-sdk#132getUIDsFromAttestReceipt trusted log topic0 without checking the emitter address, so a malicious resolver could inject spoofed UIDs in multiAttest(). Closed as completed.
  • x402#3171paymentRequirementsMatchAccepted threw on a missing/null payload.accepted, leaking a raw internal error to the resource server. Closed as completed.
  • x402#3270HTTPFacilitatorClient.settle()/verify() decoded the EXTENSION-RESPONSES header and then discarded it, so resource servers couldn't branch on extension outcomes. Picked up by another contributor as #3278 ("Fixes #3270"), currently open.

Still open

Reported and awaiting maintainer response:

  • x402-foundation/x402#3121 (broken canonical URL for mcp://tool/{toolName}), #3148 (payment-error advertised in CORS, never emitted), #3169 (double percent-encoding bypasses isValidRouteTemplate's traversal and scheme-injection checks)
  • stellar/js-stellar-sdk#1681, #1683 (auth-entry signing against the wrong public key)
  • OpenZeppelin/stellar-contracts#839 (__check_auth traps on a Signer::Delegated + CallContract auth entry)
  • stellar/stellar-mpp-sdk#58 (allow an external SEP-43 signer instead of a raw secret key)
  • Creit-Tech/Stellar-Wallets-Kit#105 (signMessage() JSDoc says SEP-43 hex, Freighter returns base64)
  • foundry-rs/foundry#16209 (cast wallet new <name> still fails with a bare account name)

Totals as of 2026-08-29 — 18 pull requests and 29 issues opened across 19 repositories I don't own, belonging to 16 different accounts; 5 PRs merged. Not every one landed, and the closed-unmerged ones are in the same search: all my PRs · all my issues


Stack

Stellar Soroban x402 Rust TypeScript Python Node.js

Protocols — x402, MPP (Charge and Channel), SEP-41 / SAC, SEP-43, SEP-53, CAP-71 delegated auth, MCP Chains — Stellar / Soroban primarily; some EVM and Solana work


How I work

  • Small PRs, one root cause each, with the reproduction in the description.
  • If I file a bug in a dependency, I try to open the fix alongside it — #3187 → #3228, #1655 → #1672, #840 → #844.
  • When I'm not sure whether it's my bug or theirs, I say so in the issue rather than asserting a diagnosis I can't back (#839 is an example).
  • Every contract I ship is non-custodial by construction: the client signs, the protocol never holds a key that can move funds.

Reach me

Open an issue on any repo above, or start with periplo.xyz · nirium.xyz · contextio.xyz

Pinned Loading

  1. Aurex Aurex Public

    TypeScript

  2. Confidia Confidia Public

    TypeScript

  3. Nirium Nirium Public

    Open protocol for autonomous treasury & machine-to-machine payments on Stellar — Soroban smart contracts (Rust), x402 payment layer, and MCP integration.

    TypeScript

  4. Periplo Periplo Public

    x402 payment facilitator with Bazaar (discovery) for Stellar — SCF #45 Build Award submission

    TypeScript

  5. nirium-protocol/nirium-sdk nirium-protocol/nirium-sdk Public

    Autonomous treasury and agentic payments (x402/MPP) for Stellar/Soroban — TypeScript and Python packages, plus a CLI.

    TypeScript 2 20

  6. nirium-protocol/nirium-pollar-adapter nirium-protocol/nirium-pollar-adapter Public

    Nirium adapter for the Pollar SDK — x402 pay-per-request and IPFS audit anchoring using the wallet a user onboarded through Pollar.

    TypeScript