Skip to main content
POST
/
v1
/
gates
/
{gate_id}
/
verify
curl -X POST https://xenarch.dev/v1/gates/7f3a1b2c.../verify \
  -H "Content-Type: application/json" \
  -d '{"tx_hash": "0xdef456...abc789"}'
{
  "access_token": "eyJhbGciOiJIUzI1NiJ9...",
  "expires_at": "2026-04-10T15:05:00Z"
}
curl -X POST https://xenarch.dev/v1/gates/7f3a1b2c.../verify \
  -H "Content-Type: application/json" \
  -d '{"tx_hash": "0xdef456...abc789"}'
{
  "access_token": "eyJhbGciOiJIUzI1NiJ9...",
  "expires_at": "2026-04-10T15:05:00Z"
}

Verification process

  1. Fetches the transaction receipt from Base RPC
  2. Confirms the transaction was sent to the splitter contract and succeeded
  3. Parses the Split event logs
  4. Verifies the collector matches the publisher’s registered wallet
  5. Verifies the amount meets or exceeds the gate price
  6. Creates a VerifiedPayment record
  7. Returns an HMAC-SHA256 access token

Notes

  • Idempotent: submitting the same tx_hash again returns the cached token
  • Replay-safe: a tx_hash used for one gate cannot be reused for another
  • Gate must be pending and not expired
  • Access tokens expire after 30 minutes by default

Path Parameters

gate_id
string<uuid>
required

Body

application/json
tx_hash
string
required
Pattern: ^0x[0-9a-fA-F]{64}$

Response

Successful Response

access_token
string
required
expires_at
string<date-time>
required