Before you can add Auth Core to your Android app, you need to create a Particle project to connect your app. Visit Particle Dashboard to learn more about Particle projects and apps.
Declare them in your module (app-level) Gradle file (usually app/build.gradle).
repositories { google() mavenCentral() maven { setUrl("https://jitpack.io") }//...}dependencies {// Particle Auth Core implementation("network.particle:auth-core:${latest_version}") implementation("network.particle:mpc-core:${latest_version}")//find the latest version of the sdk://https://search.maven.org/search?q=g:network.particle//...}
Add Configuration File
Declare them in you app AndroidManifest.xml (usually app/src/main/AndroidManifest.xml).
Replace pn_project_id, pn_project_client_key, pn_app_id with the new values created in Particle Dashboard.
API Reference
Initialize the SDK
Initialize the SDK by calling the ParticleNetwork.init()method, passing the method a context. Do this as soon as your app starts, like in the onCreate()method of your Application.
Use Auth Core SDK to sign a transaction or message.
// personal signAuthCore.evm.personalSign(message, object : AuthCoreSignCallback<SignOutput> {overridefunsuccess(output: SignOutput) {val signature = output.signature }overridefunfailure(errMsg: ErrorInfo) { } })// personal sign uniqueAuthCore.evm.personalSignUnique(message, callback)// sign typed dataAuthCore.evm.ko(typedData, callback)//sign typed data uniqueAuthCore.evm.signTypedDataUnique(typedData, callback)//send evm transactionAuthCore.evm.sendTransaction(transaction, callback)// request public rpcAuthCore.evm.request(payload)
// sign message
AuthCore.solana.signMessage(message, callback)
// sign transaction
AuthCore.solana.signTransaction(transaction, callback)
// sign all transactions
AuthCore.solana.signAllTransactions(transactions, callback)
// sign and send transaction
AuthCore.solana.signAndSendTransaction(transaction, callback)
// request public rpc
AuthCore.solana.request(payload)
Master Password
Wallet can set master password to protect assets.
// check user has master password or notAuthCore.hasMasterPassword()// set master passwordAuthCore.setMasterPassword(callback)//change master passwordAuthCore.changeMasterPassword(callback)
Payment Password
If set a payment password, user should input password before sign message and transaction.
// check user has payment password or notAuthCore.hasPaymentPassword()
Open account and security
Bind more login account, manage payment password etc.
// set security account config, // promptSettingWhenSign default value is 1.// promptMasterPasswordSettingWhenLogin default value is 0.// 0 no prompt// 1 first time show prompt// 2 every time show prompt ParticleNetwork.setSecurityAccountConfig(SecurityAccountConfig( promptSettingWhenSign =1, promptMasterPasswordSettingWhenLogin =2 ))
Custom interface style
//this is the default settingParticleNetwork.setAppearence(ThemeEnum.AUTO)//dark ParticleNetwork.setAppearence(ThemeEnum.DARK)//lightParticleNetwork.setAppearence(ThemeEnum.LIGHT)
Language setting
//Set the language of the SDK//support LanguageEnum.EN、LanguageEnum.JA、LanguageEnum.KO、LanguageEnum.ZH_CN、LanguageEnum.ZH_TWParticleNetwork.setLanguage(LanguageEnum.EN)//Get Applied Languageval languageEnum = ParticleNetwork.getLanguage()
Blind sign enable
This switch will work if the following conditions are met:
your account is connected with JWT
your account does not set payment password
SecurityAccountConfig.promptSettingWhenSign is 0, you can call ParticleNetwork.setSecurityAccountConfig to update its value.
// set blind sign enableAuthCore.setBlindEnable(true)// get current blind sign enable stateval result = AuthCore.getBlindEnable()
Error
ErrorInfo contains error details. You can check the information by printing the message attribute.