Testnet PoC

Real signatures. Real verification.

Each authorization below is produced by the SymmetriQ signing service, type-safe under EIP-712, and verified in your browser using the same recovery the on-chain verifier performs. Deploy the verifier contract to Sepolia or Polygon Amoy to close the loop with a public transaction.

01Build a transfer intent
02SymmetriQ response

Submit a request to see the policy evaluation, the EIP-712 typed data the signing service produced, and an in-browser ecrecover that proves the signature matches the server-declared signer address.

03Deployment runbook

Close the loop on a public testnet

  1. Step 1

    Deploy the verifier

    Compile contracts/SymmetriQVerifier.sol (Solidity ^0.8.24) with Foundry or Hardhat. Pass the SymmetriQ signer address shown in any successful response above as the constructor argument. Fund the deployer with Sepolia or Amoy test ETH/MATIC.

  2. Step 2

    Wire the address

    Paste the deployed contract address into the verifier field on this page. The signing service will start producing signatures bound to that exact contract via the EIP-712 domain separator — a signature for the wrong chain or contract will not verify.

  3. Step 3

    Submit on-chain

    From a Sepolia-funded EOA, call verifyAndConsume(intent, signature) using the exact values shown in the response. The transaction will succeed, emit TransferAuthorized, and consume the nonce so the same intent cannot be replayed.

// Foundry deploy

forge create contracts/SymmetriQVerifier.sol:SymmetriQVerifier \

--rpc-url $SEPOLIA_RPC_URL --private-key $DEPLOYER_PK \

--constructor-args 0x...<symmetriq-signer-address>

For production, replace the demo signing key with a FIPS 140-2 L3 HSM (AWS CloudHSM, Azure Dedicated HSM, or on-prem Thales/Entrust). The contract code does not change — only the source of signTypedData changes from a software account to an HSM-backed signer.