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 infrastructure for the agent economy — payment rails, service discovery, identity attestations, and audit trails for autonomous agents transacting with real money. Built with my cofounder, Monserrat Mendoza — product and UX across every project below, expanding into marketing, and now shipping real code too (see the Nirium section for two merged PRs that are hers).

Six projects, four chains, each for a specific reason:

Project(s) Chain Why there
Periplo, Nirium, Contextio Stellar Payments: $0.0007667 average transaction cost and 24/7 settlement, cheap enough for agent-scale micropayments, plus the SCF funding program this portfolio started in
Kumply Avalanche Compliance for regulated institutions: purpose-built Evergreen Subnets give KYC, permissioned validators, and controlled access — the same track that had Progmat migrate $2B+ in security tokens in Feb 2026 and 29 institutions (Franklin Templeton, VanEck, WisdomTree among them) formalize the Avalanche Payments Collective in Q2 2026, compliance named as one of its explicit categories
Vouch402 Base Where the x402 agent-payment volume already is: an independent census puts 98.44% of all published x402 resources on Base, and Base itself claims to be "the leading blockchain across the metrics that matter most" for onchain payments
Prova Solana Sub-second finality, ~$0.0004–0.0005 per transaction — the cost profile a high-frequency agent-receipt layer actually needs

Each one stays where it started until real demand justifies expanding it elsewhere. Contextio's mainnet is deliberately narrower than its testnet build, and Prova hasn't gone to mainnet at all yet — still Solana devnet only. Same reason for both: gated on evidence, not on a roadmap slide. If that expansion ever happens, the preference is to stay inside these same four networks first — where the tooling, the relationships, and the compliance homework are already done — over opening a fifth network cold. That's a stated preference, gated on both real demand and actual strategic fit, not a promise of when or whether it happens.

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. Where something is still open or unmerged, it's marked as such, not implied to be done.

I write it this dense on purpose. Every project below moves someone else's funds or blocks their transaction, so I'd rather you check the receipts than take my word for anything. If a claim here can't be clicked and verified, it doesn't belong here.


Highlights

Skip the rest if you only have 90 seconds — this is the material that actually matters, each one a link, not a claim:

  • Found and fixed a crash in x402's own official conformance suite, merged upstream the same week — x402-foundation/x402#3228.
  • A skill PR survived ~16 real review rounds across 21 days before mergingstellar/stellar-dev-skill#97 — because I kept addressing feedback instead of abandoning it.
  • When I was wrong, I said so and closed my own issue against myself: OpenZeppelin/stellar-contracts#839 turned out to be a construction bug in my own code, not a library gap — confirmed with the maintainer's help, not asserted.
  • Kumply's compliance contracts are live and verified on Avalanche, Fuji testnet and mainnet C-Chain read-only beta — AttestationStore on Snowtrace, source at kumplyprotocol/Kumply — the one non-Stellar project in this profile with its own paper trail.
  • Every contract I ship is non-custodial by construction — the client's own wallet signs, or a role that by contract design cannot move funds, never a key of mine that can. Detail and a real example under "How I work" below.
  • 981 commits across these seven repos over 219 straight days (1 Feb – 8 Sep 2026), pulled from git log, not typed in: 20.8% of them land on a weekend, 12.1% between 10pm and 6am local time. There's a real gap from 3am–6am — not claiming literal around-the-clock, the data just doesn't say that.
  • Two Stellar Community Fund Instawards, both delivered against real milestones, not just awarded — the track record the rest of this profile's execution claims actually rest on. These exist because of a real credential, not luck: Instawards require active participation in a local Stellar Ambassador Chapter — that's the program's own stated eligibility rule, not something I'm claiming on my own. I'm a Starmaker-tier Stellar Ambassador; the program was recently restructured and tier confirmations are still going out, so I'm not citing a specific level until that settles.

Activity

Commits, pull requests, merged PRs, reviews and issues for Eras256 Most used languages for Eras256

Both cards are rendered live from the GitHub API by github-stats-extended, so the numbers move on their own rather than being typed in here (checked live 2026-09-05, still serving). If a number here looks off against my GitHub profile page or the tables further down, it's almost always scope, not error: this card counts my own repos and public commits over the last year, the profile page's contribution count adds PRs/issues/reviews and private activity on top of that, and the per-project tables below are all-time and repos-I-don't-own only — three different, narrower slices of the same activity, not three inconsistent counts of the same thing.


What I'm building

Periplo, Nirium, and Contextio are three separate Stellar products, not three names for one thing — but they share real upstream dependencies (same protocols, sometimes the literal same bug), so the contribution tables further down attribute each fix to the specific project it came from instead of merging them into one undifferentiated pile. If a note says "this one's Nirium's, not Periplo's," that's the reason.

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 + MPP payment layer, and MCP integration. Non-custodial: the client's wallet signs, or a scoped RebalanceManager role that by contract design can't withdraw or move funds; Nirium itself never holds a key that can. Apache-2.0.
nirium-sdk The TypeScript and Python packages plus CLI behind Nirium — x402 pay/serve, MPP session budgets, IPFS audit anchoring. Also where Nirium runs its own GrantFox bounty program (see below). Apache-2.0.
Contextio · contextio.xyz An AI agent that moves treasury and payroll funds for companies in Brazil, Argentina, and Colombia, binding every action to a verifiable Legal Context Protocol (LCP) document. Live on Stellar testnet (full autonomy) and mainnet (deliberately narrower: read-only data plus self-custody actions only, invitation-only while contracts await external audit). SEP-53 wallet sign-in. Originally a Stellar PULSO Hackathon submission, now aimed at the SCF Integration Track. Migrated from a personal repo to the contextio org.
nirium-pollar-adapter · npm Adapter that lets a wallet onboarded through the Pollar SDK pay x402 requests and anchor audit receipts. Published to npm, running against Stellar mainnet. MIT.
Kumply · kumply.xyz On-chain KYC/KYB/KYA compliance attestations for Avalanche — no personal data stored on-chain, just (tier, expiry, issuer, revocation status). Contracts live and verified on Fuji testnet (full read/write) and Avalanche mainnet C-Chain (AttestationStore, read-only beta). 164 tests on every push. Apache-2.0.
Vouch402 · vouch402.xyz x402-metered on-chain risk intelligence for agents on Base, with a built-in proof-of-fulfillment attestation layer. Full quote-to-attestation flow run end-to-end on Base mainnet, not just testnet: settled payment, fulfillment attestation, EAS schema. Client packages on npm: vouch402-sdk, vouch402 (CLI), vouch402-mcp-server. Source repo is private.
Prova · theprova.xyz Cryptographic, on-chain receipts for AI agent actions on Solana — one attest() call, one Ed25519-sealed record, verifiable without trusting the operator's own logs. Solana devnet today, not mainnet — stated plainly since the site's own copy could be read otherwise. SDKs (prova-agent-sdk etc.) published on npm at 0.1.7. Apache-2.0.

Periplo — upstream contributions

Snapshot below is a live re-check as of 2026-09-05; the search links at the bottom always supersede it. Full first-hand narrative with transaction hashes and reproduction steps lives in Eras256/Periplo's own README.

Merged

PR Repo Merged
#3228 — scope EVM/SVM client signer derivation to the selected --families, fixing a crash in the official e2e conformance suite x402-foundation/x402 2026-08-31 — authored by me, merged by @phdargen. Closes #3187, which I also filed. An earlier attempt, #3219, was closed unmerged and superseded by this one.
#103 — point ECOSYSTEM_CARDS copyValue at raw content, not GitHub's blob HTML page stellar/stellar-dev-skill 2026-08-28, by @kaankacar
#3306 — add a dedicated extension_responses/extensionResponses field instead of leaking EXTENSION-RESPONSES data via the buyer-facing extensions field x402-foundation/x402 2026-08-31, by @phdargen. Closes #3270, which I filed. Not my code — full detail below.
#97 — production patterns for x402 + MPP stellar/stellar-dev-skill 2026-09-05, by @kaankacar — this one's Nirium's, not Periplo's; see the Nirium section below

Open fix PRs

PR Repo Fixes
#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 #3121
#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. Blocked/mergeable pending review; nudged 2026-08-31 that this is no longer theoretical now that v17.0.0/v17.0.1 made CAP-71 v2 the default on both ends of the auth flow.
#844 — drop the Lazy-mode expiration check that validates the wrong value OpenZeppelin/stellar-contracts #840 — this one is Nirium's, not Periplo's; see the Nirium section below. Was mergeable and CI-green since Aug 24; picked up a merge conflict since (CONFLICTING/DIRTY as of 2026-09-05) — needs a rebase, still no maintainer response to the Aug 31 nudge.
#4960 — bump heck 0.3 → 0.5 to drop the unbounded edition2024 landmine otter-sec/anchor Unrelated dependency fix, not tied to either product

Bug reports that landed

  • x402#3171paymentRequirementsMatchAccepted threw on a missing/null payload.accepted. I found and reported it; the code fix was written by @JasonColapietro in #3180, merged 2026-08-17. The merged patch is his work, not mine — my part was the report.
  • x402#3270HTTPFacilitatorClient.settle()/verify() decoded the EXTENSION-RESPONSES header and then discarded it. I fixed this on Periplo's own side the same day rather than waiting on upstream. Closed 2026-08-31 — not the way it first looked like it would close. The actual fix was the maintainer's own separate PR, #3306 (Python, @phdargen), introducing a dedicated extension_responses/extensionResponses field instead of reusing extensions — explicitly rejecting that shape (which my own workaround used, and so did the two community PRs this finding first prompted) as leaking a server-only sidechannel into buyer-facing data. #3278 (TypeScript, @Bartok9) was revised to match before merging separately; #3301 (Go, @wnjoon) and PhilBot402/x402#4 (Python, draft) remain open, likely needing the same adjustment. My own /settle still uses the old shape — migrating once @x402/core actually ships the new field (not yet: latest is still 2.24.0, predating this fix).
  • eas-sdk#132getUIDsFromAttestReceipt trusted log topic0 without checking the emitter address, found while auditing the library Vouch402 calls for every attestation it emits. Vouch402 itself isn't affected (no resolver, no multiAttest() calls) — a library-level finding, not a gap in that project. Closed as completed by the maintainer 2026-08-27, fixed in eas-sdk 2.10.0.
  • OpenZeppelin/stellar-contracts#839 — hit UnreachableCodeReached combining Signer::Delegated with a CallContract rule, and opened this not sure yet whether it was our construction or a real library gap. Closed 2026-09-02, resolution: ours. With help from the maintainer (@brozorec) clarifying execute()'s self-authorization is meant only for self-admin operations, hand-constructing both auth entries (the smart account's own plus the delegate's) authorizes and confirms correctly on-chain — no library fix needed, the trap was in how we were building the auth entry, not the library.

Still open, awaiting maintainer response

x402-foundation/x402#3121, #3148, #3169; stellar/js-stellar-sdk#1681, #1683.


Nirium — upstream contributions and GrantFox bounty program

Upstream, to repos Nirium doesn't own

Item Repo Status
#96 — add Nirium to community skills stellar/stellar-dev-skill Merged 2026-08-15
#97 — production patterns for x402 + MPP stellar/stellar-dev-skill Merged 2026-09-05, by @kaankacar, after ~16 real review rounds across 21 days. An earlier version, #14, was closed unmerged and superseded by this one
#844 — fix(fee-abstraction): drop Lazy-mode expiration check that validates the wrong value OpenZeppelin/stellar-contracts Open, fixes #840. Was mergeable and CI-green since Aug 24; picked up a merge conflict since (needs a rebase, as of 2026-09-05), still no maintainer response to the Aug 31 nudge
#47 — mainnet sponsor/relayer account silent 500+ hours OpenZeppelin/relayer-plugin-x402-facilitator Open. As of 2026-09-05 this is four independent integrators (Nirium's own fee-payer, AgentPayments.fi, NovaCorpAI, and Lexirieru/stellarouter) converging on the same finding from four directions, with no OZ response yet
#58 — allow an external SEP-43 signer instead of a raw secret key stellar/stellar-mpp-sdk Open
#30 — Nirium x402 adapter demo (apps/nirium) pollar-xyz/pollar-apps Merged 2026-08-31, by @aleregex

GrantFox bounty program (nirium-protocol/nirium-sdk)

This is Nirium's own repo, so these are bounties Nirium posted, not upstream contributions Nirium made elsewhere. Full live audit as of 2026-09-05: 44 issues across three campaigns, 42 real bounty asks (2 unlabeled resource suggestions aren't bounties) — 20 delivered inside nirium-sdk itself, 2 delivered externally and still awaiting that project's own review, 4 closed and administratively recreated under a later campaign, 16 closed without delivery.

Full breakdown — every delivery, who opened it, and the two that are my cofounder's
  • 20 delivered, each with a merged PR inside nirium-sdk itself.
  • 2 delivered externally, as real PRs against the target repo, both still open and awaiting that project's own review: #75 → Fundable-Protocol/fundable-sdk#8 and #76 → wejoona/api#23. Both were opened by the same bounty contributor, @Santia2004 — not by this account.
  • 4 were closed and administratively recreated under a later campaign, same ask, new issue number: #29→#43, #30→#44, #31→#45, #32→#46.
  • 16 closed without any delivery.

A few of the stronger merged deliveries, cited by bounty issue alongside the PR that closed it and who actually opened that PR, since that's better evidence than a bare link:

Bounty issue Delivering PR Author
#39 — harden the Python WebSocket signals client #47, merged @Simultech369 — external
#51 — GitHub Action to verify a Nirium audit-CID in CI #80, merged @Simultech369 — external
#65 — audit trail forensic export bridge #69, merged @Santia2004 — external

Two more from that same list are worth pulling out separately rather than folding into "external bounty deliveries," because they aren't that — they're my cofounder's own first shipped code for this project, done through the same GrantFox process rather than around it: #44 (CLI pay/serve commands) via #62, and #45 (resilient reconnecting WebSocket signals client) via #61 — both merged, both by Monserrat Mendoza.

One more worth naming separately because it isn't a bounty at all: #81 was a real fail-open vulnerability in the Next.js x402 example (any X-PAYMENT header granted access, valid or not), reported by an outside party and fixed the same way as everything above — a merged PR, #84.

Separately, nirium-pollar-adapter#1 (deferred wallet funding) merged 2026-08-29, and nirium-sdk#68 (restore viem as a direct dependency) merged 2026-08-26 — both real fixes by this account, not bounty deliveries.


Contextio

Contextio moved from a personal repo (Eras256/Contextio) to its own org, contextioEras256/Contextio now resolves to contextio/Contextio. The planner logic behind its treasury/payroll rebalance decisions was extracted into a separate private repo, contextio/contextio-agent-planner, consumed by the main repo as a private git dependency.

Contextio also runs a bounty-style program, though not GrantFox-labeled like Nirium's: five open issues in contextio/Contextio, all opened by this account, none delivered yet — two already have competing external PRs open and unreviewed.

All five issues and the two open external PRs

#1 (Python client parity), #2 (Go client parity), #3 (standalone offline LCP conformance verifier), #4 (GitHub Action to verify a published LCP document in CI), and #5 (CONTRIBUTING.md). Issue #5 already has two competing external submissions, both open and unreviewed: #6 by @mayankbohara0-dev and #7 by @CharoenwitKunna.

Upstream, to stellar/stellar-dev-skill (not owned by Contextio): three merged PRs adding and refining the Contextio SDK's community-skill listing — #98, #101, and #102, all merged 2026-08-15.

Beyond that, I found no upstream contribution from this account to any other external repo specifically for Contextio. Said plainly rather than padded: Contextio's public footprint on this account is its own repo plus that one skill listing, not a wider trail of dependency fixes the way Periplo and Nirium have.


Elsewhere — Kumply, Vouch402, Prova

Same standard as above, smaller footprint since these are newer:

Kumply (Avalanche) — three open bug reports against a third-party community skills repo, Ayomisco/avaxskills, found while building on top of it: #2 (a subnet-deployment skill cites CLI commands that don't exist in the real ava-labs/avalanche-cli), #3 (a precompiles skill has the wrong genesis key name for TxAllowList), #4 (a wagmi skill cites an outdated version and a deprecated hook). All still open. Same pattern as the Instaward one above: KUMPLY's application to Avalanche's Team1 Mini Grants program went in through a real channel, not cold — I'm an official Team1 LatAm collaborator. Applied, decision still pending; not claiming an award that hasn't happened.

Vouch402 (Base)base/skills#152, an open PR adding a Vouch402 plugin listing to Base's own community skills catalog, same genre as the stellar-dev-skill PRs above. Also eas-sdk#132 (closed, fixed — detail above) and foundry-rs/foundry#16209 (cast wallet new <name> still fails with a bare account name, open), both found auditing tooling Vouch402 depends on.

Prova (Solana)otter-sec/anchor#4960, an open PR bumping heck 0.3 → 0.5 to drop an unbounded edition2024 dependency landmine in the Anchor framework Prova's on-chain program is built on. Not merged yet.


Other dependency bug reports

Found using these libraries for Periplo, Nirium, or Contextio, but not clearly attributable to a single one:


Stack

Stellar Soroban Avalanche Base Solana x402 Rust TypeScript Python Node.js Solidity

Protocols — x402, MPP (Charge and Channel), SEP-41 / SAC, SEP-43, SEP-53, CAP-71 delegated auth, MCP, EAS (Ethereum Attestation Service) Chains — Stellar/Soroban (Periplo, Nirium, Contextio), Avalanche (Kumply), Base (Vouch402), Solana (Prova)


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 when I can — #3187 → #3228, #840 → #844. When someone else beats me to the fix, I say so and name them — #3171 → #3180 by @JasonColapietro, #3270 → #3306 by @phdargen — the maintainer's own fix, rejecting the field shape my own workaround used.
  • 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, or a role that by contract design can't move funds — never a key of ours that can.

Search these live yourself

Snapshot above is accurate as of 2026-09-05; these always supersede it: all my PRs · all my issues · nirium-sdk's full bounty board · Contextio's open issues


Reach me

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

X: @vaiossx · Discord: vaiossx

Pinned Loading

  1. Confidia Confidia Public

    TypeScript

  2. 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 1

  3. Periplo Periplo Public

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

    TypeScript

  4. 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

  5. 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