Skip to main content
POST
Checks a mined ONCHAINID deployment and records the identity against a customer’s wallet. Build Pending Registration then uses it instead of asking for another deployment. Recording does not register the wallet or verify it.
Nothing in a deployment names the customer’s wallet, so this call cannot tell which wallet it was built for. It records the identity against whatever walletAddress you send. Confirm each deployment with the wallet you requested it for.

Body Parameters

string
required
The customer’s wallet that the deployment was requested for.
string
required
The hash of the deployment transaction, from Deploy ONCHAINID or a DEPLOY_IDENTITY phase. Verify Identity, Batch Verify and Build Pending Registration all return one.

What the confirm checks

The checks run in this order, and the first that fails answers.
  1. Your instance writes to an ERC-3643 register.
  2. The transaction is mined, succeeded, and created a contract.
  3. Its calldata is the deployment this API plans: the vendored IdentityProxy initcode, followed by an implementation authority and a management key. An ONCHAINID deployed with other tooling is refused.
  4. The new contract answers as an ONCHAINID, reports the implementation authority its deployment named, and holds the named management key. A key that cannot be read does not fail this check.
  5. The management key is a wallet registered to your instance, whenever the instance has one.
  6. The wallet is not on the register with a different ONCHAINID, and no other customer of your instance has this one recorded.
The sender is not enforced. It is returned as from and written to the audit log, and a sender that is not a registered wallet is only logged.

What it records

  • The customer record of the wallet gets metadata.onchainId and metadata.onchainIdTxHash. A wallet without a record gets one, with status pending.
  • Every PENDING queue row of the wallet gets metadata.onchainId, so the next build uses it.
  • The customer audit log gets ONCHAINID_DEPLOYED, with the identity, the transaction, its sender, the management key and the implementation authority.
A second call with the same transaction returns alreadyRecorded: true and writes nothing.

Response Fields

object

Error Codes