One standing warning

Nobody from Majestic will ever ask for your seed phrase or private key — not by email, not by WhatsApp, not by phone, not on any website. Anyone who does is attempting to steal from you, whatever they claim to be offering. Announcements appear only on majesticchain.io.

1. Why this document exists

Majestic Chain is moving to Polygon. Before holders are asked to claim anything, Majestic is publishing what it found when it examined the final state of the old network in full: how much of each token exists, who holds it, what will and will not carry over, and what was wrong with the system that held it.

Some of what follows is uncomfortable. It is published anyway, for a simple reason: the final state of the chain is a file, that file is held by more than one party, and anything stated here can be checked against it by anyone who obtains a copy. A reconciliation that only works if nobody looks is worthless.

Every figure in this document was derived directly from the chain export. The method is described well enough to be repeated.


2. How to check this yourself

Nothing here requires trusting Majestic.


3. Supply

3.1 MJT

The bank module of the final export records 15,212,814,312.37 MJT in existence. That figure is not the distributed supply, and the difference is the single most important number in this document.

MJT
Claimable by holders (1,213 addresses)1,390,463,406.53
Majestic treasury8,759,406,802.05
Total supply on Polygon10,149,870,208.58
Protocol residue, not migrated5,062,944,103.79

The 10,149,870,208.58 MJT figure is what will exist on Polygon. It corresponds to the supply Majestic actually distributed. The remaining 5.06 billion was never distributed to anyone; section 4 explains what it is.

3.2 MJX

MJX was an ERC-20 contract on the old chain at 0xac06f92372714dF4D3d106Ab88dC1647b3b8afc2, with a recorded total supply of 25,000,000,000 MJX.

MJX
Claimable by holders1,222,924,365.19
Majestic treasury23,767,762,893.44
Total resolved24,990,687,258.63
Unresolved (see 3.3)9,312,741.37

3.3 The 9.3 million MJX that cannot yet be matched to an address

45 MJX balances exist in the contract's storage but cannot be matched back to an address. This is a property of how Ethereum stores balances: the storage key is a one-way hash of the address, so a balance can be seen without the address being recoverable, unless that address appears somewhere else in the export. For these 45, it does not.

These balances total 9,312,741.37 MJX, about 0.037% of MJX supply. They are recorded, not written off. Majestic has requested a full address list from the firm holding the original node data. If you believe you hold MJX that is not showing up, contact Majestic — an address you supply can be hashed and checked against the unmatched set directly, which resolves the question immediately.


4. What does not carry over, and why

4.1 Unwithdrawn staking rewards — 4.96 billion MJT

The old chain ran an inflation mechanism that minted new MJT continuously, with a maximum rate of 20% annually. That mechanism was configured to target two thirds of supply being staked. In reality almost nothing was staked: about 9,810 MJT in total, across ten accounts of roughly 1,000 MJT each.

Because the inflation rate responds to how little is staked, it stayed pinned at its 20% maximum for approximately three and a half years, and the entire output accrued to those ten accounts. Their nominal entitlement came to roughly 496 million MJT each — about three and a half times the holdings of every other holder on the network combined.

No staking programme was ever offered to the public. None of these rewards were ever withdrawn. They were a side effect of a misconfigured protocol parameter, not a product anyone was sold.

These rewards will not be recreated on Polygon. Majestic's position is that honouring them would transfer the majority of the network's value to ten accounts on the basis of an accident, at the direct expense of every genuine holder. The underlying principal that was staked — the ~9,810 MJT — is unaffected, and the ordinary balances held by those same ten accounts migrate in full like everyone else's.

4.2 The community pool — 104 million MJT

A protocol-level pool that was never allocated or spent. Not migrated.

4.3 Protocol accounts with no owner

Three addresses holding MJT are Cosmos module accounts — addresses derived from a name rather than from a private key:

AddressPurposeMJT
0x93354845030274cD4bf1686Abd60AB28EC52e1a7distribution (rewards + community pool)5,062,934,293.39
0x5911B844d7BC224654FE0DCd16BAbD2D253f2fdFnot-bonded staking pool7,810.40
0x4feA76427B8345861e80A3540a8a9D936FD39391bonded staking pool2,000.00

No private key exists for any of them. They are not withheld; they are unreachable. Minting them on Polygon would create supply that nobody could ever move, permanently overstating the circulating total. They are deliberately not minted.


5. Treasury

Majestic's treasury on Polygon is 8,759,406,802.05 MJT and 23,767,762,893.44 MJX. It is made up of:


6. Off-chain exchange balances

Separately from the chain, Majestic operated an exchange where users held balances as account entries rather than in their own wallets. The final ledger records 261 accounts:

Totalof which locked
MJT18,941,845.16293,490.71
MJX846,525,398.5044,191,273.79

"Locked" balances were funds committed within the exchange rather than freely withdrawable. Locked balances are part of the total and are paid out in full. They are not treated differently and nothing is forfeited.

These accounts cannot be migrated through the on-chain claim process, because an account holder never controlled a blockchain address — there is no key to prove ownership with. They are handled through a separate claim route verified by email. Unclaimed balances return to the Majestic vault rather than being distributed to anyone else.


7. Security review of the old system

The following are findings about Majestic Chain and the exchange as they existed, established from the chain export and the exchange's own records.

7.1 MJX could have been rewritten by a single external key

MJX was deployed as an upgradeable proxy. A proxy separates the token's address from the code that runs behind it, and whoever controls the proxy's admin can replace that code at will.

MJX proxy            0xac06f92372714dF4D3d106Ab88dC1647b3b8afc2
      implementation     0xA45de89AbF1376D448A01899A5E4168b70f16137
      proxy admin        0x1173ae1233BEAb77456dBE9999C98996b00F5ca2
        admin's owner →  0x4Fc5C6d8450852164d6A50bF8122ee9C8ea3178D   (a single key)

The holder of that final key could have replaced the MJX implementation at any time, without notice or approval, and thereby minted unlimited MJX, frozen transfers, or rewritten balances outright. That key is not controlled by Majestic and holds exactly 1 MJT.

There is no evidence in the export that this power was ever exercised: supply reconciles, and the export is otherwise clean — no delegated authorisations, no fee grants, no vesting arrangements, no governance proposals. The finding is that the capability existed at all, undisclosed, in hands outside the company.

7.2 Governance could be decided by two machines

Only two validators were ever bonded to the network — aws_validator_21 and aws_validator_22 — holding 1,000 MJT each. Voting power in a proof-of-stake network is proportional to stake, so whoever operated those two nodes held 100% of the vote. The minimum deposit to raise a proposal was effectively zero.

No proposals were ever submitted, so nothing was decided this way. The vulnerability is that anything could have been.

7.3 The exchange ran on its software's default administrator account

The exchange was built on the OpenDAX stack, whose authentication component, Barong, ships with a seeded administrator account — admin@barong.io — whose default passwords are published in the project's own public documentation.

That account was still active in production, and held 3,689,971.51 MJX and 68,219.94 MJT.

7.4 An administrator account Majestic does not recognise

The exchange had three administrator accounts. One belongs to Majestic's CTO. One is the default account above. The third, at the highest privilege level recorded — higher than the CTO's own — was created by the contractor, without Majestic's knowledge or authorisation. Neither Majestic's founder nor its CTO created or approved it, and Majestic's founder was never told it existed.

Majestic's basis for this is set out in section 8: the contractor built and operated the exchange and held administrative control of it, the company retains the correspondence from the engagement, and the exchange databases are held by Majestic's CTO.

An exchange administrator can typically view every customer, adjust balances and approve withdrawals. Whether this access was ever used improperly cannot be determined from the balance export alone, which records end-state balances and not actions taken.

7.5 Majestic's own founder was not an administrator

The founder's exchange account carries ordinary member privileges. The system holding customer funds was administered entirely by others.


8. Attribution — Majestic's account

This section records Majestic's own account of events. It is testimony from the company, not a finding derived from the chain data, and is marked as such deliberately. Sections 3 to 7 stand on the records regardless of this section.

The exchange and the chain infrastructure were built and operated by an external development contractor, iotech, engaged by Majestic and since dismissed. This is attested by Majestic's Chief Technology Officer, who held the company's own administrator account on the exchange throughout the relevant period.

Administrative control of the exchange — the ability to create administrator accounts, view every customer, adjust balances and approve withdrawals — rested with that contractor. Majestic's founder was not an administrator of it at all (7.5).

Majestic's position is that the administrator account described in 7.4 was created by iotech. It was created within an administration iotech built, ran and controlled; neither of the two people inside Majestic who could have authorised such an account did so, and both attest to that; and Majestic's founder was never informed of its existence.

Majestic's evidence for this comprises the engagement records, the correspondence retained from the engagement, the attestation of its CTO, and the exchange databases, which remain in the CTO's possession and record the creation of accounts directly.

Majestic does not assert that any specific individual exercised the capabilities described in section 7, and nothing in the chain export shows that they were exercised. What the records establish is that those capabilities existed, undisclosed, in the hands of a contractor, and that the company which owned the system was not an administrator of it.

Majestic further states that it lost access to the running exchange infrastructure following the end of the engagement. The exchange databases themselves are retained by Majestic's CTO.


9. What has changed

The migration was designed around the findings above.

Old failureWhat replaces it
MJX was an upgradeable proxyThe new MJX is not upgradeable. The code at the address cannot be replaced.
One external key controlled the proxyAll four contracts are owned by a multi-signature wallet; no single key can mint, freeze or move treasury.
Governance decidable by two nodesMajestic no longer runs its own validators. Polygon's consensus is independent of Majestic.
Default admin account left enabledThe exchange stack is not being recreated.
Balances could be rewrittenClaims are fixed by a Merkle root published before launch; entitlements cannot be altered after deployment.

Status, stated honestly: the multi-signature handover is implemented and verified against the real snapshot on a test chain. It has not yet been executed on a live network, because nothing has yet been deployed to one. No contract will be deployed to Polygon without it. This document will be updated with the multi-signature address once it is live, so the claim can be checked rather than taken on trust.


10. Open items

Published for completeness.


This document reports the recorded state of a network and a migration of existing balances between networks. It is not an offer to sell or a solicitation to buy any security or financial instrument. MJT and MJX confer no entitlement to revenue, profit, or distribution of any kind, and no return is offered, promised or implied. Figures are derived from the chain export at block height 13,834,806 and are stated to the precision recorded there.

← Back to The Migration