Skip to main content

Overview

Once autosign is configured, you can enable and manage it in your application using the autoSign object from useInterwovenKit(). This guide covers all aspects of using autosign in your code.

Accessing Autosign

The autoSign object is available through the useInterwovenKit hook:
import { useInterwovenKit } from "@initia/interwovenkit-react"

function MyComponent() {
  const { autoSign } = useInterwovenKit()
  
  // Use autoSign.enable(), autoSign.disable(), etc.
}

Enabling Autosign

To enable autosign, call the enable() method. This opens a drawer where users can confirm the autosign setup and select an expiration duration.

Basic Usage

import { useState } from "react"
import { useInterwovenKit } from "@initia/interwovenkit-react"

function EnableAutosignButton() {
  const { autoSign } = useInterwovenKit()
  const [isEnabling, setIsEnabling] = useState(false)

  const handleEnable = async () => {
    try {
      setIsEnabling(true)
      await autoSign.enable() // Uses defaultChainId
      console.log("Autosign enabled successfully!")
    } catch (error) {
      console.error("Failed to enable autosign:", error)
    } finally {
      setIsEnabling(false)
    }
  }

  return (
    <button 
      onClick={handleEnable} 
      disabled={isEnabling || autoSign.isLoading}
    >
      Enable Autosign
    </button>
  )
}

Enabling for a Specific Chain

Specify a chain ID to enable autosign for a particular chain:
await autoSign.enable("interwoven-1")

What Happens When Enabled

When autoSign.enable() is called:
1

Drawer Opens

A drawer appears asking the user to confirm autosign setup, showing which permissions will be granted.
2

User Selection

User can select an expiration duration from available defaults or use a custom duration.
3

Ghost Wallet Creation

Privy creates an embedded wallet if one doesn’t exist. This happens automatically in the background.
4

Permission Grant

User signs a single transaction to grant authz and feegrant permissions to the ghost wallet.
5

Activation

Autosign becomes active for the specified chain and message types. The Promise resolves on success.
The method returns a Promise that resolves when autosign is successfully enabled or rejects if the user cancels or an error occurs.

Disabling Autosign

Users can disable autosign at any time. This revokes all grants and prevents further automatic signing.

Basic Usage

import { useInterwovenKit } from "@initia/interwovenkit-react"

function DisableAutosignButton() {
  const { autoSign } = useInterwovenKit()

  const handleDisable = async () => {
    try {
      await autoSign.disable() // Uses defaultChainId
      console.log("Autosign disabled successfully!")
    } catch (error) {
      console.error("Failed to disable autosign:", error)
    }
  }

  return (
    <button onClick={handleDisable}>
      Disable Autosign
    </button>
  )
}

Disabling for a Specific Chain

Specify a chain ID to disable autosign for a particular chain:
await autoSign.disable("interwoven-1")