Skip to Content
On this page

Facts about the MyDoge app’s in-app browser that affect dApps. For background, see About the MyDoge In-App Browser.

Feature Support#

FeatureMyDoge 3.1.0MyDoge 3.1.1 (build 652)Planned, not yet released
Wallet on the origin the dApp opened atYesYesYes
Wallet on every origin on the listingNoYesYes
mydoge://dapp links to listed dAppsNoYesYes
Tapped X links that open in the same viewYesYesYes
X links from target="_blank" or window.open() on iOSNoYesYes
Account sheet from openModal() and the embed’s AccountNoNoYes
Silent reconnect of an approved dAppNoNoYes
Account-change events (accountsChanged)NoNoYes

On builds without the account sheet, openModal() and the embed’s Account button do nothing while a wallet is connected, and the SDK logs a warning.

Wallet Provider#

PropertyValue
ProviderEIP-1193
AnnouncementEIP-6963
rdnscom.mydoge.wallet
Injected intoTop-level pages only
Wallet permissionGranted to pages on the listing’s origins once the page has loaded
Chain familiesEVM only
Starting networkDogeOS Chikyū Testnet (0x5fdaf3) when the listing names it or no chains; otherwise one of the listing’s chains

The MyDoge browser extension uses a different rdns and isn’t detected as the in-app browser.

Wallet Requests#

MyDoge answers these requests itself:

RequestBehavior
eth_requestAccountsAsks the user to connect
eth_accountsReturns the connected account. On MyDoge 3.1.1 (build 652) and earlier, it asks the user to connect if the dApp isn’t approved yet, so don’t call it on page load
eth_chainId, net_versionReturns the active network
web3_clientVersionReturns MyDoge/<version>
personal_sign, eth_signAsks the user to sign a message
eth_signTypedData, eth_signTypedData_v3, eth_signTypedData_v4Asks the user to sign typed data
personal_ecRecoverRecovers the signer of a message
eth_sendTransactionAsks the user to approve, then sends; returns the transaction hash
wallet_switchEthereumChain, wallet_addEthereumChainAsks the user to switch to a network MyDoge already supports; can’t add new networks
wallet_requestPermissionsAsks the user to connect; returns the account addresses
wallet_revokePermissionsRevokes the dApp’s account access
wallet_getCapabilitiesReturns the wallet’s capabilities

Other eth_* calls, such as eth_call, eth_getBalance and eth_estimateGas, go to the active network’s RPC. Event subscriptions (eth_subscribe) aren’t supported; poll instead.

  • Switching wallet or account cancels pending requests.
  • You must send one request at a time. Some MyDoge versions reject a second request while one is open. The SDK queues every request it sends to MyDoge, including reads, so a read waits while an approval is open. For frequent reads, such as polling, use your own RPC connection.

Errors#

CodeWhen
4001The user rejected the request
-32602A transaction or typed-data domain names a different chainId than the active network
-32603A transaction failed after the user approved it (MyDoge 3.1.1 and later; MyDoge 3.1.0 returns 4001 instead)
-1A generic error with the message Unknown. For a network switch, it means cancelled or not supported, and the two can’t be told apart. Failed eth_* read calls, such as a reverted eth_call, and malformed requests also return it, without the revert data; use your own RPC connection when you need revert reasons

See the Errors reference for the SDK’s own codes.

Known Limitations#

  • Typed data from social wallets. Email and social wallets reject eth_signTypedData_v3 and eth_signTypedData_v4 requests with a mixed-case (checksummed) domain.verifyingContract or domain.salt, or with nested objects or integers in message. personal_sign and transactions aren’t affected. A fix is in progress.
  • Popups. window.open loads the page in the same view, with no window.opener.
  • Google sign-in. Google blocks sign-in in embedded browsers.
  • Links. Links to X (x.com, twitter.com) open in the X app or the system browser; other https links load inside the dApp’s view. Links that leave the dApp open only from a tap, in the top-level page. location.href doesn’t open them on iOS. MyDoge ignores a second mydoge://dapp link within two seconds. App links such as twitter:// and mailto: aren’t opened.

Unlisted dApps#

PropertyValue
SettingSettings → Advanced Settings → Allow unlisted dApps
DefaultOff
Turned on by linksNo
Turning it offCloses any open unlisted dApp and cancels its pending wallet requests
URLsPublic https:// only; not http://, localhost or LAN addresses
Wallet accessThe origin that was opened only
Search URL entryMyDoge 3.1.0 with its latest update, and later

mydoge://dapp?mode=unofficial&url=… opens an unlisted dApp. Each value is encoded once with encodeURIComponent.

ParameterRequiredValueLimit
modeYesunofficial
urlYesFull https:// URL of the dApp8 KiB
nameNoDisplay name80 characters
subtitleNoTagline160 characters
descriptionNoAbout text1,000 characters
iconNoSquare logo URL, PNG, JPEG or WebP over https2 MiB file
imageNoHero image URL, PNG, JPEG or WebP over https2 MiB file

MyDoge rejects the link when:

  • name, subtitle or description contains a line break or other control character;
  • name, subtitle, description, icon and image together exceed 4 KiB, or an image URL exceeds 2,048 bytes;
  • the whole link exceeds 32 KiB;
  • a field is empty, unknown or repeated, or a space is encoded as +.

Testers always see the intro screen, and still need Allow unlisted dApps turned on.

Without mode=unofficial, mydoge://dapp?url=… opens only listed dApps, and takes only the url parameter.