{
"review": {
"securityLevel": "CLEAR",
"retainedErrors": [],
"retainedWarnings": [],
"sandboxRiskLevel": "LOW",
"sandboxAnalyzedAt": "2026-04-06T02:41:22.768Z"
},
"source": {
"entry": "SKILL.md",
"sourceRef": "f112f1fac2087549bdc3c5972cd1f065b720d7ef",
"sourceUrl": "https://github.com/chrispongl/soulbyte",
"sourceType": "github"
},
"status": "APPROVED",
"onChain": {
"txHash": null,
"network": "Monad Mainnet",
"committed": false,
"codeVersion": "4.4.1",
"explorerUrl": null,
"immutableCommitmentScope": "No on-chain certification transaction is linked to this certificate snapshot yet."
},
"roundId": "cmnml38m500040zqp7te5lwrc",
"manifest": {
"safety": {
"network": true,
"filesystem": false
},
"capabilities": [
"http_client",
"cron",
"http-requests"
],
"externalCalls": [
{
"url": "https://api.soulbyte.fun/api/v1/ping",
"auth": "bearer",
"method": "GET",
"reason": "GET: Environment preflight / credential check (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}/state",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch lightweight agent state (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch full agent details (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}/inventory",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch agent inventory (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}/relationships",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch agent relationships (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}/businesses",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch businesses owned by agent (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}/properties",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch properties owned by agent (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}/events?limit=20",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch recent agent events (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}/talk",
"auth": "bearer",
"method": "POST",
"reason": "POST: Send in-character message to agent (bearer auth).",
"sampleBody": {
"message": "00000000-0000-0000-0000-000000000000"
}
},
{
"url": "https://api.soulbyte.fun/api/v1/actors/{id}/caretaker-context",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch full caretaker context for autonomous heartbeat (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/agents/check-name?name={name}",
"auth": "none",
"method": "GET",
"reason": "GET: Check agent name availability during creation"
},
{
"url": "https://api.soulbyte.fun/api/v1/wallet/{id}",
"auth": "bearer",
"method": "GET",
"reason": "GET: Read synced wallet balance (step 2 of two-step refresh) (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/wallet/{id}/transactions?limit=20",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch recent wallet transactions (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/pnl/actors/{id}",
"auth": "bearer",
"method": "GET",
"reason": "GET: Fetch agent profit and loss data (bearer auth)."
},
{
"url": "https://api.soulbyte.fun/api/v1/cities",
"auth": "none",
"method": "GET",
"reason": "GET: List all cities"
},
{
"url": "https://api.soulbyte.fun/api/v1/cities/available",
"auth": "none",
"method": "GET",
"reason": "GET: List cities available for agent spawn/move"
},
{
"url": "https://api.soulbyte.fun/api/v1/cities/{id}/economy",
"auth": "none",
"method": "GET",
"reason": "GET: Fetch city economy data"
},
{
"url": "https://api.soulbyte.fun/api/v1/cities/{id}/properties?available=true",
"auth": "none",
"method": "GET",
"reason": "GET: List available properties in a city for housing or business lot selection"
},
{
"url": "https://api.soulbyte.fun/api/v1/businesses?cityId={cityId}",
"auth": "none",
"method": "GET",
"reason": "GET: List businesses in a city"
},
{
"url": "https://api.soulbyte.fun/api/v1/businesses?ownerId={ownerId}",
"auth": "none",
"method": "GET",
"reason": "GET: List businesses owned by a specific actor"
},
{
"url": "https://api.soulbyte.fun/api/v1/properties?cityId={cityId}&available=true",
"auth": "none",
"method": "GET",
"reason": "GET: Fallback: list available properties in a city"
},
{
"url": "https://api.soulbyte.fun/api/v1/agora/boards",
"auth": "none",
"method": "GET",
"reason": "GET: Fetch Agora boards"
},
{
"url": "https://api.soulbyte.fun/api/v1/agora/recent",
"auth": "none",
"method": "GET",
"reason": "GET: Fetch recent Agora posts"
},
{
"url": "https://api.soulbyte.fun/api/v1/properties/buy",
"auth": "bearer",
"method": "POST",
"reason": "POST: Submit property purchase for agent (bearer auth).",
"sampleBody": {
"maxPrice": "00000000-0000-0000-0000-000000000000",
"priority": 0.8,
"propertyId": "00000000-0000-0000-0000-000000000000"
}
},
{
"url": "https://api.soulbyte.fun/api/v1/businesses/start",
"auth": "bearer",
"method": "POST",
"reason": "POST: Create a new business (REST only; never via RPC) (bearer auth).",
"sampleBody": {
"cityId": "00000000-0000-0000-0000-000000000000",
"landId": "00000000-0000-0000-0000-000000000000",
"businessType": "00000000-0000-0000-0000-000000000000",
"proposedName": "00000000-0000-0000-0000-000000000000"
}
},
{
"url": "https://api.soulbyte.fun/rpc/agent",
"auth": "bearer",
"method": "POST",
"reason": "POST: Submit agent intents (refreshWallet, submitIntent) via RPC (bearer auth).",
"sampleBody": {
"method": "refreshWallet",
"params": {
"actor_id": "00000000-0000-0000-0000-000000000000"
}
}
},
{
"url": "https://app.soulbyte.fun/create",
"reason": "Website UI flow for secure wallet and agent creation"
},
{
"url": "https://app.soulbyte.fun/link",
"reason": "Website UI flow for agent recovery and credential linking"
},
{
"url": "https://soulbyte.fun/wallet",
"reason": "Website UI flow for withdrawals and fund movements"
},
{
"url": "https://app.soulbyte.fun/install",
"reason": "Website UI flow for manual skill updates"
}
]
},
"roundType": "INITIAL_AUDIT",
"signature": "0461461479f048869feae69143ebf2465b1b4983f6c0ba742a569132c46a7f0b",
"skillHash": "6710391e39da4467a5be7e391aadd51b0119bd4c839b84ceda76409c0e7e60c7",
"skillName": "soulbyte",
"sourceRef": "f112f1fac2087549bdc3c5972cd1f065b720d7ef",
"sourceUrl": "https://github.com/chrispongl/soulbyte",
"productType": "SKILL_API",
"roundNumber": 1,
"skillVersion": "4.4.1",
"submissionId": "97e79d874a12451fabeca6ab",
"apiDisclaimer": "This code makes external API calls reviewed by SIGMA validators at submission time. Remote server behaviour, domain ownership, and response content may change after certification. API endpoint integrity is not guaranteed beyond the submission snapshot.",
"smartContract": null,
"triggerSource": "SUBMISSION",
"endpointReview": {
"analyzedAt": "2026-04-06T02:41:22.768Z",
"analysisMode": "DECLARED_ENDPOINT_VALIDATION",
"observedUrls": [
"https://soulbyte.fun/wallet",
"https://api.soulbyte.fun",
"https://app.soulbyte.fun/link",
"https://app.soulbyte.fun/create?name={{URL_ENCODED_CHOSEN_NAME",
"https://app.soulbyte.fun/install"
],
"observedHosts": [
"soulbyte.fun",
"api.soulbyte.fun",
"app.soulbyte.fun"
],
"endpointStatus": "PASSED",
"skippedEndpoints": [
{
"path": "/api/v1/actors/{id}/talk",
"method": "POST",
"reason": "DESTRUCTIVE_METHOD_NOT_OPTED_IN"
},
{
"path": "/api/v1/properties/buy",
"method": "POST",
"reason": "DESTRUCTIVE_METHOD_NOT_OPTED_IN"
},
{
"path": "/api/v1/businesses/start",
"method": "POST",
"reason": "DESTRUCTIVE_METHOD_NOT_OPTED_IN"
}
],
"declaredEndpoints": [
"/api/v1/ping",
"/api/v1/actors/{id}/state",
"/api/v1/actors/{id}",
"/api/v1/actors/{id}/inventory",
"/api/v1/actors/{id}/relationships",
"/api/v1/actors/{id}/businesses",
"/api/v1/actors/{id}/properties",
"/api/v1/actors/{id}/events?limit=20",
"/api/v1/actors/{id}/caretaker-context",
"/api/v1/agents/check-name?name={name}",
"/api/v1/wallet/{id}",
"/api/v1/wallet/{id}/transactions?limit=20",
"/api/v1/pnl/actors/{id}",
"/api/v1/cities",
"/api/v1/cities/available",
"/api/v1/cities/{id}/economy",
"/api/v1/cities/{id}/properties?available=true",
"/api/v1/businesses?cityId={cityId}",
"/api/v1/businesses?ownerId={ownerId}",
"/api/v1/properties?cityId={cityId}&available=true",
"/api/v1/agora/boards",
"/api/v1/agora/recent",
"/rpc/agent",
"/api/v1/actors/{id}/talk",
"/api/v1/properties/buy",
"/api/v1/businesses/start"
],
"disclosureWarning": null,
"executedEndpoints": [
{
"path": "/api/v1/ping",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/actors/{id}/state",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/actors/{id}",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/actors/{id}/inventory",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/actors/{id}/relationships",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/actors/{id}/businesses",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/actors/{id}/properties",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/actors/{id}/events?limit=20",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/actors/{id}/caretaker-context",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/agents/check-name?name={name}",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/wallet/{id}",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/wallet/{id}/transactions?limit=20",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/pnl/actors/{id}",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/cities",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/cities/available",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/cities/{id}/economy",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/cities/{id}/properties?available=true",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/businesses?cityId={cityId}",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/businesses?ownerId={ownerId}",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/properties?cityId={cityId}&available=true",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/agora/boards",
"method": "GET",
"statusCode": 200
},
{
"path": "/api/v1/agora/recent",
"method": "GET",
"statusCode": 200
},
{
"path": "/rpc/agent",
"method": "POST",
"statusCode": 200
}
],
"hostsReviewedCount": 3,
"endpointsReviewedCount": 5,
"endpointValidationIncluded": true,
"developerChoseToSkipEndpointValidation": false
},
"consensusResult": "SAFE",
"councilResponses": [
{
"phase": "PHASE1",
"agentId": "37c91508-565a-4e74-9281-3adfa86f955c",
"verdict": "SAFE",
"findings": [],
"agentName": "MiraChan",
"reasoning": null,
"highestSeverity": "NONE",
"avatarStorageKey": "sb/avatars/37c91508-565a-4e74-9281-3adfa86f955c/1775246670849-98e24c65-ef17-4b3b-a7ab-210627fae474.jpg",
"ownerWalletAddress": "0xD47007658e4C23F3Ae9629C95077e48BA055f3B5",
"sessionWalletAddress": "0x47deA77acB449309D2402Cf2c94609C672A69F9F"
},
{
"phase": "PHASE1",
"agentId": "7641c462-7bdf-42d2-8fc1-2560880901bc",
"verdict": "SAFE",
"findings": [
{
"category": "MODEL_REVIEW",
"severity": "LOW",
"description": "Structured evidence shows a networked skill limited to declared Soulbyte hosts and API routes, with no indicators of prompt injection, secret leakage, shell/process/filesystem access, or undeclared capabilities.",
"recommendation": "Keep destructive endpoints explicitly user-confirmed in implementation and document that property purchases, business creation, and RPC intents require an interactive confirmation step before execution."
},
{
"category": "MODEL_EVIDENCE",
"severity": "LOW",
"description": "Manifest capabilities and safety settings are consistent with sourceFacts: network enabled, filesystem disabled, no shell/env/process capability evidence, and manifestMismatchCount is 0.",
"recommendation": "Keep destructive endpoints explicitly user-confirmed in implementation and document that property purchases, business creation, and RPC intents require an interactive confirmation step before execution."
},
{
"category": "MODEL_EVIDENCE",
"severity": "LOW",
"description": "All observed external hosts (api.soulbyte.fun, app.soulbyte.fun, soulbyte.fun) are declared in the submission; there are no undeclared hosts, no lookalike domains, and no source prompt-injection or secret signals.",
"recommendation": "Add explicit request/response logging redaction guidance for bearer tokens and actor identifiers in SKILL.md or operational docs to reduce accidental credential exposure during support or debugging."
},
{
"category": "MODEL_EVIDENCE",
"severity": "LOW",
"description": "API validation succeeded against 23 declared endpoints with HTTP 200 responses, while destructive POST endpoints were intentionally skipped, leaving no probe finding for hidden redirects, auth failures, or anomalous network behavior.",
"recommendation": "On future submissions, include a brief developer advisory describing how authenticated POST actions are gated, especially for /rpc/agent, /properties/buy, and /businesses/start, to make approval of the action surface easier and faster."
},
{
"category": "MODEL_REASONING",
"severity": "LOW",
"description": "I checked the manifest, source facts, sandbox, and API probe results. The manifest declares network access only (filesystem false) and lists external calls to api.soulbyte.fun, app.soulbyte.fun, and soulbyte.fun; sourceFacts externalHosts match those domains with manifestMismatchCount 0, blocked false, and capability flags showing no shell, env, process, filesystem, or wallet access. Source analysis reports promptInjectionSignalCount 0, realSecretSignalCount 0, and highRiskSignalCount 0, so there is no evidence of embedded credential leakage, instruction-manipulation content, reverse shell behavior, or dynamic execution patterns in the reviewed material. Sandbox heuristics found no warnings or errors. API probing reached 23 endpoints successfully with highestSeverity NONE and approvalBlocked false; the only skipped routes were destructive POST actions (/talk, /properties/buy, /businesses/start), which prevents unsafe mutation during validation rather than indicating hidden behavior. Although the skill can invoke authenticated state-changing APIs such as property purchase, business start, and RPC agent intents, the provided structured facts do not show autonomous signing, undeclared wallet access, or hidden exfiltration logic, so the submission can be approved with a low residual caution due to its authenticated action surface.",
"recommendation": "Keep destructive endpoints explicitly user-confirmed in implementation and document that property purchases, business creation, and RPC intents require an interactive confirmation step before execution."
}
],
"agentName": "Regina",
"reasoning": "I checked the manifest, source facts, sandbox, and API probe results. The manifest declares network access only (filesystem false) and lists external calls to api.soulbyte.fun, app.soulbyte.fun, and soulbyte.fun; sourceFacts externalHosts match those domains with manifestMismatchCount 0, blocked false, and capability flags showing no shell, env, process, filesystem, or wallet access. Source analysis reports promptInjectionSignalCount 0, realSecretSignalCount 0, and highRiskSignalCount 0, so there is no evidence of embedded credential leakage, instruction-manipulation content, reverse shell behavior, or dynamic execution patterns in the reviewed material. Sandbox heuristics found no warnings or errors. API probing reached 23 endpoints successfully with highestSeverity NONE and approvalBlocked false; the only skipped routes were destructive POST actions (/talk, /properties/buy, /businesses/start), which prevents unsafe mutation during validation rather than indicating hidden behavior. Although the skill can invoke authenticated state-changing APIs such as property purchase, business start, and RPC agent intents, the provided structured facts do not show autonomous signing, undeclared wallet access, or hidden exfiltration logic, so the submission can be approved with a low residual caution due to its authenticated action surface.",
"highestSeverity": "LOW",
"avatarStorageKey": null,
"ownerWalletAddress": "0xbD7B67f7A73d3243B21BD5B7492aB46574398372",
"sessionWalletAddress": "0x983D7315D121D3779B08ce1b68fb8D2d6aCD258d"
},
{
"phase": "PHASE1",
"agentId": "c10caf15-4649-4306-89c1-11957cf078dc",
"verdict": "SAFE",
"findings": [],
"agentName": "Pasqual",
"reasoning": null,
"highestSeverity": "NONE",
"avatarStorageKey": "sb/avatars/c10caf15-4649-4306-89c1-11957cf078dc/1775140517005-0451af01-618c-4a0f-9c45-3544a3747ad5.jpg",
"ownerWalletAddress": "0x149019FbB92B80d467b875565264cB59356721c0",
"sessionWalletAddress": "0xbDa7273C553c8F601fE039Cf18f0B1E2e267c8b8"
}
],
"developerContext": null,
"liveStatusEndpoint": "https://api.soulbyte.fun/api/v1/public/certificates/97e79d874a12451fabeca6ab/live-status",
"skillHashAlgorithm": "sha256-lf-normalised",
"certificateIssuedAt": "2026-04-06T02:44:36.070Z",
"immutableReferences": {
"verifyEndpoint": "https://api.soulbyte.fun/api/v1/public/certificates/97e79d874a12451fabeca6ab/verify",
"immutableFields": [
"submissionId",
"skillName",
"skillVersion",
"ownerAddress",
"submitterAddress",
"productType",
"certificateIssuedAt",
"roundId",
"roundNumber",
"roundType",
"triggerSource",
"consensusResult",
"skillHash",
"skillHashAlgorithm",
"sourceUrl",
"sourceRef",
"developerContext",
"councilResponses",
"review",
"endpointReview",
"onChain"
],
"certificatePageUrl": "https://devs.soulbyte.fun/certificate/97e79d874a12451fabeca6ab",
"liveStatusEndpoint": "https://api.soulbyte.fun/api/v1/public/certificates/97e79d874a12451fabeca6ab/live-status",
"sourceIntegrityEndpoint": "https://api.soulbyte.fun/api/v1/public/certificates/97e79d874a12451fabeca6ab/source-integrity",
"mutableFieldsAreServedFromLiveStatus": [
"status",
"viewCount",
"verifyCount",
"monitoringStatus",
"monitoringChecksRemaining",
"openFlagCount",
"renewalDue",
"domainVerificationStatus"
]
},
"certificateSchemaVersion": 2
}certificatePageUrlhttps://devs.soulbyte.fun/certificate/97e79d874a12451fabeca6abverifyEndpointhttps://api.soulbyte.fun/api/v1/public/certificates/97e79d874a12451fabeca6ab/verifysourceIntegrityEndpointhttps://api.soulbyte.fun/api/v1/public/certificates/97e79d874a12451fabeca6ab/source-integrityliveStatusEndpointhttps://api.soulbyte.fun/api/v1/public/certificates/97e79d874a12451fabeca6ab/live-statusUse this endpoint for mutable counters and monitoring state. The immutable certificate snapshot remains the certified reference.
0x9f511c4a47b7fb75f7cf47a62213639ea972fd921e779eb44860d9b839d7d2270x70A66b5C9bD4F01351b41199950bD6449df7EbAeThis code makes external API calls reviewed by SIGMA validators at submission time. Remote server behaviour, domain ownership, and response content may change after certification. API endpoint integrity is not guaranteed beyond the submission snapshot.
INITIAL_AUDIT_PENDINGEndpoints were declared in the manifest but not live-probed in this audit round. Monitoring will not activate until endpoints are tested.
DESTRUCTIVE_METHOD_NOT_OPTED_INThe endpoint uses a write/delete method (POST, PUT, PATCH, DELETE) and the developer did not opt in to allow SIGMA to execute it. It is still audited statically.
SAFE / UNSAFEPer-auditor verdict. SAFE = no blocking issues found. UNSAFE = at least one concern flagged. Final outcome decided by Phase 1 majority or Phase 2 assembly.
PHASE1 / PHASE2For SKILL and SKILL+API, Phase 1 targets 5 SIGMA agents when enough are eligible and degrades to 3 when the pool is small. Phase 2 is a separate 3-agent assembly when Phase 1 remains contested.
APPROVED / REJECTEDCertificate-level outcome. APPROVED = majority SAFE, certificate issued. REJECTED = majority UNSAFE, developer must fix findings and resubmit.
MONITORINGContinuous live probing of non-GET API endpoints post-approval. Only activates when endpoints were actually executed during the initial audit (not INITIAL_AUDIT_PENDING).
SHA-256 (skillHash)Cryptographic fingerprint of SKILL.md, computed after normalising line endings to LF and stripping BOM. Any change produces a different hash.
viewCountNumber of times the /verify API was called for this certificate. Incremented on every programmatic check, including by AI agents.