NEXUS

Signature

Supports message signing, EIP712 signature, and provider-level requests.

Sign Message

Function to generate a signature for a plain message.

import { useAppKitAccount, ConnectionController } from '@to-nexus/sdk/react'

function signMessage() {
  const account = useAppKitAccount()
  if (!account?.isConnected) return

  ConnectionController.signMessage({ 
    message: `Hello, world! ${Date.now()}`
  })
}

Sign EIP712

Function to generate a signature following the EIP-712 standard.

import { useAppKitAccount, ConnectionController, AccountController } from '@to-nexus/sdk/react'

function signEIP712() {
  const account = useAppKitAccount()
  if (!account?.isConnected) return

  const PERMIT_CONTRACT_ADDRESS = '0xC95DEdAD3950A81B8AEF6fa4D28211bA37B4Ae21'
  const FROM_ADDRESS = AccountController.state.address as `0x${string}`
  const PERMIT_SPENDER_ADDRESS = '0x920A31f0E48739C3FbB790D992b0690f7F5C42ea'
  const PERMIT_VALUE = 1000000000000000000n

  ConnectionController.signEIP712({
    contractAddress: PERMIT_CONTRACT_ADDRESS,
    fromAddress: FROM_ADDRESS,
    spenderAddress: PERMIT_SPENDER_ADDRESS,
    value: PERMIT_VALUE,
    abi: PERMIT_ABI
  })
}

Verify Signature

Functionality to verify a signed message.

import { ConnectionController } from '@to-nexus/sdk/react'

function verifyMessage(message: string, signature: string, address: string) {
  return ConnectionController.verifyMessage({
    message,
    signature,
    address
  })
}

Provider Request

Function to send direct requests to the wallet provider.

import { useAppKitAccount, useAppKitProvider } from '@to-nexus/sdk/react'

function providerRequest() {
  const account = useAppKitAccount()
  const { walletProvider } = useAppKitProvider<UniversalProvider>('eip155')
  
  async function requestNetworkInfo() {
    if (!account?.isConnected) return

    const [chainId, blockNumber, gasPrice] = await Promise.all([
      walletProvider?.request({ method: 'eth_chainId' }),
      walletProvider?.request({ method: 'eth_blockNumber' }),
      walletProvider?.request({ method: 'eth_gasPrice' })
    ])

    return {
      chainId,
      blockNumber,
      gasPrice
    }
  }

  return requestNetworkInfo()
}

Cancel Signature

Functionality to cancel a pending signature request.

import { ConnectionController } from '@to-nexus/sdk/react'

function cancelSignature() {
  let signatureRequest: any = null
  
  async function sign() {
    signatureRequest = await ConnectionController.signMessage({
      message: 'Hello, world!'
    })
  }

  async function cancel() {
    if (signatureRequest) {
      await signatureRequest.cancel()
      signatureRequest = null
    }
  }

  return {
    sign,
    cancel
  }
}

© 2025 NEXUS Co., Ltd. All Rights Reserved.