Skip to content

add StableNaira (SNR): fiat-backed NGN stablecoin on Ethereum, Base, BSC#780

Open
samuelogu wants to merge 2 commits into
DefiLlama:masterfrom
samuelogu:add-stablenaira-snr
Open

add StableNaira (SNR): fiat-backed NGN stablecoin on Ethereum, Base, BSC#780
samuelogu wants to merge 2 commits into
DefiLlama:masterfrom
samuelogu:add-stablenaira-snr

Conversation

@samuelogu

@samuelogu samuelogu commented May 10, 2026

Copy link
Copy Markdown
Name (to be shown on DefiLlama):

StableNaira

Website Link:

https://stablenaira.com

Logo (High resolution, will be shown with rounded borders):

https://stablenaira.com/brand/assets/logo.svg

Chain:

Ethereum, Base, BNB Smart Chain

Coingecko ID (leave empty if not listed):

(not yet listed — will follow up via PR once CoinGecko adds SNR)

Coinmarketcap ID (leave empty if not listed):

(not yet listed)

Short Description:

SNR is a regulator-aligned, fiat-backed Nigerian Naira stablecoin issued natively on Ethereum, Base, and BNB Chain. Each unit is backed 1:1 by Naira held in segregated trust accounts at CBN-licensed Nigerian banks, with monthly attestations by an ICAN-accredited auditor and quarterly Big Four assurance audits beginning year two.

mintRedeemDescription:

SNR is minted only after Naira is received into the issuer's segregated reserve accounts at CBN-licensed banks; the API signer then mints SNR 1:1 to the user's wallet. Holders redeem by burning SNR on-chain (which emits a RedeemRequested event), after which the issuer wires the equivalent Naira from reserves to the user's bank account. Cross-chain transfers use a native burn-and-mint protocol with no canonical/locked chain — supply on each chain is independent and circulating supply is the sum.

Token address and ticker:
  • BSC: 0x6B6f93a12705b6eB60490A8b8a9aC15b3B1ce0f2 (SNR)
  • Ethereum: 0xfaE7C1AD37b7ad8848f840109332793bC5889563 (SNR)
  • Base: 0xfaE7C1AD37b7ad8848f840109332793bC5889563 (SNR)

(Ethereum and Base addresses are intentionally identical via deterministic CREATE.)

pegType:

peggedNGN

pegMechanism:

fiat-backed

priceSource:

defillama

wiki:

(none yet)

Twitter Link:

https://x.com/stablenaira

List of audit links if any:

Smart-contract audit pending publication. Monthly ICAN reserve attestations and quarterly Big-Four assurance reports will be added via follow-up PR once published.


Notes for reviewers

  • Decimals are 2 (kobo, the natural sub-unit of NGN), not 18. The addChainExports shorthand reads erc20:decimals on-chain via getIssued, so this is handled automatically with no decimal override needed.
  • No exclusions are needed — totalSupply equals circulating supply by design: there are no pre-mint holders, no treasury locks, no liquidity reserves. SNR is only minted when NGN is received into the reserve accounts.
  • Cross-chain model is burn-and-mint with no canonical chain. Each chain's totalSupply() is independent; summing across chains gives total circulating.

Local test output

--- ethereum ---
minted                    0.00
circulating               0.00
--- base ---
minted                    0.00
circulating               0.00
--- bsc ---
minted                    38.45 M
circulating               38.45 M
------ Total Circulating ------
Total circulating         38.45 M
Total unreleased          0.00

(Eth/Base balances are 0 because mint operations have not yet begun on those chains; circulation is currently BSC-only.)

Summary by CodeRabbit

  • New Features
    • Introduced Stable Naira (SNR), a fiat-backed stablecoin pegged to the Nigerian Naira.
    • Added support for Ethereum, Binance Smart Chain, and Base networks with on-chain addresses for user display.
    • Included pricing/source metadata, mint/redeem descriptions, audit/reference links, and social/market identifiers for end-user visibility.

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 10, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@samuelogu has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 56 minutes and 20 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 780720e7-bda9-4eef-9eb3-50c10a13a5d3

📥 Commits

Reviewing files that changed from the base of the PR and between 27af4d7 and 2867737.

📒 Files selected for processing (1)
  • src/peggedData/peggedData.ts
📝 Walkthrough

Walkthrough

Adds StableNaira (SNR): a new adapter module that defines chain-specific issued addresses and exports an adapter with pegType "peggedNGN", and appends a StableNaira entry to the pegged assets registry (id "392", BSC address, fiat-backed NGN peg).

Changes

Stable Naira Stablecoin Integration

Layer / File(s) Summary
Adapter Configuration
src/adapters/peggedAssets/stablenaira/index.ts
Defines ethBaseAddress and chainContracts for ethereum/base and bsc, constructs adapter via addChainExports(chainContracts, undefined, { pegType: "peggedNGN" }), and exports it as default.
Registry Metadata
src/peggedData/peggedData.ts
Appends a PeggedAsset object for StableNaira (id: "392", symbol: "SNR", bsc:0x6B6f93a12705b6eB60490A8b8a9aC15b3B1ce0f2), with pegType: "peggedNGN", pegMechanism: "fiat-backed", priceSource: "defillama", and module: "stablenaira".

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 I hopped across chains with a careful flair,
Placed SNR addresses with meticulous care,
A peg to NGN, fiat-backed and neat,
Registry updated, adapter complete,
Small rabbit, big ledger — a tidy little share.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding a new fiat-backed Nigerian Naira stablecoin (StableNaira/SNR) across three blockchain networks.
Description check ✅ Passed The description comprehensively follows the template with all required fields filled: name, website, logo, chains, CoinGecko/CMC IDs, descriptions, token addresses, peg type/mechanism, price source, Twitter, and audit status. Additional context (decimals, cross-chain model, local test output) is well-documented.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@realdealshaman

Copy link
Copy Markdown
Contributor

@samuelogu are any of the coins being bridged? also please don't apply your listing over an existing one

@realdealshaman

Copy link
Copy Markdown
Contributor

Also does your project have attestations for us to confirm where the Nairas are being held?

@samuelogu

Copy link
Copy Markdown
Author

Thanks for the review - addressing each:

  1. Bridging - no. None of the supply is bridged in the locked/wrapped sense. SNR uses a native burn-and-mint protocol: there's no canonical chain, no escrow/lock contract, and no wrapped representation. Each chain's supply is independently minted against fiat reserves; a cross-chain transfer burns on the source and mints on the destination (invariant: Σ burns = Σ mints per route). That's why the adapter declares issued on all three chains rather than bridgedFrom* - summing totalSupply() across chains is correct with no double-counting.

  2. Not overwriting an existing listing - confirmed. The PR is purely additive: +42 / -0, two new files, a new registry entry with id: "389". The existing peggedNGN coin (Mento Nigerian Naira, id: 369) is untouched - different issuer, different mechanism, separate entry. Happy to point you at the diff if useful: it contains zero deletions/modifications to existing entries.

  3. Attestations. Yes - reserves are 1:1 NGN held in segregated trust accounts at CBN-licensed Nigerian banks, with monthly attestations by an ICAN-accredited auditor. The attestation reports exist but aren't publicly hosted yet (public publication planned for Q3 2026). In the meantime we're glad to share the latest signed attestation and bank confirmations directly with the DefiLlama team for verification - just let me know the best private channel (DM / email).

One thing you can verify on-chain today: the token's mintCap() is set to the attested reserve figure plus an operational buffer, so total minted is hard-capped to attested reserves at the contract level. Audit links and a public attestation URL will follow as a separate PR (auditLinks) once published.

@realdealshaman

Copy link
Copy Markdown
Contributor

@samuelogu currently you are overwritting CFX MoveUSD
image

@samuelogu
samuelogu force-pushed the add-stablenaira-snr branch from 7b2f1bc to 27af4d7 Compare May 19, 2026 17:48
@samuelogu

Copy link
Copy Markdown
Author

@realdealshaman update — StableNaira is now listed on CoinGecko: https://www.coingecko.com/en/coins/stablenaira

I've updated this PR accordingly:

  • gecko_id: "stablenaira", onCoinGecko: "true"
  • switched priceSource to coingecko (live price is tracking the ₦1 peg)

Also addressed your earlier point: rebased onto current master and renumbered StableNaira to id: "392", so CFX MoveUSD (389), FinChain (390) and USDST (391) are untouched. Diff is purely additive (+42 / −0), the only new id line is 392. Adapter re-tested against live RPCs — BSC-only circulation, no bridged/double-counted supply.

Ready for another look whenever you have a chance. The ICAN attestation offer still stands if you'd like to verify reserves privately — just point me to the right channel.

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.

3 participants