Joseon.funDocs
AppExplorerOpen app

Protocol

Mock RWA stocks

Mock equities: swap into them, or take creator fees in them.

Mock RWA stocks#

Joseon.fun carries a demo of Robinhood-style tokenized equities: five mock "RWA stocks" deployed on GIWA Sepolia, each with a live WETH pool on JoseonSwap. They are not backed by anything. No shares, no custodian, no price feed — plain ERC-20s whose names imitate real tickers so the flows around them can be demonstrated end to end.

One flow remains enabled today:

  1. Swap into an RWA. Every mock stock has a seeded WETH pair, and the router accepts three-hop paths, so any launch token routes token → WETH → jAAPL in one transaction. The swap page lists the stocks in its token picker under Mock RWA stocks.

Creator-fee conversion is temporarily paused. The deployed V2 converter accepted a caller-supplied pair and relied on standing token allowances, so the app no longer sends transactions to it. Creator rewards currently use the raw launch-token + WETH claim path while V3 awaits deployment and staging review.

The tokens#

SymbolImitatesContractWETH pair
jAAPLAAPL0x07c11d009dF5b68Edf35532BA538B9b1099425620xFe298A51a6ce6D3a7465f619d69BE384B409Fb27
jTSLATSLA0x34DEc227E88A779C58E142640925BF1014F2291a0x602dd999F11BFCB14645fbb48A6c7f8B433D19E6
jNVDANVDA0x1E074AF7462FAd8F6130E45E3A755aA8ded4ebc30xE5dE1939165De4635F93e060a8de571c3Cab5c1b
jSPYSPY0xEFBa8EE78A64B96cAF76C2FFc2eC7C00c5853BFC0xF2b2FFA19c24f084aa4894Af14e7d9175dD74a5C
jGLDGLD0xD7933E1314760B6Cb11651B922d8492E98E035C00x28356120B54398bbd40Af5643e2c23bCeB941591

The retired RwaFeeConverterV2 is at 0x63229513375607c8C2d1447ddCbf607407747571. This address is retained only so past users can identify and revoke approvals; it must not be used for new claims.

Each stock has a faucet: faucetMint() pays 100 tokens per address per day. The deployer key can also mint freely — another reason these must never be read as having value.

Fee payout status#

The V2 path is disabled in the app. If a wallet previously enabled it, use the Revoke legacy RWA approval action in creator rewards; both the launch-token and WETH allowances to the retired address must be zero.

RwaFeeConverterV3 is implemented in contracts/src/rwa/RwaFeeConverterV3.sol but has no approved network address yet. Before the selector is re-enabled, V3 must be deployed, verified, exercised on staging, and added to the app's fail-closed configuration. V3 changes the flow in four important ways:

  1. The recipient calls claimAndConvert themselves; a third party cannot choose execution timing or slippage.
  2. The contract derives the canonical launch/WETH pair from the router factory instead of accepting a pair address.
  3. Claimed fees are measured from the recipient's actual balance changes, not values returned by an external pair.
  4. The launch-token → WETH and combined WETH → RWA swaps each have a non-zero minimum output, and the UI approves only the exact claimable token amounts for that attempt.

What this is, and is not#

  • The stocks trade like any pool token: constant-product pricing against their seeded WETH reserves. Their "price" is whatever the pool says, and moves with demo trades — it does not track the real equity at all.
  • The currently deployed pools were seeded with only 0.02 WETH each. Treat quotes as highly price-sensitive; the updated deployment script refuses to create pools below 1 WETH, but existing liquidity is unchanged.
  • The app fails closed: no converter address means raw fee claims, not a fallback to V2.
  • The mock tokens and pools live at the addresses above. V3 deployment is deliberately a separate, approval-gated operation using contracts/scripts/deploy-rwa-converter-v3.ts.