Skip to content

feat: add Nexus implementation address to environment configuration#684

Draft
sundayonah wants to merge 2 commits intomainfrom
feature/biconomy-v2-to-nexus
Draft

feat: add Nexus implementation address to environment configuration#684
sundayonah wants to merge 2 commits intomainfrom
feature/biconomy-v2-to-nexus

Conversation

@sundayonah
Copy link
Collaborator

@sundayonah sundayonah commented Feb 6, 2026

Biconomy V2 → Nexus migration – implementation steps

Goal: Migrate from Biconomy V2/Infinitism to Nexus (and MEE versioning).
Scope: Aggregator only (bundler/paymaster, factory, initCode, paymaster payload).
Refs: Account Migration Guide, V2→Nexus, MEE Versioning, Contracts and Audits.


Phase 1: Prep and config

Step Task Where
1.1 Choose MEE version (e.g. 2.1.0 or 2.2.1) and get Nexus implementation, bootstrap, and factory addresses per chain from Contracts and Audits Docs + config/DB
1.2 Add Nexus addresses to config (env) or DB (network table); ensure EntryPoint remains correct for Nexus config/, ent/ (if DB), utils/userop.go

Phase 2: Nexus initCode for new accounts (aggregator code)

Step Task Where
2.1 Add Nexus Account Factory ABI/binding; replace V2 factory 0x9406Cc6185a346906296840746125a0E44976454 and SimpleAccountFactory createAccount(owner, salt) with Nexus factory + Nexus init encoding (bootstrap + initData / initNexusWithDefaultValidator) services/contracts/, utils/userop.go (~79–92)
2.2 Optional: add USE_NEXUS_ACCOUNTS (or similar) flag to toggle Nexus vs V2 path during rollout; remove V2 path after migration Config + utils/userop.go

Phase 3: Paymaster payload (aggregator code)

Step Task Where
3.1 In SponsorUserOperation, replace Biconomy payload smartAccountInfo: { "name": "INFINITISM", "version": "1.0.0" } with Nexus/MEE payload per Biconomy paymaster API for Nexus utils/userop.go (~143–176)
3.2 Confirm paymaster response parsing (e.g. paymasterAndData, gas limits) still works with Nexus response format utils/userop.go

Phase 4: Bundler and endpoints

Step Task Where
4.1 Update DB so each Biconomy network’s BundlerURL and PaymasterURL point to Nexus bundler/paymaster endpoints for that chain; keep staging/production in sync DB / scripts / scripts/db_data/dump.sql
4.2 If Nexus uses a different host, extend detectAAService and keep using the same biconomy code path for Sponsor/Send utils/userop.go

Phase 5: Signing and paymaster account (aggregator)

Step Task Where
5.1 No change to SignUserOperation (same UserOp hash/signature for Nexus)
5.2 Confirm or make configurable the Biconomy paymaster account address in GetPaymasterAccount (currently hardcoded); use Nexus paymaster address per chain if different utils/userop.go

Phase 6: Bundler send and receipt

Step Task Where
6.1 Ensure SendUserOperation (and any receipt/status calls) use same or updated params for Nexus bundler; adjust only if Biconomy docs require it utils/userop.go

Phase 7: Contracts and tests

Step Task Where
7.1 Add Nexus factory binding/ABI; keep or remove SimpleAccountFactory when V2 path is removed services/contracts/
7.2 Update utils/userop_test.go and test env for Nexus payload and URLs utils/userop_test.go, utils/test/test.env

Phase 8: Existing V2 accounts (outside aggregator)

Step Task Where
8.1 Run one-time V2→Nexus migration (updateImplementation + initializeAccount) via script or in-app flow with user signer; aggregator continues to use same sender address after migration Separate script (e.g. Node/TS with @biconomy/account + @biconomy/abstractjs) or frontend + small service

Phase 9: Deploy and docs

Step Task
9.1 Deploy to staging; test new-account creation and sponsored UserOps; run migration for test V2 accounts if applicable
9.2 Sync production with same Nexus config and URLs before Feb 28, 2026
9.3 Reference Biconomy migration and MEE versioning docs in code/comments and this PR

Checklist (aggregator)

  • Choose MEE version; add Nexus implementation, bootstrap, factory addresses (config or DB)
  • Replace V2 factory + initCode with Nexus factory + initCode in InitializeUserOperation
  • Update Biconomy paymaster payload from INFINITISM to Nexus in SponsorUserOperation
  • Update BundlerURL and PaymasterURL for Biconomy networks in DB to Nexus endpoints
  • (If needed) Make GetPaymasterAccount biconomy address configurable per chain
  • Add Nexus factory ABI/binding; update tests and test env
  • Plan/execute one-time V2→Nexus migration for existing accounts (outside aggregator)
  • Staging + production deploy; document references

Dprof-in-tech and others added 2 commits February 6, 2026 08:09
* feat: implement deletion of fiat accounts in provider profile

* refactor: remove logging for skipped fiat accounts with missing details in profile update
@sundayonah sundayonah marked this pull request as draft February 6, 2026 08:14
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 6, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/biconomy-v2-to-nexus

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

VOYAGER_MONTHLY_LIMIT=300000

# Nexus Implementation (e.g. MEE 2.1.0)
NEXUS_IMPLEMENTATION_ADDRESS=************************* No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Invalid placeholder address risks silent zero-address in production

Medium Severity

NEXUS_IMPLEMENTATION_ADDRESS is set to ************************* (25 asterisks) which is not a valid Ethereum address. Notably, Dockerfile.prod copies .env.example directly as the production .env file. Unlike the comparable ENTRY_POINT_CONTRACT_ADDRESS which contains an actual 0x-prefixed address, this placeholder will silently resolve to a zero address when passed to common.HexToAddress() once consuming code is added in subsequent phases. The value here needs to be either the real public Nexus implementation contract address or left empty with clear documentation.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments