Skip to content

[BOUNTY #803] Soroban escrow: identity module — address binding rules#852

Open
zhaog100 wants to merge 1 commit intoJagadeeshftw:masterfrom
zhaog100:feature/soroban-escrow-identity
Open

[BOUNTY #803] Soroban escrow: identity module — address binding rules#852
zhaog100 wants to merge 1 commit intoJagadeeshftw:masterfrom
zhaog100:feature/soroban-escrow-identity

Conversation

@zhaog100
Copy link
Copy Markdown
Contributor

Implement address binding rules to prevent spoofed identities on claims.

Changes:

  • IdentityBinding struct with bound_issuer, nonce, active flag
  • bind_identity() / unbind_identity() / get_binding() / validate_binding()
  • submit_identity_claim now validates binding before acceptance
  • DataKey::IdentityBinding(Address) storage key
  • 16 tests covering all binding scenarios

Security: admin-gated bind/unbind, authorized issuer check, monotonic nonce anti-replay, expired claims fall back to Unverified.

Closes #803

Implement address binding to prevent spoofed identities on claims:

- Add IdentityBinding struct with bound_issuer, nonce, and active flag
- Add bind_identity() — creates binding (admin-only, issuer must be authorized)
- Add unbind_identity() — revokes binding, clears stored identity data
- Add validate_binding() — checks active binding + issuer match before claim
- Add get_binding() — query binding state for an address
- Monotonic nonce prevents replay of stale binding payloads
- submit_identity_claim now validates binding before accepting claims
- Add DataKey::IdentityBinding(Address) to storage key enum

Tests: 16 tests covering bind, unbind, rebind nonce increment, query,
claim-without-binding rejection, unbind-nonexistent noop, and all
original identity/limits tests.

Security notes:
- bind/unbind are admin-gated (require_auth on admin)
- issuer must be in authorized set before binding is accepted
- expired claims still fall back to Unverified tier
- nonce prevents replay even if binding payload is intercepted

Closes Jagadeeshftw#803
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 25, 2026

@zhaog100 is attempting to deploy a commit to the Jagadeesh B's projects Team on Vercel.

A member of the Team first needs to authorize it.

@Jagadeeshftw
Copy link
Copy Markdown
Owner

@zhaog100 Please apply to that issue via drips platform.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Soroban escrow: identity module (soroban/contracts/escrow)

2 participants