Frog.signature Response
The response returned from the .signature handler.
import { Frog, parseEther } from 'frog'
 
export const app = new Frog({ title: 'Frog Frame' })
 
app.signature('/sign', (c) => {
  return c.signTypedData({
    chainId: 'eip155:84532',
    types: {
      Swamp: [{ name: 'frog', type: 'string' }],
    },
    primaryType: 'Swamp',
    message: {
      frog: 'Robert',
    },
  })
})Sign Typed Data (c.signTypedData)
chainId
- Type: 
"eip155:${number}" 
A CAIP-2 Chain ID to identify the signature network.
import { Frog, parseEther } from 'frog'
 
export const app = new Frog({ title: 'Frog Frame' })
 
app.signature('/sign', (c) => {
  return c.send({ 
    chainId: 'eip155:10',
    types: {
      Swamp: [{ name: 'frog', type: 'string' }],
    },
    primaryType: 'Swamp',
    message: {
      frog: 'Robert',
    },
  }) 
})domain (optional)
- Type: 
TypedDataDomain 
The typed data domain.
import { Frog, parseEther } from 'frog'
 
export const app = new Frog({ title: 'Frog Frame' })
 
app.signature('/sign', (c) => {
  return c.signTypedData({
    chainId: 'eip155:84532',
    domain: {
      name: 'Frog Swamp',
      version: '1',
      chainId: 1,
      verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
    },
    types: {
      Swamp: [{ name: 'frog', type: 'string' }],
    },
    primaryType: 'Swamp',
    message: {
      frog: 'Robert',
    },
  }) 
})types
The type definitions for the typed data.
import { Frog, parseEther } from 'frog'
 
export const app = new Frog({ title: 'Frog Frame' })
 
app.signature('/sign', (c) => {
  return c.signTypedData({
    chainId: 'eip155:84532',
    domain: {
      name: 'Frog Swamp',
      version: '1',
      chainId: 1,
      verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
    },
    types: {
      Swamp: [{ name: 'frog', type: 'string' }],
    },
    primaryType: 'Swamp',
    message: {
      frog: 'Robert',
    },
  }) 
})primaryType
- Type: Inferred 
string. 
The primary type to extract from types and use in value.
import { Frog, parseEther } from 'frog'
 
export const app = new Frog({ title: 'Frog Frame' })
 
app.signature('/sign', (c) => {
  return c.signTypedData({
    chainId: 'eip155:84532',
    domain: {
      name: 'Frog Swamp',
      version: '1',
      chainId: 1,
      verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
    },
    types: {
      Swamp: [{ name: 'frog', type: 'string' }],
    },
    primaryType: 'Swamp',
    message: {
      frog: 'Robert',
    },
  }) 
})message
- Type: Inferred from 
types&primaryType. 
import { Frog, parseEther } from 'frog'
 
export const app = new Frog({ title: 'Frog Frame' })
 
app.signature('/sign', (c) => {
  return c.signTypedData({
    chainId: 'eip155:84532',
    domain: {
      name: 'Frog Swamp',
      version: '1',
      chainId: 1,
      verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
    },
    types: {
      Swamp: [{ name: 'frog', type: 'string' }],
    },
    primaryType: 'Swamp',
    message: {
      frog: 'Robert',
    },
  }) 
})