Native IOS

You can import Pools SDK into your native iOS dapp to enable your users to easily connect with Pools Chain and Pools Wallet

Steps

1. Install the SDK

To add the SDK as a Swift Package Manager (SPM) package to your project, in Xcode, select File > Swift Packages > Add Package Dependency.

Alternatively, you can add the URL directly in your project's package file:

dependencies: [
    .package(
        url: "https://github.com/MetaMask/metamask-ios-sdk",
        from: "0.1.0"
    )
]

NOTE

The SDK supports ios-arm64 (iOS devices) and ios-arm64-simulator (M1 chip simulators). It currently doesn't support ios-ax86_64-simulator (Intel chip simulators).

2. Import the SDK

Import the SDK by adding the following line to the top of your project file:

import metamask_ios_sdk

3. Connect your dapp

Connect your dapp by adding the following code to your project file:

By default, MetaMask logs three SDK events: connectionRequest, connected, and disconnected. This allows MetaMask to monitor any SDK connection issues. To disable this, set MetaMaskSDK.shared.enableDebug = false or ethereum.enableDebug = false.

4. Call provider methods

You can now call any provider API method.

The SDK uses Combine to publish Ethereum events, so you need to define an AnyCancellable storage by adding the following line to your project file:

The following examples use the window.ethereum.request(args) provider API method to call various RPC API methods.

Example: Get chain ID

The following example gets the user's chain ID by calling eth_chainId.

Example: Get account balance

The following example gets the user's account balance by calling eth_getBalance.

Example: Send transaction

The following examples send a transaction by calling eth_sendTransaction.

  • Use a dictionary

  • Use a struct

If your request parameters make up a simple dictionary of string key-value pairs, you can use the dictionary directly. Note that Any or even AnyHashable types aren't supported, since the type must be explicitly known.

Last updated