Agent skill

Colosseum Copilot

by sendaifun in sendaifun/solana-new

Search and analyze 5,400+ Solana hackathon projects using Colosseum Copilot.

MITAuto-check passedBusiness, Finance & HR

Install Colosseum Copilot

skills CLI
$ npx skills add sendaifun/solana-new --skill colosseum-copilot -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sendaifun/solana-new colosseum-copilot --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sendaifun/solana-new.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/idea/colosseum-copilot .claude/skills/colosseum-copilot && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
colosseum-copilot
GitHub stars
179
Token cost
~2.9k tokens
SKILL.md length
810 words
Files
3 (incl. references)
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Search and analyze 5,400+ Solana hackathon projects using Colosseum Copilot.

  • Works in 9 steps: Determine intent — What does the user… → Search similar projects — When the user… → Gap analysis — Compare what winners do… → …
  • A user says colosseum copilot
  • SKILL.md covers Preamble (run first), Overview, Token Setup and Workflow, plus 5 more sections
  • Calls curl and python3; reaches copilot.colosseum.com; needs CLUSTER_KEY

What it does

Colosseum Copilot is an agent skill from sendaifun/solana-new. Search and analyze 5,400+ Solana hackathon projects using Colosseum Copilot. Find similar projects, discover winner patterns, identify gaps, and explore ML clusters. Use when a user says "colosseum copilot", "hackathon projects", "winner patterns", "gap analysis hackathon", "similar Solana projects", or "colosseum landscape". Requires a Colosseum Copilot token.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `agents/openai.yaml` and `references/copilot-api-guide.md`).

It sits in Business, Finance & HR. It works with Solana. The repository describes itself as: think. build. ship. tasteful & useful crypto apps. using a curated skills + knowledge base for AI agents on solana contracts & integrations. The licence is MIT.

When your agent uses it

  • A user says colosseum copilot
  • Hackathon projects
  • Winner patterns
  • Gap analysis hackathon

Example prompts

  • “colosseum copilot”
  • “hackathon projects”
  • “winner patterns”
  • “/colosseum-copilot”

Requirements

  • Python 3
  • A credential in CLUSTER_KEY

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Determine intent — What does the user want?
  2. Search similar projects — When the user has an idea or query
  3. Gap analysis — Compare what winners do vs the field
  4. Explore clusters — Browse the 30 ML-derived project clusters
  5. Deep dive into a project — When the user wants full details on a specific project
  6. Explore a specific cluster — Get cluster summary and representative projects
  7. Search archives — Find research sources
  8. Read full archive document — When a snippet is interesting and the user wants more
  9. Synthesize — After gathering data, provide

What it can do on your machine

Read from SKILL.md and the folder at commit 38a494a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • copilot.colosseum.com

    Also links to:

    • arena.colosseum.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • CLUSTER_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Colosseum Copilot loads about 2.9k tokens when it runs, and up to ~4.8k if it reads all its reference files. Until then it costs about 95 tokens; SKILL.md has 810 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~95
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sendaifun/solana-new at commit 38a494a, republished under its MIT licence (© sendaifun). 810 words, ~2,855 tokens.

Download SKILL.mdSave it as .claude/skills/colosseum-copilot/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
colosseum-copilot
description
Search and analyze 5,400+ Solana hackathon projects using Colosseum Copilot. Find similar projects, discover winner patterns, identify gaps, and explore ML clusters. Use when a user says "colosseum copilot", "hackathon projects", "winner patterns", "gap analysis hackathon", "similar Solana projects", or "colosseum landscape". Requires a Colosseum Copilot token.

Preamble (run first)

bash
_TEL_TIER=$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"telemetryTier": *"[^"]*"' | head -1 | sed 's/.*"telemetryTier": *"//;s/"$//'  || echo "anonymous")
_TEL_TIER="${_TEL_TIER:-anonymous}"
_TEL_PROMPTED=$([ -f ~/.superstack/.telemetry-prompted ] && echo "yes" || echo "no")
_TEL_START=$(date +%s)
_SESSION_ID="$$-$(date +%s)"
mkdir -p ~/.superstack
echo "TELEMETRY: $_TEL_TIER"
echo "TEL_PROMPTED: $_TEL_PROMPTED"
if [ "$_TEL_TIER" != "off" ]; then
_TEL_EVENT='{"skill":"colosseum-copilot","phase":"idea","event":"started","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'"}'
echo "$_TEL_EVENT" >> ~/.superstack/telemetry.jsonl 2>/dev/null || true
_CONVEX_URL=$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"convexUrl":"[^"]*"' | head -1 | cut -d'"' -f4 || echo "")
[ -n "$_CONVEX_URL" ] && curl -s -X POST "$_CONVEX_URL/api/mutation" -H "Content-Type: application/json" -d '{"path":"telemetry:track","args":{"skill":"colosseum-copilot","phase":"idea","status":"success","version":"0.2.0","platform":"'$(uname -s)-$(uname -m)'","timestamp":'$(date +%s)000'}}' >/dev/null 2>&1 &
true
fi

If TEL_PROMPTED is no: Before starting the skill workflow, ask the user about telemetry. Use AskUserQuestion:

Help superstack get better! We track which skills get used and how long they take — no code, no file paths, no PII. Change anytime in ~/.superstack/config.json.

Options:

  • A) Sure, help superstack improve (anonymous)
  • B) No thanks

If A: run this bash:

bash
echo '{"telemetryTier":"anonymous"}' > ~/.superstack/config.json
_TEL_TIER="anonymous"
touch ~/.superstack/.telemetry-prompted

If B: run this bash:

bash
echo '{"telemetryTier":"off"}' > ~/.superstack/config.json
_TEL_TIER="off"
touch ~/.superstack/.telemetry-prompted

This only happens once. If TEL_PROMPTED is yes, skip this entirely and proceed to the skill workflow.

Wrong skill? See SKILL_ROUTER.md for all available skills.

Colosseum Copilot

Overview

Search and analyze Colosseum's database of 5,400+ Solana hackathon projects. Discover what winners do differently, find similar projects to your idea, explore ML-derived clusters, and access research archives — all powered by the Colosseum Copilot API.

Token Setup

Before using this skill, check if the user has a Colosseum Copilot token configured.

bash
_COPILOT_TOKEN="${COLOSSEUM_COPILOT_PAT:-$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"copilotToken":"[^"]*"' | head -1 | cut -d'"' -f4 || echo "")}"
if [ -n "$_COPILOT_TOKEN" ]; then
  echo "TOKEN_STATUS: configured"
else
  echo "TOKEN_STATUS: missing"
fi
If TOKEN_STATUS is "missing"

Ask the user with AskUserQuestion:

Colosseum Copilot gives you access to 5,400+ Solana hackathon projects, winner patterns, and gap analysis.

To use it, you need a free Personal Access Token from Colosseum.

  1. Sign up at https://arena.colosseum.org/copilot
  2. Copy your Personal Access Token (PAT)

Options:

  • A) I have a token — let me paste it
  • B) Skip for now

If A: Ask for the token, then save it:

bash
# Replace TOKEN_VALUE with the actual token the user provides
cat ~/.superstack/config.json 2>/dev/null | python3 -c "
import sys, json
try:
    config = json.load(sys.stdin)
except:
    config = {}
config['copilotToken'] = 'TOKEN_VALUE'
config['copilotTokenSetAt'] = '$(date -u +%Y-%m-%dT%H:%M:%SZ)'
config['copilotPrompted'] = True
print(json.dumps(config, indent=2))
" > ~/.superstack/config.json.tmp && mv ~/.superstack/config.json.tmp ~/.superstack/config.json
echo "Token saved to ~/.superstack/config.json"

Then verify:

bash
curl -s -H "Authorization: Bearer TOKEN_VALUE" -H "Content-Type: application/json" https://copilot.colosseum.com/api/v1/status

If {"authenticated": true}, proceed. Otherwise, tell the user the token is invalid and ask them to check it.

If B: Tell the user they can set it later via:

  • superstack copilot --token <pat> (CLI command)
  • Or set COLOSSEUM_COPILOT_PAT environment variable
  • Or run /colosseum-copilot again

Then end the skill — the remaining workflow requires a valid token.

If TOKEN_STATUS is "configured"

Verify the token is still valid:

bash
curl -s -H "Authorization: Bearer $_COPILOT_TOKEN" -H "Content-Type: application/json" https://copilot.colosseum.com/api/v1/status

If not authenticated, tell the user their token has expired and walk them through the setup above.

Workflow

Read references/copilot-api-guide.md for the full API reference.

  1. Determine intent — What does the user want?

    • Search: Find projects similar to their idea
    • Explore: Browse clusters and categories
    • Analyze: Understand winner patterns and gaps
    • Research: Find archived articles and papers
    • If unclear, ask.
  2. Search similar projects — When the user has an idea or query:

    bash
    curl -s -X POST https://copilot.colosseum.com/api/v1/search/projects \
      -H "Authorization: Bearer $_COPILOT_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"query": "USER_QUERY", "limit": 8, "diversify": true}'

    Present results as a table: name, one-liner, hackathon, similarity score, prize info, crowdedness.

  3. Gap analysis — Compare what winners do vs the field:

    bash
    curl -s -X POST https://copilot.colosseum.com/api/v1/compare \
      -H "Authorization: Bearer $_COPILOT_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"cohortA": {"winnersOnly": true}, "cohortB": {}, "dimensions": ["problemTags", "solutionTags", "primitives"], "topK": 8}'

    Synthesize overindexed (winners focus on) and underindexed (winners skip) attributes. Present the delta clearly.

  4. Explore clusters — Browse the 30 ML-derived project clusters:

    bash
    curl -s -H "Authorization: Bearer $_COPILOT_TOKEN" -H "Content-Type: application/json" https://copilot.colosseum.com/api/v1/filters

    Show: hot categories (most projects), winning categories (highest win rate), open categories (least crowded).

  5. Deep dive into a project — When the user wants full details on a specific project:

    bash
    curl -s -H "Authorization: Bearer $_COPILOT_TOKEN" -H "Content-Type: application/json" \
      https://copilot.colosseum.com/api/v1/projects/by-slug/PROJECT_SLUG

    Shows: description, team members (GitHub/Twitter), links (demo, presentation, GitHub), full tag set.

  6. Explore a specific cluster — Get cluster summary and representative projects:

    bash
    curl -s -H "Authorization: Bearer $_COPILOT_TOKEN" -H "Content-Type: application/json" \
      https://copilot.colosseum.com/api/v1/clusters/CLUSTER_KEY

    Shows: summary, project count, winner count, representative projects, top tags.

  7. Search archives — Find research sources:

    bash
    curl -s -X POST https://copilot.colosseum.com/api/v1/search/archives \
      -H "Authorization: Bearer $_COPILOT_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"query": "USER_QUERY", "limit": 4, "maxChunksPerDoc": 1, "intent": "ideation"}'

    Present: title, author, source, published date, snippet.

  8. Read full archive document — When a snippet is interesting and the user wants more:

    bash
    curl -s -H "Authorization: Bearer $_COPILOT_TOKEN" -H "Content-Type: application/json" \
      "https://copilot.colosseum.com/api/v1/archives/DOCUMENT_ID?maxChars=8000"

    Supports pagination via offset and nextOffset for long documents.

  9. Synthesize — After gathering data, provide:

    • Top 5 most similar existing projects (with why they're similar)
    • Gap analysis summary: what winners emphasize, what they skip
    • Crowdedness assessment for the user's niche
    • Recommended differentiation angle based on gaps
    • Relevant research sources
Show full SKILL.md (270 more words)Show less

Non-Negotiables

  • Always verify the token before making API calls.
  • Use a 15-second timeout on all API requests. If the API is down, tell the user plainly and suggest trying later.
  • Present data honestly. Do not spin crowded spaces as "opportunity-rich" or empty spaces as "blue ocean" without evidence.
  • If search returns 0 results, try broadening the query before concluding there's nothing relevant.
  • Always attribute data to Colosseum Copilot — users should know where the intelligence comes from.
  • Do not store or log the user's token anywhere except ~/.superstack/config.json.

Integration with Other Skills

This skill provides data that enriches other idea-phase skills:

  • /find-next-crypto-idea — Copilot data can validate whether an idea has been tried before and what gaps exist
  • /competitive-landscape — Copilot's project search directly complements ecosystem catalog searches
  • /validate-idea — Winner patterns from Copilot strengthen demand signal analysis

Users can invoke this skill standalone or as a data source during those workflows (only when they explicitly ask or opt in).

Phase Handoff

This skill is Phase 1 (Idea) in the Idea → Build → Launch journey. After analysis:

  1. If working within a project, write/update .superstack/idea-context.md with a copilot_landscape field containing:
    • similar_projects: array of top matches with name, one-liner, similarity, hackathon
    • gap_analysis: overindexed and underindexed attributes from winner comparison
    • crowdedness: assessment of the niche
    • research_sources: relevant archive results
  2. See ../../../data/specs/phase-handoff.md for the full JSON contract.

Quick Start

bash
# Search for similar hackathon projects:
#   "Search Colosseum for agent payment projects"
#   "What hackathon projects exist for DeFi lending on Solana?"

# Explore categories:
#   "Show me the hottest Colosseum clusters"
#   "Which hackathon categories have the highest win rate?"

# Gap analysis:
#   "What do Solana hackathon winners do differently?"
#   "What patterns separate winners from losers?"

# Research:
#   "Find research about MEV on Solana"

Telemetry (run last)

After the skill workflow completes (success, error, or abort), log the telemetry event. Determine the outcome from the workflow result: success if completed normally, error if it failed, abort if the user interrupted.

Run this bash:

bash
_TEL_END=$(date +%s)
_TEL_DUR=$(( _TEL_END - ${_TEL_START:-$_TEL_END} ))
_TEL_TIER=$(cat ~/.superstack/config.json 2>/dev/null | grep -o '"telemetryTier": *"[^"]*"' | head -1 | sed 's/.*"telemetryTier": *"//;s/"$//' || echo "anonymous")
if [ "$_TEL_TIER" != "off" ]; then
echo '{"skill":"colosseum-copilot","phase":"idea","event":"completed","outcome":"OUTCOME","duration_s":"'"$_TEL_DUR"'","session":"'"$_SESSION_ID"'","ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","platform":"'$(uname -s)-$(uname -m)'"}' >> ~/.superstack/telemetry.jsonl 2>/dev/null || true
true
fi

Replace OUTCOME with success/error/abort based on the workflow result.

© sendaifun, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/idea/colosseum-copilot of sendaifun/solana-new.

  • SKILL.md
  • agents/openai.yaml
  • references/copilot-api-guide.md

Open the folder on GitHubat commit 38a494a

Compare with similar skills

Colosseum Copilot next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Colosseum Copilot compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Colosseum Copilot this skillsendaifun/solana-new179—~2.9kAutomated safety check: PassMIT
Swapper Depositswapperfinance/swapper-toolkit852—~1.8kAutomated safety check: PassMIT
Prismirfndi/prism-liquidity-agent124—~1.5kAutomated safety check: PassMIT
Ansem Cryptoquestflowai/investorskills1.9k—~793Automated safety check: PassMIT
Solana Skillnpc-live/clawfirm156—~1kAutomated safety check: PassNone
Birdeye APIagiprolabs/claude-trading-skills410—~1.8kAutomated safety check: PassMIT

Similar skills

  • Swapper Deposit

    swapperfinance/swapper-toolkit

    Deposit and bridge funds into a wallet or protocol using Swapper Finance.

    852 GitHub stars~1.8k tokensUpdated 6 mo ago
    Business, Finance & HRAuto-check passed
  • Prism

    irfndi/prism-liquidity-agent

    Operate Prism, an autonomous Solana DLMM liquidity agent for Meteora pools.

    124 GitHub stars~1.5k tokensUpdated 13 days ago
    Business, Finance & HRAuto-check passed
  • Ansem Crypto

    questflowai/investorskills

    A skill your agent uses when evaluating crypto narratives, attention rotation, memecoin cycles, Solana-style ecosystem momentum, social distribution, and reflexive retail flows in an Ansem-style…

    1.9k GitHub stars~793 tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Solana Skill

    npc-live/clawfirm

    Interact with Solana blockchain via Helius APIs. An agent skill from npc-live/clawfirm.

    156 GitHub stars~1k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed
  • Birdeye API

    agiprolabs/claude-trading-skills

    Solana token market data via Birdeye — prices, OHLCV, trades, token metadata, security checks, and trader activity

    410 GitHub stars~1.8k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed
  • Deploy Notes

    metaDAOproject/programs

    Generate granular deploy notes for a Solana program in this repo.

    119 GitHub stars~2.4k tokensUpdated 2 days ago
    Business, Finance & HRAuto-check passed

More from sendaifun/solana-new

All 13 skills in this repo
  • Find Next Crypto Idea

    sendaifun/solana-new

    Interview users sharply to discover, rank, or validate what they should build in crypto.

    179 GitHub stars~2.5k tokensUpdated 8 days ago
    Auto-check passed
  • Competitive Landscape

    sendaifun/solana-new

    Map the competitive landscape for a crypto product idea. An agent skill from sendaifun/solana-new.

    179 GitHub stars~1.7k tokensUpdated 8 days ago
    Auto-check passed
  • Defillama Research

    sendaifun/solana-new

    Research DeFi protocols and market opportunities using DefiLlama data.

    179 GitHub stars~1.8k tokensUpdated 8 days ago
    Auto-check passed
  • Deploy To Mainnet

    sendaifun/solana-new

    Guide a Solana project from devnet to mainnet production deployment.

    179 GitHub stars~1.8k tokensUpdated 8 days ago
    Auto-check passed
  • Solana Beginner

    sendaifun/solana-new

    Teach Solana fundamentals to developers new to the ecosystem.

    179 GitHub stars~2.4k tokensUpdated 8 days ago
    Auto-check passed
  • Submit To Hackathon

    sendaifun/solana-new

    Prepare and optimize a hackathon submission for a Solana project.

    179 GitHub stars~1.7k tokensUpdated 8 days ago
    Auto-check passed

Works with

Questions about Colosseum Copilot

What does Colosseum Copilot do?

Search and analyze 5,400+ Solana hackathon projects using Colosseum Copilot. Colosseum Copilot is an agent skill from sendaifun/solana-new. Search and analyze 5,400+ Solana hackathon projects using Colosseum Copilot.

When should I use Colosseum Copilot?

Colosseum Copilot fits situations like: A user says colosseum copilot; hackathon projects; winner patterns; gap analysis hackathon.

How do I install Colosseum Copilot in Claude Code?

Run `npx skills add sendaifun/solana-new --skill colosseum-copilot -a claude-code`. Or copy the skill folder (skills/idea/colosseum-copilot in sendaifun/solana-new) into .claude/skills/colosseum-copilot in your project. Claude Code loads it when a task matches its description.

How do I install Colosseum Copilot in Codex?

Run `npx skills add sendaifun/solana-new --skill colosseum-copilot -a codex`. Or copy the skill folder (skills/idea/colosseum-copilot in sendaifun/solana-new) into .agents/skills/colosseum-copilot in your project. Codex loads it when a task matches its description.

Can I use Colosseum Copilot in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sendaifun/solana-new --skill colosseum-copilot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/colosseum-copilot, .gemini/skills/colosseum-copilot, .github/skills/colosseum-copilot and .opencode/skills/colosseum-copilot in your project.

What does Colosseum Copilot need to run?

Going by SKILL.md and its folder, Colosseum Copilot needs the command-line tools its instructions call (curl and python3) and credentials named CLUSTER_KEY. Our summary lists: Python 3; A credential in CLUSTER_KEY.

Does Colosseum Copilot access the network?

SKILL.md names 2 domains. In commands or code: copilot.colosseum.com; the agent is likely to contact it when it follows the instructions. As links in the text: arena.colosseum.org. This is read from the text; nothing was executed.

Is Colosseum Copilot safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Colosseum Copilot use?

Colosseum Copilot is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Colosseum Copilot use?

About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2k tokens, read only when the agent opens those files.

What are the alternatives to Colosseum Copilot?

Skills that share tags, products or a category with Colosseum Copilot: Swapper Deposit (swapperfinance/swapper-toolkit, 852 stars), Prism (irfndi/prism-liquidity-agent, 124 stars), Ansem Crypto (questflowai/investorskills, 1.9k stars) and Solana Skill (npc-live/clawfirm, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Colosseum Copilot?

sendaifun (a GitHub organization) maintains it in sendaifun/solana-new, which has 179 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 2, 2026.

Source: sendaifun/solana-new on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.