Modular Kotlin wallet adapters and components for EVM & Solana chains. Manage wallet and custom RPC request.
It is strongly discouraged to use private key or mnemonic import/generate function, if you use it, you need to secure the data yourself, Particle's SDK has no relationship with the imported/generated mnemonic or private key.
Quick Start
dependencies {//required modules { module("org.bouncycastle:bcprov-jdk15to18") { replacedBy("org.bouncycastle:bcprov-jdk15on") } }//required dependencies implementation 'network.particle:auth-service:{latest-version}' implementation 'network.particle:connect:{latest-version}'// pick one of two implementation 'network.particle:connect-auth-adapter:{latest-version}'//implementation 'network.particle:connect-auth-core-adapter:{latest-version}'//Optional: support evm chain Generate & Import wallet implementation 'network.particle:connect-evm-adapter:{latest-version}'//Optional: support solana chain Generate & Import wallet implementation 'network.particle:connect-solana-adapter:{latest-version}'//Optional: support connect Phantom wallet implementation 'network.particle:connect-phantom-adapter:{latest-version}'//Optional: support WalletConnect Protocol, include MetaMask, Rainbow, Trust, imToken etc. implementation 'network.particle:connect-wallet-connect-adapter:{latest-version}'//find the latest version of the sdk://https://search.maven.org/search?q=g:network.particle}
val dAppMetadata =DAppMetadata( walletConnectProjectId ="f431aaea6e4dea6a669c0496f9c009c1", name ="Particle Connect", icon="https://connect.particle.network/icons/512.png", url ="https://particle.network", description = "Particle Connect is a decentralized wallet connection solution that allows users to connect to DApps with their wallets.",
redirect ="redirect://", verifyUrl ="verifyUrl", )ParticleConnect.init(this, Env.DEV, //debug mode ChainInfo.Ethereum, //chain info dAppMetadata //DApp or Wallet info ) {listOf(ParticleConnectAdapter(),//AuthCoreAdapter(),MetaMaskConnectAdapter(),RainbowConnectAdapter(),TrustConnectAdapter(),ImTokenConnectAdapter(),BitKeepConnectAdapter(),WalletConnectAdapter(),PhantomConnectAdapter(),EVMConnectAdapter(),SolanaConnectAdapter(), ) //list all support adapters, lazy create. }
Switch chain.
ParticleConnect.setChain(chain)
Get all wallet adapters.
var adapters = ParticleConnect.getAdapters(chainTypes)//orvar adapters = ParticleConnect.getAdapterByAddress(address)
Get all connected accounts.
val accounts = ParticleConnect.getAccounts(chainTypes)
Connect wallet.
(For EVMConnectAdapter or SolanaConnectAdapter will generate new wallet)
connectAdapter.connect(callback)
Disconnect wallet.
connectAdapter.disconnect(address, callback)
Check whether the account is connected.
val result = connectAdapter.connected(address)
Import wallet.
(Only EVMConnectAdapter and SolanaConnectAdapter support this method)
// import wallet with private keyval account = connectAdapter.importWalletFromPrivateKey(privateKey)// import wallet with mnemonic(Split with space).val account = connectAdapter.importWalletFromMnemonic(mnemonic)
Export wallet.
(Only EVMConnectAdapter and SolanaConnectAdapter support this method)
val privateKey = connectAdapter.exportWalletPrivateKey(address)
Sign and send transaction.
// todo: check connected before signconnectAdapter.signAndSendTransaction(address, transaction, callback)