till_resolve
IDENTITY BRIDGE: resolve an AGENT identity — a buzz/Nostr npub (64-hex secp256k1) AND/OR a gitlawb did:key (Ed25519) — to a payable, trust-assessable BASE address, trustlessly. The binding is a BIDIRECTIONAL attestation: each identity key AND the Base key sign the same canonical message, so anyone re-verifies the signatures (BIII never takes your word). A binding needs AT LEAST one identity key (npub or did). Fail-closed: unverified / an identity key missing its signature / expired / un-nonced / malformed ⇒ a CLAIM, not a binding (bound:false). BIII does not verify secp256k1/Ed25519 itself (no dep) — supply verified:true after checking the sigs, or re-verify with the returned pointer. When bound, feed the address to till_trust / till_vet_merchant (resolving is NOT trusting).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| did | No | the agent's gitlawb did:key (Ed25519 identity) — provide did and/or npub | |
| npub | No | the agent's 64-hex secp256k1 pubkey (Nostr/buzz identity) — provide npub and/or did | |
| nonce | No | a per-binding nonce (anti-replay) — required | |
| expiry | No | optional unix seconds; 0 = no expiry | |
| sigDid | No | the did:key's Ed25519 signature over the canonical message (required if did is present) | |
| address | Yes | the claimed Base address (0x…) | |
| chainId | No | default 8453 (Base) | |
| sigBase | No | the Base key's signature over the canonical message (always required) | |
| sigNostr | No | the Nostr key's signature over the canonical message (required if npub is present) | |
| verified | No | attest that every present signature verified (BIII does not check secp256k1/Ed25519 itself) |