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: how an AI agent pays, how it gets checked before anyone trusts it, and how it proves what it did. Each piece runs on the network that fits it.

What it does for an agent Product Network Status
Pays, gets paid, keeps proof Nirium: x402 pay-gates for any API, an audit trail that pins a hash (and optionally who signed it) to IPFS, and a treasury agent that moves idle funds into tokenized CETES Stellar Partly on mainnet: x402 payments, the audit trail, and the treasury on a third-party DeFindex vault · Nirium's own vault contract stays on testnet until it has an external audit
Finds a paid service and settles it Periplo: x402 facilitator with a Bazaar discovery catalog and an upto scheme on Soroban Stellar Testnet, with an outside seller in the catalog
Checks who it's paying Vouch402: pay-per-call risk data on any address, plus EAS attestations that a paid service was delivered Base Mainnet, full flow settled
Proves who's behind it Kumply: KYC/KYB/KYA tiers as on-chain attestations, no personal data on-chain, and an L1 where validators must hold one Avalanche Fuji testnet (full) · mainnet read-only beta · L1 registered on Fuji, not active yet
Moves company money under signed terms Contextio: treasury and payroll agent for LatAm companies, every action tied to a signed legal document (LCP) Stellar Testnet (full agent) · mainnet invite-only, read-only and self-custody, contracts pending audit
Proves what it did Prova: one attest() call, one Ed25519-signed receipt on-chain through an Anchor program Solana Devnet
Side build Votalo: group voting with a passkey, no wallet; every vote is an EIP-712 signature Monad Testnet

Built with my cofounder Monserrat Mendoza, Dev Lead. She has six merged PRs in Nirium and has shipped fixes in Kumply and Vouch402. More on her profile.

A product only moves to a new network when there's real demand for it. That's why Contextio's mainnet does less than its testnet, and Prova is still on devnet.


Proof, not claims

Every item links to something you can check. If it's still open or unmerged, I say so.

  • Periplo: I found and fixed a crash in x402's official conformance suite. Merged upstream the same week: x402-foundation/x402#3228.
  • Nirium: a shared facilitator was down on mainnet for 32 days. After the fix I checked it with a real $0.05 payment, not just a 200 response: OpenZeppelin/relayer-plugin-x402-facilitator#47.
  • Nirium: Trustless Work, a team we had never worked with, merged 4 of our PRs in one sitting (three mine, one my cofounder's) as research for their agentic payments work: Trustless-Work/agentic-escrow-research#1-#4.
  • Vouch402: I found a security bug in the library Vouch402 uses for every attestation. The maintainer fixed it: eas-sdk#132.
  • Kumply: before turning on our Avalanche L1, I checked our validator manager against ava-labs' real source code and found a bug in our own code. A missing 4-byte length prefix meant the conversion ID would never match what the P-Chain signs. Our 27 tests missed it because the mock had the same mistake. Fixed and redeployed (writeup). The contracts run on C-Chain mainnet as a read-only beta, with verified source: AttestationStore.
  • Prova: I removed a dependency problem from Anchor, the Solana framework Prova is built on. Merged by the maintainer: anchor#4960.
  • Periplo: when I was wrong, I said so and closed my own issue. OpenZeppelin/stellar-contracts#839 was a bug in how I built the auth entries, not in the library.
  • Nirium: two Stellar Community Fund Instawards, delivered against real milestones. You can only get one as an active Stellar Ambassador; that's the program's rule, not my claim.
  • Every contract I ship is non-custodial: the user's own wallet signs, or a role that can't move funds by design. I never hold a key that can.
Full receipts: every PR, issue and bounty, by project

Most of my public work is one of two things: a protocol I maintain, or a bug I found in something I depend on, followed by a fix. When someone else wrote the fix, I name them. The report was mine, the patch wasn't.

Periplo, Nirium and Contextio share a lot of upstream code, sometimes the exact same bug. So each item is listed under the project it came from.

Checked against the GitHub API on 2026-10-11. The search links at the bottom are always more current.

Kumply, Vouch402, Prova

Kumply (Avalanche): three bugs I reported in a community skills repo, Ayomisco/avaxskills, found while building on it: #2 (a skill lists CLI commands that don't exist in ava-labs/avalanche-cli), #3 (wrong genesis key name for TxAllowList) and #4 (an outdated wagmi version and a deprecated hook). All three are open, and so are my fixes: #5, #6, #7. I'm an official Team1 LatAm collaborator for the Avalanche ecosystem. I also built AgentHub Protocol for Avalanche's Hack2Build: Payments x402 hackathon: x402 micropayments, on-chain agent reputation, and integrations with Trader Joe, Benqi and Aave V3. The SDK is on npm and the contracts are on Fuji. It hasn't been touched since January 2026.

Vouch402 (Base): base/skills#152, an open PR to list Vouch402 in Base's community skills catalog. While checking the tools Vouch402 depends on, I also found eas-sdk#132 (fixed) and foundry-rs/foundry#16209 (cast wallet new <name> failed with a plain account name; fixed by @riba2534 in #16219, closed 2026-09-09). I'm a Based Developer Ambassador in Base's Discord.

Prova (Solana): otter-sec/anchor#4960 bumps heck from 0.3 to 0.5, which removes an edition2024 dependency that could break Anchor builds. Merged 2026-09-30 by @jamie-osec. He merged three more of mine in October: #5130 (NonZero* integers in IDL generation, 2026-10-08), #5131 (error on type aliases with the same name but different definitions, 2026-10-07) and #5132 (Space for NonZero* integers, 2026-10-07).

Periplo

The full story, with transaction hashes and steps to reproduce, is in Periplo's 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. My PR, merged by @phdargen. Closes #3187, which I filed. My earlier attempt, #3219, was closed in favor of this one.
#103: point ECOSYSTEM_CARDS copyValue at the raw file, not GitHub's HTML page stellar/stellar-dev-skill 2026-08-28, by @kaankacar
#3306: a dedicated extension_responses/extensionResponses field instead of leaking EXTENSION-RESPONSES data through extensions x402-foundation/x402 2026-08-31, by @phdargen. Closes #3270, which I filed. Not my code.
#3336: include feeBumpSigner in the facilitator safety checks x402-foundation/x402 2026-09-03. My PR, merged by @phdargen. Closes #3332, which I filed.

Open fix PRs

PR Repo Fixes
#3215: one wildcard pattern per namespace, not one per registration x402-foundation/x402 #3172
#3138: use the raw resource URL for opaque-origin schemes x402-foundation/x402 #3121
#3098: upto scheme spec for Stellar x402-foundation/x402 #3097
#3338: enforce the settlement override limit against PaymentRequirements.amount x402-foundation/x402 #3334 (closed by the maintainer 2026-09-08)
#3339: document that areFeesSponsored: false isn't supported x402-foundation/x402 #3333
Tally#1: declare paymentFlows/defaultAssetTransferMethod in an upto server so it works with @x402/core Madhav-Gupta-28/Tally -

Bugs I reported that got fixed

  • x402#3169: isValidRouteTemplate decoded routeTemplate only once, so double percent-encoding got past its traversal and scheme-injection checks. Fixed by @ygd58 in #3213, merged 2026-09-09.
  • x402#3270: HTTPFacilitatorClient.settle()/verify() decoded the EXTENSION-RESPONSES header and threw it away. I worked around it in Periplo the same day. The real fix was the maintainer's #3306 (Python, @phdargen), which added a new field instead of reusing extensions, so my workaround's shape didn't make it in. My /settle still uses the old shape until I move it to the new field, available since @x402/core 2.28.0.
  • eas-sdk#132: getUIDsFromAttestReceipt trusted the log's topic0 without checking who emitted it. Fixed in eas-sdk 2.10.0, closed 2026-08-27.
  • OpenZeppelin/stellar-contracts#839: hit UnreachableCodeReached combining Signer::Delegated with a CallContract rule. My mistake: I built the auth entries wrong. Closed 2026-09-02.
  • js-stellar-sdk#1655: needsNonInvokerSigningBy()/signAuthEntries() only looked at the top level of a CAP-71 delegate credential. I sent a fix, #1672, which was closed in favor of the maintainer's #1747 (merged 2026-09-28).
  • OpenZeppelin/stellar-contracts#863: with Signer::Delegated, simulation never showed that the delegate had to sign. Closed by @brozorec 2026-09-02.

Still open, waiting on the maintainers: x402-foundation/x402 #3121, #3148, #3333, #3341.

Nirium

In repos Nirium doesn't own

Item Repo Status
#96: add Nirium to the 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 review rounds
#47: the mainnet sponsor account went silent, then a stale RPC took it down OpenZeppelin/relayer-plugin-x402-facilitator Fixed by OZ 2026-09-11; I confirmed it with a real mainnet payment
#58: accept 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
#1-#4: milestone payouts with limited authority, treasury rebalancing, direct x402 payment, and tool-schema evidence for agents Trustless-Work/agentic-escrow-research All four merged 2026-09-21 within 27 minutes. Three are mine, #3 is Monserrat's
#9: research note on fail-closed payment and delivery checks, with two real production bugs found and fixed Trustless-Work/agentic-escrow-research Open since 2026-10-05
#69: fix two mainnet SAC constants that weren't valid StrKeys stellar/stellar-mpp-sdk Merged 2026-09-09 by @jeesunikim. Closes #68
x402#3171: paymentRequirementsMatchAccepted threw when payload.accepted was missing x402-foundation/x402 Fixed by @JasonColapietro in #3180, merged 2026-08-17
#840: fee abstraction's Lazy-mode expiration check validated the wrong value OpenZeppelin/stellar-contracts Closed 2026-09-07. My fix #844 wasn't merged; the docs follow-up #893 is open
#6: Multi-Release trustline.address needs the classic issuer, not the SAC id Trustless-Work/trustlesswork-sdk-react Closed 2026-09-28
#2: the Nirium x402 tab shows a classic Stellar payment labeled as x402 pollar-xyz/demo Open
#3692: @x402/stellar pulls in an axios version with 7 high advisories x402-foundation/x402 Open

Not a bounty, a real collaboration: I opened issue #96, and @CodeDeityX designed and tested the fix and built a public harness to reproduce it. It shipped as #98: nirium@0.16.0 on npm has an optional policy hook on initX402().

GrantFox bounties (bounties Nirium posted in its own repo, nirium-protocol/nirium). As of 2026-09-05: 44 issues across three campaigns, 42 real asks. 20 delivered in nirium, 2 delivered in other projects and waiting on their review, 4 closed and recreated, 16 closed without delivery.

Bounty details: every delivery, who opened it, and the five from my cofounder

Some of the best merged deliveries:

Bounty issue 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: forensic export bridge for the audit trail #69, merged @Santia2004 (external)

Five more are my cofounder's first shipped code for Nirium, through the same GrantFox process: #50 via #58, #37 via #59, #45 via #61, #38 via #60 and #44 via #62, all by Monserrat Mendoza.

Not a bounty: #81 was a fail-open bug in the Next.js x402 example, reported by someone outside the team and fixed in #84. And nirium#108, merged 2026-10-09, stops pay from taking a secret key as a CLI argument, so it no longer ends up in shell history or the process list.

Contextio

Contextio moved to its own org: Eras256/Contextio now redirects to contextio/Contextio. It runs its own bounties: five open issues, none delivered yet, two with outside PRs waiting for review. Upstream, three merged PRs added and updated its listing on stellar/stellar-dev-skill (#98, #101, #102). No other upstream work for Contextio yet.

Shared Stellar SDK work

Found while building the three Stellar products, not tied to one.

  • js-stellar-sdk#1683: authorizeEntry's bare-signature fallback ignored forAddress. Closed by @Ryang-21 2026-09-24.
  • js-stellar-sdk#1681: signAuthEntries couldn't handle a non-master-key signer on a plain account. Fixed by @Ryang-21; I closed it 2026-09-26.
  • js-stellar-sdk#1700: needsNonInvokerSigningBy()/signAuthEntries() missed custom accounts. Closed by @Ryang-21 2026-09-25.
  • py-stellar-base#1215: signing CAP-71 delegates one after another in authorize_entry() silently broke an earlier signature. Closed by @overcat 2026-09-08.
  • OpenZeppelin/stellar-contracts#865: Protocol 28: get_validated_context_by_id won't compile on soroban-sdk 28.x. Closed 2026-09-26.
  • smart-account-kit#7: the @stellar/stellar-sdk peer range had no upper limit, so v17 could get installed and break it. Closed by @kalepail 2026-09-08.
  • js-stellar-sdk#1777: asked for an lts-16 patch with a fixed axios. Open.
  • stellar-docs#2811: a page on autonomous agents under contract accounts. Open PR.

Other dependencies

Hackathons outside the portfolio

Weekend builds, none with a public repo. Two wins were announced by the event itself. The third only has my own tweet, so take it as that.


Stack

Avalanche Base Ethereum Monad Solana Stellar

Stellar
Soroban Stellar SDK OpenZeppelin Stellar Stellar Wallets Kit Pollar DeFindex Blend Etherfuse Trustless Work

EVM: Ethereum, Base, Avalanche, Monad
Solidity OpenZeppelin Hardhat Foundry viem wagmi ethers EAS Avalanche ICM

Solana
Anchor Solana Kit web3.js

Agent payments
x402 MPP MCP LangChain IPFS

Languages and apps
Rust TypeScript Python Next.js React Hono Express Supabase Docker Fly.io Vercel

Protocols: x402, MPP, SEP-41/SAC, SEP-43, SEP-53, CAP-71 delegated auth, MCP, EAS, EIP-712, WebAuthn passkeys

Commits, pull requests, merged PRs, reviews and issues for Eras256

Check it yourself

All my PRs · all my issues · Nirium's bounty board · Contextio's open issues

Contact: open an issue on any repo above, or nirium.xyz · periplo.xyz · vouch402.xyz · kumply.xyz · contextio.xyz · theprova.xyz · votalo.xyz · X: @vaiossx · Discord: vaiossx

Pinned Loading

  1. kumplyprotocol/Kumply kumplyprotocol/Kumply Public

    KYC, KYB and KYA (AI agent verification) as on-chain attestations on Avalanche. Free reads, open-source SDK.

    TypeScript 1

  2. Prova-Solana/Prova Prova-Solana/Prova Public

    TypeScript

  3. Vouch402/Vouchx402 Vouch402/Vouchx402 Public

    x402-metered on-chain risk intelligence for AI agents on Base, with a built-in proof-of-fulfillment attestation layer

    TypeScript