Skip to content

Closes #251: feat(smart-contract): Add Agent Capability Attestation and Verification #251 - #311

Open
Promise278 wants to merge 6 commits into
Epta-Node:mainfrom
Promise278:feat/smart-contract
Open

Closes #251: feat(smart-contract): Add Agent Capability Attestation and Verification #251#311
Promise278 wants to merge 6 commits into
Epta-Node:mainfrom
Promise278:feat/smart-contract

Conversation

@Promise278

Copy link
Copy Markdown

Closes #251

Summary

Adds cryptographically verified capability attestation to the agent registry.
Agents can now prove their capabilities through ed25519 signatures verified
on-chain, replacing self-reported claims with verified proofs.

Changes

  • attest_capability(agent_id, capability, signer, signer_pubkey, signature) — verifies ed25519 signature against agent's public key and stores attestation with 30-day expiry
  • verify_attestation(agent_id) — checks attestation exists, is not revoked, and has not expired; emits AttestationExpiredEvent on expiry
  • revoke_attestation(agent_id) — allows signer to revoke their own attestation; requires auth
  • get_attestation(agent_id) — returns attestation data for off-chain indexing

Events

  • AttestationCreated — emitted on successful attestation
  • AttestationRevoked — emitted on revocation
  • AttestationExpired — emitted when verify_attestation detects expiry

Tests

22 new unit tests covering:

  • Signature verification (valid, wrong pubkey, wrong message)
  • Attestation lifecycle (create, query, replace, revoke)
  • Expiry detection
  • Error cases (nonexistent agent, frozen agent, paused contract, already revoked)
  • Event emission

…eight

- Add framer-motion drag gesture for swipe-to-close (threshold: 100px / 500px velocity)
- Implement keyboard focus trap cycling Tab/Shift+Tab within drawer
- Auto-close drawer on route navigation and backdrop tap
- Adaptive height: 70vh on short screens, 85vh on tall screens
- Export NAV_ITEMS from MobileDrawer for drawer/sidebar parity
- Add useMediaQuery hook for responsive breakpoint detection
- Add MobileDrawer.test.tsx: 15 unit tests covering gestures, close-on-navigate, focus trap
- Fix framer-motion ESM resolution in vitest config
- Add window.matchMedia mock to vitest.setup.ts for jsdom
- All 140 tests passing
…9 verification

Implement attest_capability, verify_attestation, revoke_attestation, and
get_attestation functions with signature verification, expiry, and revocation.
Include 22 unit tests covering creation, verification, revocation, expiry,
and error cases. Fix test compilation issues with OsRng, Signer trait import,
Ledger trait import, pubkey_bytes env mismatch, and expiry test TTL handling
@vercel

vercel Bot commented Aug 24, 2026

Copy link
Copy Markdown

@Promise278 is attempting to deploy a commit to the Jaja's projects Team on Vercel.

A member of the Team first needs to authorize it.

@devJaja
devJaja self-requested a review August 24, 2026 14:51
@devJaja

devJaja commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Well done @Promise278

Kindly fix the CI checks failing

@devJaja

devJaja commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

@Promise278

CI / frontend is failing

- Update MobileDrawer role queries from dialog to navigation
- Add focus trap to MobileDrawer component
- Add window.matchMedia polyfill to vitest setup
- Fix AppShell mobile drawer test to mock matchMedia for viewport
@Promise278

Copy link
Copy Markdown
Author

@Promise278

CI / frontend is failing

CHECK CI CHECKS BOSS

@devJaja

devJaja commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

@Promise278

CI checks still failing

@devJaja

devJaja commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

@Promise278

CI checks are failing, also kindly resolve the conflicts

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.

feat(smart-contract): Add Agent Capability Attestation and Verification

2 participants